Index: third_party/protobuf/python/google/protobuf/internal/decoder.py |
=================================================================== |
--- third_party/protobuf/python/google/protobuf/internal/decoder.py (revision 216642) |
+++ third_party/protobuf/python/google/protobuf/internal/decoder.py (working copy) |
@@ -576,6 +576,7 @@ |
local_SkipField = SkipField |
def DecodeItem(buffer, pos, end, message, field_dict): |
+ message_set_item_start = pos |
type_id = -1 |
message_start = -1 |
message_end = -1 |
@@ -614,6 +615,11 @@ |
# The only reason _InternalParse would return early is if it encountered |
# an end-group tag. |
raise _DecodeError('Unexpected end-group tag.') |
+ else: |
+ if not message._unknown_fields: |
+ message._unknown_fields = [] |
+ message._unknown_fields.append((MESSAGE_SET_ITEM_TAG, |
+ buffer[message_set_item_start:pos])) |
return pos |