@@ -26,18 +26,17 @@ void _writeToCodedBufferWriter(_FieldSet fs, CodedBufferWriter out) {
26
26
}
27
27
}
28
28
29
- void _mergeFromCodedBufferReader (
30
- _FieldSet fs, CodedBufferReader input, ExtensionRegistry registry) {
29
+ void _mergeFromCodedBufferReader (BuilderInfo meta, _FieldSet fs,
30
+ CodedBufferReader input, ExtensionRegistry registry) {
31
31
ArgumentError .checkNotNull (registry);
32
-
33
32
while (true ) {
34
33
var tag = input.readTag ();
35
34
if (tag == 0 ) return ;
36
35
var wireType = tag & 0x7 ;
37
36
var tagNumber = tag >> 3 ;
38
37
39
- var fi = fs._nonExtensionInfo (tagNumber);
40
- fi ?? = registry.getExtension (fs._messageName , tagNumber);
38
+ var fi = fs._nonExtensionInfo (meta, tagNumber);
39
+ fi ?? = registry.getExtension (meta.qualifiedMessageName , tagNumber);
41
40
42
41
if (fi == null || ! _wireTypeMatches (fi.type, wireType)) {
43
42
if (! fs._ensureUnknownFields ().mergeFieldFromBuffer (tag, input)) {
@@ -51,156 +50,167 @@ void _mergeFromCodedBufferReader(
51
50
fieldType & = ~ (PbFieldType ._PACKED_BIT | PbFieldType ._REQUIRED_BIT );
52
51
switch (fieldType) {
53
52
case PbFieldType ._OPTIONAL_BOOL :
54
- fs._setFieldUnchecked (fi, input.readBool ());
53
+ fs._setFieldUnchecked (meta, fi, input.readBool ());
55
54
break ;
56
55
case PbFieldType ._OPTIONAL_BYTES :
57
- fs._setFieldUnchecked (fi, input.readBytes ());
56
+ fs._setFieldUnchecked (meta, fi, input.readBytes ());
58
57
break ;
59
58
case PbFieldType ._OPTIONAL_STRING :
60
- fs._setFieldUnchecked (fi, input.readString ());
59
+ fs._setFieldUnchecked (meta, fi, input.readString ());
61
60
break ;
62
61
case PbFieldType ._OPTIONAL_FLOAT :
63
- fs._setFieldUnchecked (fi, input.readFloat ());
62
+ fs._setFieldUnchecked (meta, fi, input.readFloat ());
64
63
break ;
65
64
case PbFieldType ._OPTIONAL_DOUBLE :
66
- fs._setFieldUnchecked (fi, input.readDouble ());
65
+ fs._setFieldUnchecked (meta, fi, input.readDouble ());
67
66
break ;
68
67
case PbFieldType ._OPTIONAL_ENUM :
69
68
var rawValue = input.readEnum ();
70
- var value = fs._meta ._decodeEnum (tagNumber, registry, rawValue);
69
+ var value = meta ._decodeEnum (tagNumber, registry, rawValue);
71
70
if (value == null ) {
72
71
var unknown = fs._ensureUnknownFields ();
73
72
unknown.mergeVarintField (tagNumber, Int64 (rawValue));
74
73
} else {
75
- fs._setFieldUnchecked (fi, value);
74
+ fs._setFieldUnchecked (meta, fi, value);
76
75
}
77
76
break ;
78
77
case PbFieldType ._OPTIONAL_GROUP :
79
- var subMessage = fs._meta ._makeEmptyMessage (tagNumber, registry);
78
+ var subMessage = meta ._makeEmptyMessage (tagNumber, registry);
80
79
var oldValue = fs._getFieldOrNull (fi);
81
80
if (oldValue != null ) {
82
81
subMessage.mergeFromMessage (oldValue);
83
82
}
84
83
input.readGroup (tagNumber, subMessage, registry);
85
- fs._setFieldUnchecked (fi, subMessage);
84
+ fs._setFieldUnchecked (meta, fi, subMessage);
86
85
break ;
87
86
case PbFieldType ._OPTIONAL_INT32 :
88
- fs._setFieldUnchecked (fi, input.readInt32 ());
87
+ fs._setFieldUnchecked (meta, fi, input.readInt32 ());
89
88
break ;
90
89
case PbFieldType ._OPTIONAL_INT64 :
91
- fs._setFieldUnchecked (fi, input.readInt64 ());
90
+ fs._setFieldUnchecked (meta, fi, input.readInt64 ());
92
91
break ;
93
92
case PbFieldType ._OPTIONAL_SINT32 :
94
- fs._setFieldUnchecked (fi, input.readSint32 ());
93
+ fs._setFieldUnchecked (meta, fi, input.readSint32 ());
95
94
break ;
96
95
case PbFieldType ._OPTIONAL_SINT64 :
97
- fs._setFieldUnchecked (fi, input.readSint64 ());
96
+ fs._setFieldUnchecked (meta, fi, input.readSint64 ());
98
97
break ;
99
98
case PbFieldType ._OPTIONAL_UINT32 :
100
- fs._setFieldUnchecked (fi, input.readUint32 ());
99
+ fs._setFieldUnchecked (meta, fi, input.readUint32 ());
101
100
break ;
102
101
case PbFieldType ._OPTIONAL_UINT64 :
103
- fs._setFieldUnchecked (fi, input.readUint64 ());
102
+ fs._setFieldUnchecked (meta, fi, input.readUint64 ());
104
103
break ;
105
104
case PbFieldType ._OPTIONAL_FIXED32 :
106
- fs._setFieldUnchecked (fi, input.readFixed32 ());
105
+ fs._setFieldUnchecked (meta, fi, input.readFixed32 ());
107
106
break ;
108
107
case PbFieldType ._OPTIONAL_FIXED64 :
109
- fs._setFieldUnchecked (fi, input.readFixed64 ());
108
+ fs._setFieldUnchecked (meta, fi, input.readFixed64 ());
110
109
break ;
111
110
case PbFieldType ._OPTIONAL_SFIXED32 :
112
- fs._setFieldUnchecked (fi, input.readSfixed32 ());
111
+ fs._setFieldUnchecked (meta, fi, input.readSfixed32 ());
113
112
break ;
114
113
case PbFieldType ._OPTIONAL_SFIXED64 :
115
- fs._setFieldUnchecked (fi, input.readSfixed64 ());
114
+ fs._setFieldUnchecked (meta, fi, input.readSfixed64 ());
116
115
break ;
117
116
case PbFieldType ._OPTIONAL_MESSAGE :
118
- var subMessage = fs._meta ._makeEmptyMessage (tagNumber, registry);
117
+ var subMessage = meta ._makeEmptyMessage (tagNumber, registry);
119
118
var oldValue = fs._getFieldOrNull (fi);
120
119
if (oldValue != null ) {
121
120
subMessage.mergeFromMessage (oldValue);
122
121
}
123
122
input.readMessage (subMessage, registry);
124
- fs._setFieldUnchecked (fi, subMessage);
123
+ fs._setFieldUnchecked (meta, fi, subMessage);
125
124
break ;
126
125
case PbFieldType ._REPEATED_BOOL :
127
- _readPackable (fs, input, wireType, fi, input.readBool);
126
+ _readPackable (meta, fs, input, wireType, fi, input.readBool);
128
127
break ;
129
128
case PbFieldType ._REPEATED_BYTES :
130
- fs._ensureRepeatedField (fi).add (input.readBytes ());
129
+ fs._ensureRepeatedField (meta, fi).add (input.readBytes ());
131
130
break ;
132
131
case PbFieldType ._REPEATED_STRING :
133
- fs._ensureRepeatedField (fi).add (input.readString ());
132
+ fs._ensureRepeatedField (meta, fi).add (input.readString ());
134
133
break ;
135
134
case PbFieldType ._REPEATED_FLOAT :
136
- _readPackable (fs, input, wireType, fi, input.readFloat);
135
+ _readPackable (meta, fs, input, wireType, fi, input.readFloat);
137
136
break ;
138
137
case PbFieldType ._REPEATED_DOUBLE :
139
- _readPackable (fs, input, wireType, fi, input.readDouble);
138
+ _readPackable (meta, fs, input, wireType, fi, input.readDouble);
140
139
break ;
141
140
case PbFieldType ._REPEATED_ENUM :
142
- _readPackableToListEnum (fs, input, wireType, fi, tagNumber, registry);
141
+ _readPackableToListEnum (
142
+ meta, fs, input, wireType, fi, tagNumber, registry);
143
143
break ;
144
144
case PbFieldType ._REPEATED_GROUP :
145
- var subMessage = fs._meta ._makeEmptyMessage (tagNumber, registry);
145
+ var subMessage = meta ._makeEmptyMessage (tagNumber, registry);
146
146
input.readGroup (tagNumber, subMessage, registry);
147
- fs._ensureRepeatedField (fi).add (subMessage);
147
+ fs._ensureRepeatedField (meta, fi).add (subMessage);
148
148
break ;
149
149
case PbFieldType ._REPEATED_INT32 :
150
- _readPackable (fs, input, wireType, fi, input.readInt32);
150
+ _readPackable (meta, fs, input, wireType, fi, input.readInt32);
151
151
break ;
152
152
case PbFieldType ._REPEATED_INT64 :
153
- _readPackable (fs, input, wireType, fi, input.readInt64);
153
+ _readPackable (meta, fs, input, wireType, fi, input.readInt64);
154
154
break ;
155
155
case PbFieldType ._REPEATED_SINT32 :
156
- _readPackable (fs, input, wireType, fi, input.readSint32);
156
+ _readPackable (meta, fs, input, wireType, fi, input.readSint32);
157
157
break ;
158
158
case PbFieldType ._REPEATED_SINT64 :
159
- _readPackable (fs, input, wireType, fi, input.readSint64);
159
+ _readPackable (meta, fs, input, wireType, fi, input.readSint64);
160
160
break ;
161
161
case PbFieldType ._REPEATED_UINT32 :
162
- _readPackable (fs, input, wireType, fi, input.readUint32);
162
+ _readPackable (meta, fs, input, wireType, fi, input.readUint32);
163
163
break ;
164
164
case PbFieldType ._REPEATED_UINT64 :
165
- _readPackable (fs, input, wireType, fi, input.readUint64);
165
+ _readPackable (meta, fs, input, wireType, fi, input.readUint64);
166
166
break ;
167
167
case PbFieldType ._REPEATED_FIXED32 :
168
- _readPackable (fs, input, wireType, fi, input.readFixed32);
168
+ _readPackable (meta, fs, input, wireType, fi, input.readFixed32);
169
169
break ;
170
170
case PbFieldType ._REPEATED_FIXED64 :
171
- _readPackable (fs, input, wireType, fi, input.readFixed64);
171
+ _readPackable (meta, fs, input, wireType, fi, input.readFixed64);
172
172
break ;
173
173
case PbFieldType ._REPEATED_SFIXED32 :
174
- _readPackable (fs, input, wireType, fi, input.readSfixed32);
174
+ _readPackable (meta, fs, input, wireType, fi, input.readSfixed32);
175
175
break ;
176
176
case PbFieldType ._REPEATED_SFIXED64 :
177
- _readPackable (fs, input, wireType, fi, input.readSfixed64);
177
+ _readPackable (meta, fs, input, wireType, fi, input.readSfixed64);
178
178
break ;
179
179
case PbFieldType ._REPEATED_MESSAGE :
180
- var subMessage = fs._meta ._makeEmptyMessage (tagNumber, registry);
180
+ var subMessage = meta ._makeEmptyMessage (tagNumber, registry);
181
181
input.readMessage (subMessage, registry);
182
- fs._ensureRepeatedField (fi).add (subMessage);
182
+ fs._ensureRepeatedField (meta, fi).add (subMessage);
183
183
break ;
184
184
case PbFieldType ._MAP :
185
- fs._ensureMapField (fi as MapFieldInfo )._mergeEntry (input, registry);
185
+ final mapFieldInfo = fi as MapFieldInfo ;
186
+ final mapEntryMeta = mapFieldInfo.mapEntryBuilderInfo;
187
+ fs
188
+ ._ensureMapField (meta, mapFieldInfo)
189
+ ._mergeEntry (mapEntryMeta, input, registry);
186
190
break ;
187
191
default :
188
192
throw 'Unknown field type $fieldType ' ;
189
193
}
190
194
}
191
195
}
192
196
193
- void _readPackable (_FieldSet fs, CodedBufferReader input, int wireType ,
194
- FieldInfo fi, Function readFunc) {
197
+ void _readPackable (BuilderInfo meta, _FieldSet fs, CodedBufferReader input,
198
+ int wireType, FieldInfo fi, Function readFunc) {
195
199
void readToList (List list) => list.add (readFunc ());
196
- _readPackableToList (fs, input, wireType, fi, readToList);
200
+ _readPackableToList (meta, fs, input, wireType, fi, readToList);
197
201
}
198
202
199
- void _readPackableToListEnum (_FieldSet fs, CodedBufferReader input,
200
- int wireType, FieldInfo fi, int tagNumber, ExtensionRegistry registry) {
203
+ void _readPackableToListEnum (
204
+ BuilderInfo meta,
205
+ _FieldSet fs,
206
+ CodedBufferReader input,
207
+ int wireType,
208
+ FieldInfo fi,
209
+ int tagNumber,
210
+ ExtensionRegistry registry) {
201
211
void readToList (List list) {
202
212
var rawValue = input.readEnum ();
203
- var value = fs._meta ._decodeEnum (tagNumber, registry, rawValue);
213
+ var value = meta ._decodeEnum (tagNumber, registry, rawValue);
204
214
if (value == null ) {
205
215
var unknown = fs._ensureUnknownFields ();
206
216
unknown.mergeVarintField (tagNumber, Int64 (rawValue));
@@ -209,12 +219,12 @@ void _readPackableToListEnum(_FieldSet fs, CodedBufferReader input,
209
219
}
210
220
}
211
221
212
- _readPackableToList (fs, input, wireType, fi, readToList);
222
+ _readPackableToList (meta, fs, input, wireType, fi, readToList);
213
223
}
214
224
215
- void _readPackableToList (_FieldSet fs, CodedBufferReader input, int wireType ,
216
- FieldInfo fi, Function readToList) {
217
- var list = fs._ensureRepeatedField (fi);
225
+ void _readPackableToList (BuilderInfo meta, _FieldSet fs ,
226
+ CodedBufferReader input, int wireType, FieldInfo fi, Function readToList) {
227
+ var list = fs._ensureRepeatedField (meta, fi);
218
228
219
229
if (wireType == WIRETYPE_LENGTH_DELIMITED ) {
220
230
// Packed.
0 commit comments