| Index: ipc/ipc_message_utils.cc
|
| diff --git a/ipc/ipc_message_utils.cc b/ipc/ipc_message_utils.cc
|
| index ea88b55a2a5129260bdc984b35e97ee0171b9ad5..5d09a50ba78d282267ba8651165f5afc63620133 100644
|
| --- a/ipc/ipc_message_utils.cc
|
| +++ b/ipc/ipc_message_utils.cc
|
| @@ -67,12 +67,12 @@ void LogBytes(const std::vector<CharType>& data, std::string* out) {
|
| #endif
|
| }
|
|
|
| -bool ReadValue(const Message* m,
|
| +bool ReadValue(const base::Pickle* m,
|
| base::PickleIterator* iter,
|
| base::Value** value,
|
| int recursion);
|
|
|
| -void WriteValue(Message* m, const base::Value* value, int recursion) {
|
| +void WriteValue(base::Pickle* m, const base::Value* value, int recursion) {
|
| bool result;
|
| if (recursion > kMaxRecursionDepth) {
|
| LOG(WARNING) << "Max recursion depth hit in WriteValue.";
|
| @@ -145,7 +145,7 @@ void WriteValue(Message* m, const base::Value* value, int recursion) {
|
|
|
| // Helper for ReadValue that reads a DictionaryValue into a pre-allocated
|
| // object.
|
| -bool ReadDictionaryValue(const Message* m,
|
| +bool ReadDictionaryValue(const base::Pickle* m,
|
| base::PickleIterator* iter,
|
| base::DictionaryValue* value,
|
| int recursion) {
|
| @@ -167,7 +167,7 @@ bool ReadDictionaryValue(const Message* m,
|
|
|
| // Helper for ReadValue that reads a ReadListValue into a pre-allocated
|
| // object.
|
| -bool ReadListValue(const Message* m,
|
| +bool ReadListValue(const base::Pickle* m,
|
| base::PickleIterator* iter,
|
| base::ListValue* value,
|
| int recursion) {
|
| @@ -185,7 +185,7 @@ bool ReadListValue(const Message* m,
|
| return true;
|
| }
|
|
|
| -bool ReadValue(const Message* m,
|
| +bool ReadValue(const base::Pickle* m,
|
| base::PickleIterator* iter,
|
| base::Value** value,
|
| int recursion) {
|
| @@ -278,13 +278,13 @@ void ParamTraits<bool>::Log(const param_type& p, std::string* l) {
|
| l->append(p ? "true" : "false");
|
| }
|
|
|
| -void ParamTraits<signed char>::Write(Message* m, const param_type& p) {
|
| +void ParamTraits<signed char>::Write(base::Pickle* m, const param_type& p) {
|
| m->WriteBytes(&p, sizeof(param_type));
|
| }
|
|
|
| -bool ParamTraits<signed char>::Read(const Message* m,
|
| - base::PickleIterator* iter,
|
| - param_type* r) {
|
| +bool ParamTraits<signed char>::Read(const base::Pickle* m,
|
| + base::PickleIterator* iter,
|
| + param_type* r) {
|
| const char* data;
|
| if (!iter->ReadBytes(&data, sizeof(param_type)))
|
| return false;
|
| @@ -296,11 +296,11 @@ void ParamTraits<signed char>::Log(const param_type& p, std::string* l) {
|
| l->append(base::IntToString(p));
|
| }
|
|
|
| -void ParamTraits<unsigned char>::Write(Message* m, const param_type& p) {
|
| +void ParamTraits<unsigned char>::Write(base::Pickle* m, const param_type& p) {
|
| m->WriteBytes(&p, sizeof(param_type));
|
| }
|
|
|
| -bool ParamTraits<unsigned char>::Read(const Message* m,
|
| +bool ParamTraits<unsigned char>::Read(const base::Pickle* m,
|
| base::PickleIterator* iter,
|
| param_type* r) {
|
| const char* data;
|
| @@ -314,11 +314,11 @@ void ParamTraits<unsigned char>::Log(const param_type& p, std::string* l) {
|
| l->append(base::UintToString(p));
|
| }
|
|
|
| -void ParamTraits<unsigned short>::Write(Message* m, const param_type& p) {
|
| +void ParamTraits<unsigned short>::Write(base::Pickle* m, const param_type& p) {
|
| m->WriteBytes(&p, sizeof(param_type));
|
| }
|
|
|
| -bool ParamTraits<unsigned short>::Read(const Message* m,
|
| +bool ParamTraits<unsigned short>::Read(const base::Pickle* m,
|
| base::PickleIterator* iter,
|
| param_type* r) {
|
| const char* data;
|
| @@ -360,11 +360,11 @@ void ParamTraits<float>::Log(const param_type& p, std::string* l) {
|
| l->append(base::StringPrintf("%e", p));
|
| }
|
|
|
| -void ParamTraits<double>::Write(Message* m, const param_type& p) {
|
| +void ParamTraits<double>::Write(base::Pickle* m, const param_type& p) {
|
| m->WriteBytes(reinterpret_cast<const char*>(&p), sizeof(param_type));
|
| }
|
|
|
| -bool ParamTraits<double>::Read(const Message* m,
|
| +bool ParamTraits<double>::Read(const base::Pickle* m,
|
| base::PickleIterator* iter,
|
| param_type* r) {
|
| const char *data;
|
| @@ -389,7 +389,8 @@ void ParamTraits<base::string16>::Log(const param_type& p, std::string* l) {
|
| l->append(base::UTF16ToUTF8(p));
|
| }
|
|
|
| -void ParamTraits<std::vector<char> >::Write(Message* m, const param_type& p) {
|
| +void ParamTraits<std::vector<char>>::Write(base::Pickle* m,
|
| + const param_type& p) {
|
| if (p.empty()) {
|
| m->WriteData(NULL, 0);
|
| } else {
|
| @@ -397,7 +398,7 @@ void ParamTraits<std::vector<char> >::Write(Message* m, const param_type& p) {
|
| }
|
| }
|
|
|
| -bool ParamTraits<std::vector<char>>::Read(const Message* m,
|
| +bool ParamTraits<std::vector<char>>::Read(const base::Pickle* m,
|
| base::PickleIterator* iter,
|
| param_type* r) {
|
| const char *data;
|
| @@ -414,8 +415,8 @@ void ParamTraits<std::vector<char> >::Log(const param_type& p, std::string* l) {
|
| LogBytes(p, l);
|
| }
|
|
|
| -void ParamTraits<std::vector<unsigned char> >::Write(Message* m,
|
| - const param_type& p) {
|
| +void ParamTraits<std::vector<unsigned char>>::Write(base::Pickle* m,
|
| + const param_type& p) {
|
| if (p.empty()) {
|
| m->WriteData(NULL, 0);
|
| } else {
|
| @@ -424,7 +425,7 @@ void ParamTraits<std::vector<unsigned char> >::Write(Message* m,
|
| }
|
| }
|
|
|
| -bool ParamTraits<std::vector<unsigned char>>::Read(const Message* m,
|
| +bool ParamTraits<std::vector<unsigned char>>::Read(const base::Pickle* m,
|
| base::PickleIterator* iter,
|
| param_type* r) {
|
| const char *data;
|
| @@ -442,7 +443,8 @@ void ParamTraits<std::vector<unsigned char> >::Log(const param_type& p,
|
| LogBytes(p, l);
|
| }
|
|
|
| -void ParamTraits<std::vector<bool> >::Write(Message* m, const param_type& p) {
|
| +void ParamTraits<std::vector<bool>>::Write(base::Pickle* m,
|
| + const param_type& p) {
|
| WriteParam(m, static_cast<int>(p.size()));
|
| // Cast to bool below is required because libc++'s
|
| // vector<bool>::const_reference is different from bool, and we want to avoid
|
| @@ -451,7 +453,7 @@ void ParamTraits<std::vector<bool> >::Write(Message* m, const param_type& p) {
|
| WriteParam(m, static_cast<bool>(p[i]));
|
| }
|
|
|
| -bool ParamTraits<std::vector<bool>>::Read(const Message* m,
|
| +bool ParamTraits<std::vector<bool>>::Read(const base::Pickle* m,
|
| base::PickleIterator* iter,
|
| param_type* r) {
|
| int size;
|
| @@ -477,13 +479,13 @@ void ParamTraits<std::vector<bool> >::Log(const param_type& p, std::string* l) {
|
| }
|
|
|
| void ParamTraits<BrokerableAttachment::AttachmentId>::Write(
|
| - Message* m,
|
| + base::Pickle* m,
|
| const param_type& p) {
|
| m->WriteBytes(p.nonce, BrokerableAttachment::kNonceSize);
|
| }
|
|
|
| bool ParamTraits<BrokerableAttachment::AttachmentId>::Read(
|
| - const Message* m,
|
| + const base::Pickle* m,
|
| base::PickleIterator* iter,
|
| param_type* r) {
|
| const char* data;
|
| @@ -498,12 +500,12 @@ void ParamTraits<BrokerableAttachment::AttachmentId>::Log(const param_type& p,
|
| l->append(base::HexEncode(p.nonce, BrokerableAttachment::kNonceSize));
|
| }
|
|
|
| -void ParamTraits<base::DictionaryValue>::Write(Message* m,
|
| +void ParamTraits<base::DictionaryValue>::Write(base::Pickle* m,
|
| const param_type& p) {
|
| WriteValue(m, &p, 0);
|
| }
|
|
|
| -bool ParamTraits<base::DictionaryValue>::Read(const Message* m,
|
| +bool ParamTraits<base::DictionaryValue>::Read(const base::Pickle* m,
|
| base::PickleIterator* iter,
|
| param_type* r) {
|
| int type;
|
| @@ -521,7 +523,8 @@ void ParamTraits<base::DictionaryValue>::Log(const param_type& p,
|
| }
|
|
|
| #if defined(OS_POSIX)
|
| -void ParamTraits<base::FileDescriptor>::Write(Message* m, const param_type& p) {
|
| +void ParamTraits<base::FileDescriptor>::Write(base::Pickle* m,
|
| + const param_type& p) {
|
| const bool valid = p.fd >= 0;
|
| WriteParam(m, valid);
|
|
|
| @@ -538,7 +541,7 @@ void ParamTraits<base::FileDescriptor>::Write(Message* m, const param_type& p) {
|
| }
|
| }
|
|
|
| -bool ParamTraits<base::FileDescriptor>::Read(const Message* m,
|
| +bool ParamTraits<base::FileDescriptor>::Read(const base::Pickle* m,
|
| base::PickleIterator* iter,
|
| param_type* r) {
|
| *r = base::FileDescriptor();
|
| @@ -551,11 +554,13 @@ bool ParamTraits<base::FileDescriptor>::Read(const Message* m,
|
| if (!valid)
|
| return true;
|
|
|
| - scoped_refptr<MessageAttachment> attachment;
|
| + scoped_refptr<base::Pickle::Attachment> attachment;
|
| if (!m->ReadAttachment(iter, &attachment))
|
| return false;
|
|
|
| - *r = base::FileDescriptor(attachment->TakePlatformFile(), true);
|
| + *r = base::FileDescriptor(
|
| + static_cast<MessageAttachment*>(attachment.get())->TakePlatformFile(),
|
| + true);
|
| return true;
|
| }
|
|
|
| @@ -570,7 +575,7 @@ void ParamTraits<base::FileDescriptor>::Log(const param_type& p,
|
| #endif // defined(OS_POSIX)
|
|
|
| #if defined(OS_MACOSX) && !defined(OS_IOS)
|
| -void ParamTraits<base::SharedMemoryHandle>::Write(Message* m,
|
| +void ParamTraits<base::SharedMemoryHandle>::Write(base::Pickle* m,
|
| const param_type& p) {
|
| m->WriteInt(p.GetType());
|
|
|
| @@ -595,7 +600,7 @@ void ParamTraits<base::SharedMemoryHandle>::Write(Message* m,
|
| }
|
| }
|
|
|
| -bool ParamTraits<base::SharedMemoryHandle>::Read(const Message* m,
|
| +bool ParamTraits<base::SharedMemoryHandle>::Read(const base::Pickle* m,
|
| base::PickleIterator* iter,
|
| param_type* r) {
|
| base::SharedMemoryHandle::TypeWireFormat type;
|
| @@ -658,7 +663,7 @@ void ParamTraits<base::SharedMemoryHandle>::Log(const param_type& p,
|
| }
|
|
|
| #elif defined(OS_WIN)
|
| -void ParamTraits<base::SharedMemoryHandle>::Write(Message* m,
|
| +void ParamTraits<base::SharedMemoryHandle>::Write(base::Pickle* m,
|
| const param_type& p) {
|
| m->WriteBool(p.NeedsBrokering());
|
|
|
| @@ -670,7 +675,7 @@ void ParamTraits<base::SharedMemoryHandle>::Write(Message* m,
|
| }
|
| }
|
|
|
| -bool ParamTraits<base::SharedMemoryHandle>::Read(const Message* m,
|
| +bool ParamTraits<base::SharedMemoryHandle>::Read(const base::Pickle* m,
|
| base::PickleIterator* iter,
|
| param_type* r) {
|
| bool needs_brokering;
|
| @@ -702,11 +707,11 @@ void ParamTraits<base::SharedMemoryHandle>::Log(const param_type& p,
|
| }
|
| #endif // defined(OS_MACOSX) && !defined(OS_IOS)
|
|
|
| -void ParamTraits<base::FilePath>::Write(Message* m, const param_type& p) {
|
| +void ParamTraits<base::FilePath>::Write(base::Pickle* m, const param_type& p) {
|
| p.WriteToPickle(m);
|
| }
|
|
|
| -bool ParamTraits<base::FilePath>::Read(const Message* m,
|
| +bool ParamTraits<base::FilePath>::Read(const base::Pickle* m,
|
| base::PickleIterator* iter,
|
| param_type* r) {
|
| return r->ReadFromPickle(iter);
|
| @@ -716,11 +721,11 @@ void ParamTraits<base::FilePath>::Log(const param_type& p, std::string* l) {
|
| ParamTraits<base::FilePath::StringType>::Log(p.value(), l);
|
| }
|
|
|
| -void ParamTraits<base::ListValue>::Write(Message* m, const param_type& p) {
|
| +void ParamTraits<base::ListValue>::Write(base::Pickle* m, const param_type& p) {
|
| WriteValue(m, &p, 0);
|
| }
|
|
|
| -bool ParamTraits<base::ListValue>::Read(const Message* m,
|
| +bool ParamTraits<base::ListValue>::Read(const base::Pickle* m,
|
| base::PickleIterator* iter,
|
| param_type* r) {
|
| int type;
|
| @@ -736,13 +741,13 @@ void ParamTraits<base::ListValue>::Log(const param_type& p, std::string* l) {
|
| l->append(json);
|
| }
|
|
|
| -void ParamTraits<base::NullableString16>::Write(Message* m,
|
| +void ParamTraits<base::NullableString16>::Write(base::Pickle* m,
|
| const param_type& p) {
|
| WriteParam(m, p.string());
|
| WriteParam(m, p.is_null());
|
| }
|
|
|
| -bool ParamTraits<base::NullableString16>::Read(const Message* m,
|
| +bool ParamTraits<base::NullableString16>::Read(const base::Pickle* m,
|
| base::PickleIterator* iter,
|
| param_type* r) {
|
| base::string16 string;
|
| @@ -764,7 +769,7 @@ void ParamTraits<base::NullableString16>::Log(const param_type& p,
|
| l->append(")");
|
| }
|
|
|
| -void ParamTraits<base::File::Info>::Write(Message* m,
|
| +void ParamTraits<base::File::Info>::Write(base::Pickle* m,
|
| const param_type& p) {
|
| WriteParam(m, p.size);
|
| WriteParam(m, p.is_directory);
|
| @@ -773,7 +778,7 @@ void ParamTraits<base::File::Info>::Write(Message* m,
|
| WriteParam(m, p.creation_time.ToDoubleT());
|
| }
|
|
|
| -bool ParamTraits<base::File::Info>::Read(const Message* m,
|
| +bool ParamTraits<base::File::Info>::Read(const base::Pickle* m,
|
| base::PickleIterator* iter,
|
| param_type* p) {
|
| double last_modified, last_accessed, creation_time;
|
| @@ -804,11 +809,11 @@ void ParamTraits<base::File::Info>::Log(const param_type& p,
|
| l->append(")");
|
| }
|
|
|
| -void ParamTraits<base::Time>::Write(Message* m, const param_type& p) {
|
| +void ParamTraits<base::Time>::Write(base::Pickle* m, const param_type& p) {
|
| ParamTraits<int64_t>::Write(m, p.ToInternalValue());
|
| }
|
|
|
| -bool ParamTraits<base::Time>::Read(const Message* m,
|
| +bool ParamTraits<base::Time>::Read(const base::Pickle* m,
|
| base::PickleIterator* iter,
|
| param_type* r) {
|
| int64_t value;
|
| @@ -822,11 +827,11 @@ void ParamTraits<base::Time>::Log(const param_type& p, std::string* l) {
|
| ParamTraits<int64_t>::Log(p.ToInternalValue(), l);
|
| }
|
|
|
| -void ParamTraits<base::TimeDelta>::Write(Message* m, const param_type& p) {
|
| +void ParamTraits<base::TimeDelta>::Write(base::Pickle* m, const param_type& p) {
|
| ParamTraits<int64_t>::Write(m, p.ToInternalValue());
|
| }
|
|
|
| -bool ParamTraits<base::TimeDelta>::Read(const Message* m,
|
| +bool ParamTraits<base::TimeDelta>::Read(const base::Pickle* m,
|
| base::PickleIterator* iter,
|
| param_type* r) {
|
| int64_t value;
|
| @@ -841,11 +846,11 @@ void ParamTraits<base::TimeDelta>::Log(const param_type& p, std::string* l) {
|
| ParamTraits<int64_t>::Log(p.ToInternalValue(), l);
|
| }
|
|
|
| -void ParamTraits<base::TimeTicks>::Write(Message* m, const param_type& p) {
|
| +void ParamTraits<base::TimeTicks>::Write(base::Pickle* m, const param_type& p) {
|
| ParamTraits<int64_t>::Write(m, p.ToInternalValue());
|
| }
|
|
|
| -bool ParamTraits<base::TimeTicks>::Read(const Message* m,
|
| +bool ParamTraits<base::TimeTicks>::Read(const base::Pickle* m,
|
| base::PickleIterator* iter,
|
| param_type* r) {
|
| int64_t value;
|
| @@ -860,7 +865,8 @@ void ParamTraits<base::TimeTicks>::Log(const param_type& p, std::string* l) {
|
| ParamTraits<int64_t>::Log(p.ToInternalValue(), l);
|
| }
|
|
|
| -void ParamTraits<IPC::ChannelHandle>::Write(Message* m, const param_type& p) {
|
| +void ParamTraits<IPC::ChannelHandle>::Write(base::Pickle* m,
|
| + const param_type& p) {
|
| #if defined(OS_WIN)
|
| // On Windows marshalling pipe handle is not supported.
|
| DCHECK(p.pipe.handle == NULL);
|
| @@ -871,7 +877,7 @@ void ParamTraits<IPC::ChannelHandle>::Write(Message* m, const param_type& p) {
|
| #endif
|
| }
|
|
|
| -bool ParamTraits<IPC::ChannelHandle>::Read(const Message* m,
|
| +bool ParamTraits<IPC::ChannelHandle>::Read(const base::Pickle* m,
|
| base::PickleIterator* iter,
|
| param_type* r) {
|
| return ReadParam(m, iter, &r->name)
|
| @@ -891,7 +897,7 @@ void ParamTraits<IPC::ChannelHandle>::Log(const param_type& p,
|
| l->append(")");
|
| }
|
|
|
| -void ParamTraits<LogData>::Write(Message* m, const param_type& p) {
|
| +void ParamTraits<LogData>::Write(base::Pickle* m, const param_type& p) {
|
| WriteParam(m, p.channel);
|
| WriteParam(m, p.routing_id);
|
| WriteParam(m, p.type);
|
| @@ -903,7 +909,7 @@ void ParamTraits<LogData>::Write(Message* m, const param_type& p) {
|
| WriteParam(m, p.params);
|
| }
|
|
|
| -bool ParamTraits<LogData>::Read(const Message* m,
|
| +bool ParamTraits<LogData>::Read(const base::Pickle* m,
|
| base::PickleIterator* iter,
|
| param_type* r) {
|
| return
|
| @@ -922,7 +928,7 @@ void ParamTraits<LogData>::Log(const param_type& p, std::string* l) {
|
| // Doesn't make sense to implement this!
|
| }
|
|
|
| -void ParamTraits<Message>::Write(Message* m, const Message& p) {
|
| +void ParamTraits<Message>::Write(base::Pickle* m, const Message& p) {
|
| #if defined(OS_POSIX)
|
| // We don't serialize the file descriptors in the nested message, so there
|
| // better not be any.
|
| @@ -945,7 +951,7 @@ void ParamTraits<Message>::Write(Message* m, const Message& p) {
|
| m->WriteData(p.payload(), static_cast<uint32_t>(p.payload_size()));
|
| }
|
|
|
| -bool ParamTraits<Message>::Read(const Message* m,
|
| +bool ParamTraits<Message>::Read(const base::Pickle* m,
|
| base::PickleIterator* iter,
|
| Message* r) {
|
| uint32_t routing_id, type, flags;
|
| @@ -970,11 +976,11 @@ void ParamTraits<Message>::Log(const Message& p, std::string* l) {
|
| #if defined(OS_WIN)
|
| // Note that HWNDs/HANDLE/HCURSOR/HACCEL etc are always 32 bits, even on 64
|
| // bit systems. That's why we use the Windows macros to convert to 32 bits.
|
| -void ParamTraits<HANDLE>::Write(Message* m, const param_type& p) {
|
| +void ParamTraits<HANDLE>::Write(base::Pickle* m, const param_type& p) {
|
| m->WriteInt(HandleToLong(p));
|
| }
|
|
|
| -bool ParamTraits<HANDLE>::Read(const Message* m,
|
| +bool ParamTraits<HANDLE>::Read(const base::Pickle* m,
|
| base::PickleIterator* iter,
|
| param_type* r) {
|
| int32_t temp;
|
| @@ -988,11 +994,11 @@ void ParamTraits<HANDLE>::Log(const param_type& p, std::string* l) {
|
| l->append(base::StringPrintf("0x%p", p));
|
| }
|
|
|
| -void ParamTraits<LOGFONT>::Write(Message* m, const param_type& p) {
|
| +void ParamTraits<LOGFONT>::Write(base::Pickle* m, const param_type& p) {
|
| m->WriteData(reinterpret_cast<const char*>(&p), sizeof(LOGFONT));
|
| }
|
|
|
| -bool ParamTraits<LOGFONT>::Read(const Message* m,
|
| +bool ParamTraits<LOGFONT>::Read(const base::Pickle* m,
|
| base::PickleIterator* iter,
|
| param_type* r) {
|
| const char *data;
|
| @@ -1013,11 +1019,11 @@ void ParamTraits<LOGFONT>::Log(const param_type& p, std::string* l) {
|
| l->append(base::StringPrintf("<LOGFONT>"));
|
| }
|
|
|
| -void ParamTraits<MSG>::Write(Message* m, const param_type& p) {
|
| +void ParamTraits<MSG>::Write(base::Pickle* m, const param_type& p) {
|
| m->WriteData(reinterpret_cast<const char*>(&p), sizeof(MSG));
|
| }
|
|
|
| -bool ParamTraits<MSG>::Read(const Message* m,
|
| +bool ParamTraits<MSG>::Read(const base::Pickle* m,
|
| base::PickleIterator* iter,
|
| param_type* r) {
|
| const char *data;
|
|
|