diff options
author | Jay Civelli <jcivelli@google.com> | 2017-03-29 16:17:00 -0700 |
---|---|---|
committer | Jay Civelli <jcivelli@google.com> | 2017-07-24 13:31:43 -0700 |
commit | 8ac9103e05b66812c25348943383f9365d1ce3e0 (patch) | |
tree | 63a61c9698e719de1a24de6fca21e29401f92842 /mojo/public/cpp/bindings/lib/message_buffer.cc | |
parent | 24543f227908c2e949bb9a15b40276f59fcc9a0a (diff) | |
download | libmojo-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.cc | 37 |
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); |