Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(731)

Unified Diff: mojo/system/message_in_transit.h

Issue 260823002: Mojo: Small fixes/cleanup to MessageInTransit, before I factor out the secondary buffer. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | mojo/system/message_in_transit.cc » ('j') | mojo/system/message_in_transit.cc » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/system/message_in_transit.h
diff --git a/mojo/system/message_in_transit.h b/mojo/system/message_in_transit.h
index 4018dd6c08e6126074846eb0506deb8dfe67e96b..1fc021e34390e92eff2d22a2f962e66d2f2fcdf7 100644
--- a/mojo/system/message_in_transit.h
+++ b/mojo/system/message_in_transit.h
@@ -10,6 +10,7 @@
#include <vector>
#include "base/macros.h"
+#include "base/memory/aligned_memory.h"
#include "base/memory/scoped_ptr.h"
#include "mojo/embedder/platform_handle.h"
#include "mojo/system/dispatcher.h"
@@ -178,11 +179,11 @@ class MOJO_SYSTEM_IMPL_EXPORT MessageInTransit {
void DeserializeDispatchers(Channel* channel);
// Gets the main buffer and its size (in number of bytes), respectively.
- const void* main_buffer() const { return main_buffer_; }
+ const void* main_buffer() const { return main_buffer_.get(); }
size_t main_buffer_size() const { return main_buffer_size_; }
// Gets the secondary buffer and its size (in number of bytes), respectively.
- const void* secondary_buffer() const { return secondary_buffer_; }
+ const void* secondary_buffer() const { return secondary_buffer_.get(); }
size_t secondary_buffer_size() const { return secondary_buffer_size_; }
// Gets the total size of the message (see comment in |Header|, below).
@@ -192,10 +193,8 @@ class MOJO_SYSTEM_IMPL_EXPORT MessageInTransit {
uint32_t num_bytes() const { return header()->num_bytes; }
// Gets the message data (of size |num_bytes()| bytes).
- const void* bytes() const {
- return static_cast<const char*>(main_buffer_) + sizeof(Header);
- }
- void* bytes() { return static_cast<char*>(main_buffer_) + sizeof(Header); }
+ const void* bytes() const { return main_buffer_.get() + sizeof(Header); }
+ void* bytes() { return main_buffer_.get() + sizeof(Header); }
uint32_t num_handles() const { return header()->num_handles; }
@@ -281,17 +280,17 @@ class MOJO_SYSTEM_IMPL_EXPORT MessageInTransit {
size_t secondary_buffer_size);
const Header* header() const {
- return static_cast<const Header*>(main_buffer_);
+ return reinterpret_cast<const Header*>(main_buffer_.get());
}
- Header* header() { return static_cast<Header*>(main_buffer_); }
+ Header* header() { return reinterpret_cast<Header*>(main_buffer_.get()); }
void UpdateTotalSize();
- size_t main_buffer_size_;
- void* main_buffer_;
+ const size_t main_buffer_size_;
+ const scoped_ptr<char, base::AlignedFreeDeleter> main_buffer_; // Never null.
size_t secondary_buffer_size_;
- void* secondary_buffer_; // May be null.
+ scoped_ptr<char, base::AlignedFreeDeleter> secondary_buffer_; // May be null.
// Any dispatchers that may be attached to this message. These dispatchers
// should be "owned" by this message, i.e., have a ref count of exactly 1. (We
« no previous file with comments | « no previous file | mojo/system/message_in_transit.cc » ('j') | mojo/system/message_in_transit.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698