summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-18 18:20:57 +0000
committersergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-18 18:20:57 +0000
commite00a6c0abdc75244bc6c37944be12e93e29c9add (patch)
treebc5442c16408300e5fbecbb14d171675e68dd71e
parentbb2e756f8636761fb4b66b7554138cbfc7f1f0b0 (diff)
downloadchromium_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.cc2
-rw-r--r--base/pickle.h15
-rw-r--r--chrome/browser/extensions/api/messaging/native_message_process_host.cc3
-rw-r--r--chrome/tools/ipclist/ipcfuzz.cc2
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));
}
};