Skip to content

Commit 5a44489

Browse files
authored
Move PbList to its own library (#1063)
A while ago we started converting parts to libraries to allow conditional compilation. This continues to move more parts to libraries, with `PbList`. Libraries allow specifying public and internally public interfaces of the types and makes it easier to define and maintain internal invariants. To avoid large (difficult to sync) diffs, I'm moving one part at a time. apitool reports no changes with this PR.
1 parent 78cf743 commit 5a44489

File tree

8 files changed

+92
-69
lines changed

8 files changed

+92
-69
lines changed

protobuf/lib/protobuf.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ export 'src/protobuf/internal.dart'
1717
FieldSetInternalExtension,
1818
GeneratedMessageInternalExtension,
1919
MapFieldInfoInternalExtension,
20+
checkNotNull,
2021
mapKeyFieldNumber,
2122
mapValueFieldNumber,
2223
mergeFromProto3JsonAny,

protobuf/lib/src/protobuf/builder_info.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -372,7 +372,7 @@ class BuilderInfo {
372372
tagNumber,
373373
name,
374374
fieldType,
375-
_checkNotNull,
375+
checkNotNull,
376376
subBuilder,
377377
valueOf,
378378
enumValues,
@@ -398,7 +398,7 @@ class BuilderInfo {
398398
tagNumber,
399399
name,
400400
fieldType,
401-
_checkNotNull,
401+
checkNotNull,
402402
null,
403403
valueOf,
404404
enumValues,
@@ -456,7 +456,7 @@ class BuilderInfo {
456456
tagNumber,
457457
name,
458458
PbFieldType.PM,
459-
_checkNotNull,
459+
checkNotNull,
460460
subBuilder,
461461
null,
462462
null,

protobuf/lib/src/protobuf/coded_buffer.dart

Lines changed: 56 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -117,59 +117,59 @@ void _mergeFromCodedBufferReader(
117117
if (wireType == WIRETYPE_LENGTH_DELIMITED) {
118118
final limit = input.readInt32();
119119
if (limit != 0) {
120-
list._checkModifiable('add');
120+
list.checkModifiable('add');
121121
// No need to check the element as for `bool` fields we only need to
122122
// check that the value is not null, and we know in `add` below that
123123
// the value isn't null (`readBool` doesn't return `null`).
124124
input._withLimit(limit, () {
125125
while (!input.isAtEnd()) {
126-
list._addUnchecked(input.readBool());
126+
list.addUnchecked(input.readBool());
127127
}
128128
});
129129
}
130130
} else {
131-
list._checkModifiable('add');
132-
list._addUnchecked(input.readBool());
131+
list.checkModifiable('add');
132+
list.addUnchecked(input.readBool());
133133
}
134134
case PbFieldType.REPEATED_BYTES:
135135
final list = fs._ensureRepeatedField(meta, fi);
136-
list._checkModifiable('add');
137-
list._addUnchecked(input.readBytes());
136+
list.checkModifiable('add');
137+
list.addUnchecked(input.readBytes());
138138
case PbFieldType.REPEATED_STRING:
139139
final list = fs._ensureRepeatedField(meta, fi);
140-
list._checkModifiable('add');
141-
list._addUnchecked(input.readString());
140+
list.checkModifiable('add');
141+
list.addUnchecked(input.readString());
142142
case PbFieldType.REPEATED_FLOAT:
143143
final list = fs._ensureRepeatedField(meta, fi);
144144
if (wireType == WIRETYPE_LENGTH_DELIMITED) {
145145
final limit = input.readInt32();
146146
if (limit != 0) {
147-
list._checkModifiable('add');
147+
list.checkModifiable('add');
148148
input._withLimit(limit, () {
149149
while (!input.isAtEnd()) {
150-
list._addUnchecked(input.readFloat());
150+
list.addUnchecked(input.readFloat());
151151
}
152152
});
153153
}
154154
} else {
155-
list._checkModifiable('add');
156-
list._addUnchecked(input.readFloat());
155+
list.checkModifiable('add');
156+
list.addUnchecked(input.readFloat());
157157
}
158158
case PbFieldType.REPEATED_DOUBLE:
159159
final list = fs._ensureRepeatedField(meta, fi);
160160
if (wireType == WIRETYPE_LENGTH_DELIMITED) {
161161
final limit = input.readInt32();
162162
if (limit != 0) {
163-
list._checkModifiable('add');
163+
list.checkModifiable('add');
164164
input._withLimit(limit, () {
165165
while (!input.isAtEnd()) {
166-
list._addUnchecked(input.readDouble());
166+
list.addUnchecked(input.readDouble());
167167
}
168168
});
169169
}
170170
} else {
171-
list._checkModifiable('add');
172-
list._addUnchecked(input.readDouble());
171+
list.checkModifiable('add');
172+
list.addUnchecked(input.readDouble());
173173
}
174174
case PbFieldType.REPEATED_ENUM:
175175
final list = fs._ensureRepeatedField(meta, fi);
@@ -192,160 +192,160 @@ void _mergeFromCodedBufferReader(
192192
if (wireType == WIRETYPE_LENGTH_DELIMITED) {
193193
final limit = input.readInt32();
194194
if (limit != 0) {
195-
list._checkModifiable('add');
195+
list.checkModifiable('add');
196196
input._withLimit(limit, () {
197197
while (!input.isAtEnd()) {
198-
list._addUnchecked(input.readInt32());
198+
list.addUnchecked(input.readInt32());
199199
}
200200
});
201201
}
202202
} else {
203-
list._checkModifiable('add');
204-
list._addUnchecked(input.readInt32());
203+
list.checkModifiable('add');
204+
list.addUnchecked(input.readInt32());
205205
}
206206
case PbFieldType.REPEATED_INT64:
207207
final list = fs._ensureRepeatedField(meta, fi);
208208
if (wireType == WIRETYPE_LENGTH_DELIMITED) {
209209
final limit = input.readInt32();
210210
if (limit != 0) {
211-
list._checkModifiable('add');
211+
list.checkModifiable('add');
212212
input._withLimit(limit, () {
213213
while (!input.isAtEnd()) {
214-
list._addUnchecked(input.readInt64());
214+
list.addUnchecked(input.readInt64());
215215
}
216216
});
217217
}
218218
} else {
219-
list._checkModifiable('add');
220-
list._addUnchecked(input.readInt64());
219+
list.checkModifiable('add');
220+
list.addUnchecked(input.readInt64());
221221
}
222222
case PbFieldType.REPEATED_SINT32:
223223
final list = fs._ensureRepeatedField(meta, fi);
224224
if (wireType == WIRETYPE_LENGTH_DELIMITED) {
225225
final limit = input.readInt32();
226226
if (limit != 0) {
227-
list._checkModifiable('add');
227+
list.checkModifiable('add');
228228
input._withLimit(limit, () {
229229
while (!input.isAtEnd()) {
230-
list._addUnchecked(input.readSint32());
230+
list.addUnchecked(input.readSint32());
231231
}
232232
});
233233
}
234234
} else {
235-
list._checkModifiable('add');
236-
list._addUnchecked(input.readSint32());
235+
list.checkModifiable('add');
236+
list.addUnchecked(input.readSint32());
237237
}
238238
case PbFieldType.REPEATED_SINT64:
239239
final list = fs._ensureRepeatedField(meta, fi);
240240
if (wireType == WIRETYPE_LENGTH_DELIMITED) {
241241
final limit = input.readInt32();
242242
if (limit != 0) {
243-
list._checkModifiable('add');
243+
list.checkModifiable('add');
244244
input._withLimit(limit, () {
245245
while (!input.isAtEnd()) {
246-
list._addUnchecked(input.readSint64());
246+
list.addUnchecked(input.readSint64());
247247
}
248248
});
249249
}
250250
} else {
251-
list._checkModifiable('add');
252-
list._addUnchecked(input.readSint64());
251+
list.checkModifiable('add');
252+
list.addUnchecked(input.readSint64());
253253
}
254254
case PbFieldType.REPEATED_UINT32:
255255
final list = fs._ensureRepeatedField(meta, fi);
256256
if (wireType == WIRETYPE_LENGTH_DELIMITED) {
257257
final limit = input.readInt32();
258258
if (limit != 0) {
259-
list._checkModifiable('add');
259+
list.checkModifiable('add');
260260
input._withLimit(limit, () {
261261
while (!input.isAtEnd()) {
262-
list._addUnchecked(input.readUint32());
262+
list.addUnchecked(input.readUint32());
263263
}
264264
});
265265
}
266266
} else {
267-
list._checkModifiable('add');
268-
list._addUnchecked(input.readUint32());
267+
list.checkModifiable('add');
268+
list.addUnchecked(input.readUint32());
269269
}
270270
case PbFieldType.REPEATED_UINT64:
271271
final list = fs._ensureRepeatedField(meta, fi);
272272
if (wireType == WIRETYPE_LENGTH_DELIMITED) {
273273
final limit = input.readInt32();
274274
if (limit != 0) {
275-
list._checkModifiable('add');
275+
list.checkModifiable('add');
276276
input._withLimit(limit, () {
277277
while (!input.isAtEnd()) {
278-
list._addUnchecked(input.readUint64());
278+
list.addUnchecked(input.readUint64());
279279
}
280280
});
281281
}
282282
} else {
283-
list._checkModifiable('add');
284-
list._addUnchecked(input.readUint64());
283+
list.checkModifiable('add');
284+
list.addUnchecked(input.readUint64());
285285
}
286286
case PbFieldType.REPEATED_FIXED32:
287287
final list = fs._ensureRepeatedField(meta, fi);
288288
if (wireType == WIRETYPE_LENGTH_DELIMITED) {
289289
final limit = input.readInt32();
290290
if (limit != 0) {
291-
list._checkModifiable('add');
291+
list.checkModifiable('add');
292292
input._withLimit(limit, () {
293293
while (!input.isAtEnd()) {
294-
list._addUnchecked(input.readFixed32());
294+
list.addUnchecked(input.readFixed32());
295295
}
296296
});
297297
}
298298
} else {
299-
list._checkModifiable('add');
300-
list._addUnchecked(input.readFixed32());
299+
list.checkModifiable('add');
300+
list.addUnchecked(input.readFixed32());
301301
}
302302
case PbFieldType.REPEATED_FIXED64:
303303
final list = fs._ensureRepeatedField(meta, fi);
304304
if (wireType == WIRETYPE_LENGTH_DELIMITED) {
305305
final limit = input.readInt32();
306306
if (limit != 0) {
307-
list._checkModifiable('add');
307+
list.checkModifiable('add');
308308
input._withLimit(limit, () {
309309
while (!input.isAtEnd()) {
310-
list._addUnchecked(input.readFixed64());
310+
list.addUnchecked(input.readFixed64());
311311
}
312312
});
313313
}
314314
} else {
315-
list._checkModifiable('add');
316-
list._addUnchecked(input.readFixed64());
315+
list.checkModifiable('add');
316+
list.addUnchecked(input.readFixed64());
317317
}
318318
case PbFieldType.REPEATED_SFIXED32:
319319
final list = fs._ensureRepeatedField(meta, fi);
320320
if (wireType == WIRETYPE_LENGTH_DELIMITED) {
321321
final limit = input.readInt32();
322322
if (limit != 0) {
323-
list._checkModifiable('add');
323+
list.checkModifiable('add');
324324
input._withLimit(limit, () {
325325
while (!input.isAtEnd()) {
326-
list._addUnchecked(input.readSfixed32());
326+
list.addUnchecked(input.readSfixed32());
327327
}
328328
});
329329
}
330330
} else {
331-
list._checkModifiable('add');
332-
list._addUnchecked(input.readSfixed32());
331+
list.checkModifiable('add');
332+
list.addUnchecked(input.readSfixed32());
333333
}
334334
case PbFieldType.REPEATED_SFIXED64:
335335
final list = fs._ensureRepeatedField(meta, fi);
336336
if (wireType == WIRETYPE_LENGTH_DELIMITED) {
337337
final limit = input.readInt32();
338338
if (limit != 0) {
339-
list._checkModifiable('add');
339+
list.checkModifiable('add');
340340
input._withLimit(limit, () {
341341
while (!input.isAtEnd()) {
342-
list._addUnchecked(input.readSfixed64());
342+
list.addUnchecked(input.readSfixed64());
343343
}
344344
});
345345
}
346346
} else {
347-
list._checkModifiable('add');
348-
list._addUnchecked(input.readSfixed64());
347+
list.checkModifiable('add');
348+
list.addUnchecked(input.readSfixed64());
349349
}
350350
case PbFieldType.REPEATED_MESSAGE:
351351
final subMessage = meta._makeEmptyMessage(tagNumber, registry);

protobuf/lib/src/protobuf/extension_field_set.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ class ExtensionFieldSet {
235235
newValues[tag] = map?._deepCopy();
236236
} else if (fieldInfo.isRepeated) {
237237
final PbList? list = value;
238-
newValues[tag] = list?._deepCopy();
238+
newValues[tag] = list?.deepCopy();
239239
} else if (fieldInfo.isGroupOrMessage) {
240240
final GeneratedMessage? message = value;
241241
newValues[tag] = message?.deepCopy();

protobuf/lib/src/protobuf/field_error.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ CheckFunc getCheckFunction(int fieldType) {
8989
// We always use the full range of the same Dart type.
9090
// It's up to the caller to treat the Int64 as signed or unsigned.
9191
// See: https://github.com/google/protobuf.dart/issues/44
92-
return _checkNotNull;
92+
return checkNotNull;
9393

9494
case PbFieldType.FLOAT_BIT:
9595
return _checkFloat;
@@ -108,7 +108,7 @@ CheckFunc getCheckFunction(int fieldType) {
108108

109109
// check functions for repeated fields
110110

111-
void _checkNotNull(Object? val) {
111+
void checkNotNull(Object? val) {
112112
if (val == null) {
113113
throw ArgumentError("Can't add a null to a repeated field");
114114
}

protobuf/lib/src/protobuf/field_set.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -957,7 +957,7 @@ class FieldSet {
957957
} else if (fieldInfo.isRepeated) {
958958
final PbList? originalList = original._values[index];
959959
if (originalList == null) continue;
960-
_values[index] = originalList._deepCopy();
960+
_values[index] = originalList.deepCopy();
961961
} else if (fieldInfo.isGroupOrMessage) {
962962
final GeneratedMessage? message = original._values[index];
963963
_values[index] = message?.deepCopy();

protobuf/lib/src/protobuf/internal.dart

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
/// [1]: https://developers.google.com/protocol-buffers
88
library;
99

10-
import 'dart:collection' show ListBase, MapBase;
10+
import 'dart:collection' show MapBase;
1111
import 'dart:convert' show Utf8Decoder, Utf8Encoder, base64Decode, base64Encode;
1212
import 'dart:math' as math;
1313
import 'dart:typed_data' show ByteData, Endian, Uint8List;
@@ -20,10 +20,12 @@ import 'consts.dart';
2020
import 'json/json.dart' as json_lib;
2121
import 'json_parsing_context.dart';
2222
import 'mixins/well_known.dart';
23+
import 'pb_list.dart';
2324
import 'permissive_compare.dart';
2425
import 'type_registry.dart';
2526
import 'utils.dart';
2627

28+
export 'pb_list.dart' show PbList;
2729
export 'type_registry.dart' show TypeRegistry;
2830

2931
part 'annotations.dart';
@@ -42,7 +44,6 @@ part 'field_type.dart';
4244
part 'generated_message.dart';
4345
part 'generated_service.dart';
4446
part 'message_set.dart';
45-
part 'pb_list.dart';
4647
part 'pb_map.dart';
4748
part 'proto3_json.dart';
4849
part 'protobuf_enum.dart';

0 commit comments

Comments
 (0)