diff options
author | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-18 18:20:57 +0000 |
---|---|---|
committer | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-18 18:20:57 +0000 |
commit | e00a6c0abdc75244bc6c37944be12e93e29c9add (patch) | |
tree | bc5442c16408300e5fbecbb14d171675e68dd71e | |
parent | bb2e756f8636761fb4b66b7554138cbfc7f1f0b0 (diff) | |
download | chromium_src-e00a6c0abdc75244bc6c37944be12e93e29c9add.zip chromium_src-e00a6c0abdc75244bc6c37944be12e93e29c9add.tar.gz chromium_src-e00a6c0abdc75244bc6c37944be12e93e29c9add.tar.bz2 |
Rename non-const payload() in base::Pickle to mutable_pyload()
base::Pickle has two methods - one is declared const and another one is not.
The non const version of the method is protected, which makes the const
payload() inaccessible in non-const Pickle instances.
Also made end_of_payload() public and removed non-const version of that method.
Review URL: https://codereview.chromium.org/11959022
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@177711 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | base/pickle.cc | 2 | ||||
-rw-r--r-- | base/pickle.h | 15 | ||||
-rw-r--r-- | chrome/browser/extensions/api/messaging/native_message_process_host.cc | 3 | ||||
-rw-r--r-- | chrome/tools/ipclist/ipcfuzz.cc | 2 |
4 files changed, 9 insertions, 13 deletions
diff --git a/base/pickle.cc b/base/pickle.cc index 00c6ef0..af3191b 100644 --- a/base/pickle.cc +++ b/base/pickle.cc @@ -318,7 +318,7 @@ char* Pickle::BeginWrite(size_t length) { #endif header_->payload_size = static_cast<uint32>(new_size); - return payload() + offset; + return mutable_payload() + offset; } void Pickle::EndWrite(char* dest, int length) { diff --git a/base/pickle.h b/base/pickle.h index cd587de..62dcd15 100644 --- a/base/pickle.h +++ b/base/pickle.h @@ -278,26 +278,23 @@ class BASE_EXPORT Pickle { // The payload is the pickle data immediately following the header. size_t payload_size() const { return header_->payload_size; } + const char* payload() const { return reinterpret_cast<const char*>(header_) + header_size_; } - protected: - char* payload() { - return reinterpret_cast<char*>(header_) + header_size_; - } - // Returns the address of the byte immediately following the currently valid // header + payload. - char* end_of_payload() { - // We must have a valid header_. - return payload() + payload_size(); - } const char* end_of_payload() const { // This object may be invalid. return header_ ? payload() + payload_size() : NULL; } + protected: + char* mutable_payload() { + return reinterpret_cast<char*>(header_) + header_size_; + } + size_t capacity() const { return capacity_; } diff --git a/chrome/browser/extensions/api/messaging/native_message_process_host.cc b/chrome/browser/extensions/api/messaging/native_message_process_host.cc index c431811..07fb1bd 100644 --- a/chrome/browser/extensions/api/messaging/native_message_process_host.cc +++ b/chrome/browser/extensions/api/messaging/native_message_process_host.cc @@ -165,8 +165,7 @@ bool NativeMessageProcessHost::WriteMessage(MessageType type, // Make sure that the pickle doesn't do any unexpected padding. CHECK(8 + message.length() == pickle.payload_size()); - if (!WriteData(write_file_, const_cast<const Pickle*>(&pickle)->payload(), - pickle.payload_size())) { + if (!WriteData(write_file_, pickle.payload(), pickle.payload_size())) { LOG(ERROR) << "Error writing message to the native client."; return false; } diff --git a/chrome/tools/ipclist/ipcfuzz.cc b/chrome/tools/ipclist/ipcfuzz.cc index 87fe2c2..5006307 100644 --- a/chrome/tools/ipclist/ipcfuzz.cc +++ b/chrome/tools/ipclist/ipcfuzz.cc @@ -501,7 +501,7 @@ struct FuzzTraits<gfx::Rect> { class PickleCracker : public Pickle { public: static void CopyMessageID(PickleCracker *dst, PickleCracker *src) { - memcpy(dst->payload(), src->payload(), sizeof(int)); + memcpy(dst->mutable_payload(), src->payload(), sizeof(int)); } }; |