Index: base/pickle.cc |
=================================================================== |
--- base/pickle.cc (revision 29613) |
+++ base/pickle.cc (working copy) |
@@ -6,8 +6,8 @@ |
#include <stdlib.h> |
+#include <algorithm> // for max() |
#include <limits> |
-#include <string> |
//------------------------------------------------------------------------------ |
@@ -181,6 +181,20 @@ |
return true; |
} |
+bool Pickle::ReadUInt64(void** iter, uint64* result) const { |
+ DCHECK(iter); |
+ if (!*iter) |
+ *iter = const_cast<char*>(payload()); |
+ |
+ if (!IteratorHasRoomFor(*iter, sizeof(*result))) |
+ return false; |
+ |
+ memcpy(result, *iter, sizeof(*result)); |
+ |
+ UpdateIter(iter, sizeof(*result)); |
+ return true; |
+} |
+ |
bool Pickle::ReadIntPtr(void** iter, intptr_t* result) const { |
DCHECK(iter); |
if (!*iter) |
@@ -355,7 +369,7 @@ |
} |
void Pickle::TrimWriteData(int new_length) { |
- DCHECK(variable_buffer_offset_ != 0); |
+ DCHECK_NE(variable_buffer_offset_, 0); |
// Fetch the the variable buffer size |
int* cur_length = reinterpret_cast<int*>( |