Index: base/pickle.cc |
diff --git a/base/pickle.cc b/base/pickle.cc |
index 3f376e3f1cf95dac87007b2432f97ac0dbd8ea29..a05df287f80077c0b4019cd0cbd96e963aaea986 100644 |
--- a/base/pickle.cc |
+++ b/base/pickle.cc |
@@ -140,12 +140,6 @@ bool Pickle::ReadLong(void** iter, long* result) const { |
return true; |
} |
-bool Pickle::ReadLength(void** iter, int* result) const { |
- if (!ReadInt(iter, result)) |
- return false; |
- return ((*result) >= 0); |
-} |
- |
bool Pickle::ReadSize(void** iter, size_t* result) const { |
DCHECK(iter); |
if (!*iter) |
@@ -256,22 +250,6 @@ bool Pickle::ReadString16(void** iter, string16* result) const { |
return true; |
} |
-bool Pickle::ReadBytes(void** iter, const char** data, int length) const { |
- DCHECK(iter); |
- DCHECK(data); |
- *data = 0; |
- if (!*iter) |
- *iter = const_cast<char*>(payload()); |
- |
- if (!IteratorHasRoomFor(*iter, length)) |
- return false; |
- |
- *data = reinterpret_cast<const char*>(*iter); |
- |
- UpdateIter(iter, length); |
- return true; |
-} |
- |
bool Pickle::ReadData(void** iter, const char** data, int* length) const { |
DCHECK(iter); |
DCHECK(data); |
@@ -285,41 +263,26 @@ bool Pickle::ReadData(void** iter, const char** data, int* length) const { |
return ReadBytes(iter, data, *length); |
} |
-char* Pickle::BeginWrite(size_t length) { |
- // write at a uint32-aligned offset from the beginning of the header |
- size_t offset = AlignInt(header_->payload_size, sizeof(uint32)); |
- |
- size_t new_size = offset + length; |
- size_t needed_size = header_size_ + new_size; |
- if (needed_size > capacity_ && !Resize(std::max(capacity_ * 2, needed_size))) |
- return NULL; |
+bool Pickle::ReadBytes(void** iter, const char** data, int length) const { |
+ DCHECK(iter); |
+ DCHECK(data); |
+ *data = 0; |
+ if (!*iter) |
+ *iter = const_cast<char*>(payload()); |
-#ifdef ARCH_CPU_64_BITS |
- DCHECK_LE(length, std::numeric_limits<uint32>::max()); |
-#endif |
+ if (!IteratorHasRoomFor(*iter, length)) |
+ return false; |
- header_->payload_size = static_cast<uint32>(new_size); |
- return payload() + offset; |
-} |
+ *data = reinterpret_cast<const char*>(*iter); |
-void Pickle::EndWrite(char* dest, int length) { |
- // Zero-pad to keep tools like purify from complaining about uninitialized |
- // memory. |
- if (length % sizeof(uint32)) |
- memset(dest + length, 0, sizeof(uint32) - (length % sizeof(uint32))); |
+ UpdateIter(iter, length); |
+ return true; |
} |
-bool Pickle::WriteBytes(const void* data, int data_len) { |
- DCHECK(capacity_ != kCapacityReadOnly) << "oops: pickle is readonly"; |
- |
- char* dest = BeginWrite(data_len); |
- if (!dest) |
+bool Pickle::ReadLength(void** iter, int* result) const { |
+ if (!ReadInt(iter, result)) |
return false; |
- |
- memcpy(dest, data, data_len); |
- |
- EndWrite(dest, data_len); |
- return true; |
+ return ((*result) >= 0); |
} |
bool Pickle::WriteString(const std::string& value) { |
@@ -349,6 +312,19 @@ bool Pickle::WriteData(const char* data, int length) { |
return length >= 0 && WriteInt(length) && WriteBytes(data, length); |
} |
+bool Pickle::WriteBytes(const void* data, int data_len) { |
+ DCHECK(capacity_ != kCapacityReadOnly) << "oops: pickle is readonly"; |
+ |
+ char* dest = BeginWrite(data_len); |
+ if (!dest) |
+ return false; |
+ |
+ memcpy(dest, data, data_len); |
+ |
+ EndWrite(dest, data_len); |
+ return true; |
+} |
+ |
char* Pickle::BeginWriteData(int length) { |
DCHECK_EQ(variable_buffer_offset_, 0U) << |
"There can only be one variable buffer in a Pickle"; |
@@ -386,6 +362,30 @@ void Pickle::TrimWriteData(int new_length) { |
*cur_length = new_length; |
} |
+char* Pickle::BeginWrite(size_t length) { |
+ // write at a uint32-aligned offset from the beginning of the header |
+ size_t offset = AlignInt(header_->payload_size, sizeof(uint32)); |
+ |
+ size_t new_size = offset + length; |
+ size_t needed_size = header_size_ + new_size; |
+ if (needed_size > capacity_ && !Resize(std::max(capacity_ * 2, needed_size))) |
+ return NULL; |
+ |
+#ifdef ARCH_CPU_64_BITS |
+ DCHECK_LE(length, std::numeric_limits<uint32>::max()); |
+#endif |
+ |
+ header_->payload_size = static_cast<uint32>(new_size); |
+ return payload() + offset; |
+} |
+ |
+void Pickle::EndWrite(char* dest, int length) { |
+ // Zero-pad to keep tools like purify from complaining about uninitialized |
+ // memory. |
+ if (length % sizeof(uint32)) |
+ memset(dest + length, 0, sizeof(uint32) - (length % sizeof(uint32))); |
+} |
+ |
bool Pickle::Resize(size_t new_capacity) { |
new_capacity = AlignInt(new_capacity, kPayloadUnit); |