Index: ipc/ipc_sync_message.cc |
diff --git a/ipc/ipc_sync_message.cc b/ipc/ipc_sync_message.cc |
index 875f97b1fec167162f83a5919f7fe8e4cf91b534..eb0a917d6e49d0b42a0f7f2d0a9788b7b7ae1ff2 100644 |
--- a/ipc/ipc_sync_message.cc |
+++ b/ipc/ipc_sync_message.cc |
@@ -74,10 +74,12 @@ bool SyncMessage::IsMessageReplyTo(const Message& msg, int request_id) { |
return GetMessageId(msg) == request_id; |
} |
-void* SyncMessage::GetDataIterator(const Message* msg) { |
- void* iter = const_cast<char*>(msg->payload()); |
- UpdateIter(&iter, kSyncMessageHeaderSize); |
- return iter; |
+PickleIterator SyncMessage::GetDataIterator(const Message* msg) { |
+ PickleIterator iter(*msg); |
+ if (!iter.SkipBytes(kSyncMessageHeaderSize)) |
+ return PickleIterator(); |
+ else |
+ return iter; |
} |
int SyncMessage::GetMessageId(const Message& msg) { |
@@ -110,7 +112,7 @@ Message* SyncMessage::GenerateReply(const Message* msg) { |
bool SyncMessage::ReadSyncHeader(const Message& msg, SyncHeader* header) { |
DCHECK(msg.is_sync() || msg.is_reply()); |
- void* iter = NULL; |
+ PickleIterator iter(msg); |
bool result = msg.ReadInt(&iter, &header->message_id); |
if (!result) { |
NOTREACHED(); |