aboutsummaryrefslogtreecommitdiff
path: root/mojo/public/cpp/bindings/lib/message_buffer.cc
diff options
context:
space:
mode:
authorJay Civelli <jcivelli@google.com>2017-03-29 16:17:00 -0700
committerJay Civelli <jcivelli@google.com>2017-07-24 13:31:43 -0700
commit8ac9103e05b66812c25348943383f9365d1ce3e0 (patch)
tree63a61c9698e719de1a24de6fca21e29401f92842 /mojo/public/cpp/bindings/lib/message_buffer.cc
parent24543f227908c2e949bb9a15b40276f59fcc9a0a (diff)
downloadlibmojo-8ac9103e05b66812c25348943383f9365d1ce3e0.tar.gz
libmojo: Uprev the library to r456626 from Chromium
Pulled the latest and greatest version of libmojo from Chromium. The merge was done against r456626 which corresponds to git commit 08266b3fca707804065a2cfd60331722ade41969 of Mar 14, 2017 Notable changes are: - generated binding files are now split in 2 files, interface.mojom.h and interface.mojom-shared.h Change-Id: Idcfd27310e2c9d3c452b671c7ff7a755c3963618
Diffstat (limited to 'mojo/public/cpp/bindings/lib/message_buffer.cc')
-rw-r--r--mojo/public/cpp/bindings/lib/message_buffer.cc37
1 files changed, 9 insertions, 28 deletions
diff --git a/mojo/public/cpp/bindings/lib/message_buffer.cc b/mojo/public/cpp/bindings/lib/message_buffer.cc
index af79cfd..cc12ef6 100644
--- a/mojo/public/cpp/bindings/lib/message_buffer.cc
+++ b/mojo/public/cpp/bindings/lib/message_buffer.cc
@@ -13,54 +13,35 @@ namespace internal {
MessageBuffer::MessageBuffer(size_t capacity, bool zero_initialized) {
DCHECK_LE(capacity, std::numeric_limits<uint32_t>::max());
- data_num_bytes_ = static_cast<uint32_t>(capacity);
MojoResult rv = AllocMessage(capacity, nullptr, 0,
MOJO_ALLOC_MESSAGE_FLAG_NONE, &message_);
CHECK_EQ(rv, MOJO_RESULT_OK);
- if (capacity == 0) {
- buffer_ = nullptr;
- } else {
- rv = GetMessageBuffer(message_.get(), &buffer_);
+ void* buffer = nullptr;
+ if (capacity != 0) {
+ rv = GetMessageBuffer(message_.get(), &buffer);
CHECK_EQ(rv, MOJO_RESULT_OK);
if (zero_initialized)
- memset(buffer_, 0, capacity);
+ memset(buffer, 0, capacity);
}
+ Initialize(buffer, capacity);
}
MessageBuffer::MessageBuffer(ScopedMessageHandle message, uint32_t num_bytes) {
message_ = std::move(message);
- data_num_bytes_ = num_bytes;
- if (num_bytes == 0) {
- buffer_ = nullptr;
- } else {
- MojoResult rv = GetMessageBuffer(message_.get(), &buffer_);
+ void* buffer = nullptr;
+ if (num_bytes != 0) {
+ MojoResult rv = GetMessageBuffer(message_.get(), &buffer);
CHECK_EQ(rv, MOJO_RESULT_OK);
}
+ Initialize(buffer, num_bytes);
}
MessageBuffer::~MessageBuffer() {}
-void* MessageBuffer::Allocate(size_t delta) {
- delta = internal::Align(delta);
-
- DCHECK_LE(delta, static_cast<size_t>(data_num_bytes_));
- DCHECK_GT(bytes_claimed_ + static_cast<uint32_t>(delta), bytes_claimed_);
-
- uint32_t new_bytes_claimed = bytes_claimed_ + static_cast<uint32_t>(delta);
- if (new_bytes_claimed > data_num_bytes_) {
- NOTREACHED();
- return nullptr;
- }
-
- char* start = static_cast<char*>(buffer_) + bytes_claimed_;
- bytes_claimed_ = new_bytes_claimed;
- return static_cast<void*>(start);
-}
-
void MessageBuffer::NotifyBadMessage(const std::string& error) {
DCHECK(message_.is_valid());
MojoResult result = mojo::NotifyBadMessage(message_.get(), error);