google-protobuf 4.27.4 → 4.28.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -342,10 +342,81 @@ void __asan_unpoison_memory_region(void const volatile *addr, size_t size);
342
342
  #define UPB_DESC_MINITABLE(sym) &google__protobuf__##sym##_msg_init
343
343
  #endif
344
344
 
345
- #ifdef UPB_TRACING_ENABLED
346
- #ifdef NDEBUG
347
- error UPB_TRACING_ENABLED Tracing should be disabled in production builds
348
- #endif
345
+
346
+ // Linker arrays combine elements from multiple translation units into a single
347
+ // array that can be iterated over at runtime.
348
+ //
349
+ // It is an alternative to pre-main "registration" functions.
350
+ //
351
+ // Usage:
352
+ //
353
+ // // In N translation units.
354
+ // UPB_LINKARR_APPEND(foo_array) static int elems[3] = {1, 2, 3};
355
+ //
356
+ // // At runtime:
357
+ // UPB_LINKARR_DECLARE(foo_array, int);
358
+ //
359
+ // void f() {
360
+ // const int* start = UPB_LINKARR_START(foo_array);
361
+ // const int* stop = UPB_LINKARR_STOP(foo_array);
362
+ // for (const int* p = start; p < stop; p++) {
363
+ // // Windows can introduce zero padding, so we have to skip zeroes.
364
+ // if (*p != 0) {
365
+ // vec.push_back(*p);
366
+ // }
367
+ // }
368
+ // }
369
+
370
+ #if defined(__ELF__) || defined(__wasm__)
371
+
372
+ #define UPB_LINKARR_APPEND(name) \
373
+ __attribute__((retain, used, section("linkarr_" #name)))
374
+ #define UPB_LINKARR_DECLARE(name, type) \
375
+ extern type const __start_linkarr_##name; \
376
+ extern type const __stop_linkarr_##name; \
377
+ UPB_LINKARR_APPEND(name) type UPB_linkarr_internal_empty_##name[1]
378
+ #define UPB_LINKARR_START(name) (&__start_linkarr_##name)
379
+ #define UPB_LINKARR_STOP(name) (&__stop_linkarr_##name)
380
+
381
+ #elif defined(__MACH__)
382
+
383
+ /* As described in: https://stackoverflow.com/a/22366882 */
384
+ #define UPB_LINKARR_APPEND(name) \
385
+ __attribute__((retain, used, section("__DATA,__la_" #name)))
386
+ #define UPB_LINKARR_DECLARE(name, type) \
387
+ extern type const __start_linkarr_##name __asm( \
388
+ "section$start$__DATA$__la_" #name); \
389
+ extern type const __stop_linkarr_##name __asm( \
390
+ "section$end$__DATA$" \
391
+ "__la_" #name); \
392
+ UPB_LINKARR_APPEND(name) type UPB_linkarr_internal_empty_##name[1]
393
+ #define UPB_LINKARR_START(name) (&__start_linkarr_##name)
394
+ #define UPB_LINKARR_STOP(name) (&__stop_linkarr_##name)
395
+
396
+ #elif defined(_MSC_VER) && defined(__clang__)
397
+
398
+ /* See:
399
+ * https://devblogs.microsoft.com/oldnewthing/20181107-00/?p=100155
400
+ * https://devblogs.microsoft.com/oldnewthing/20181108-00/?p=100165
401
+ * https://devblogs.microsoft.com/oldnewthing/20181109-00/?p=100175 */
402
+
403
+ // Usage of __attribute__ here probably means this is Clang-specific, and would
404
+ // not work on MSVC.
405
+ #define UPB_LINKARR_APPEND(name) \
406
+ __declspec(allocate("la_" #name "$j")) __attribute__((retain, used))
407
+ #define UPB_LINKARR_DECLARE(name, type) \
408
+ __declspec(allocate("la_" #name "$a")) type __start_linkarr_##name; \
409
+ __declspec(allocate("la_" #name "$z")) type __stop_linkarr_##name; \
410
+ UPB_LINKARR_APPEND(name) type UPB_linkarr_internal_empty_##name[1] = {0}
411
+ #define UPB_LINKARR_START(name) (&__start_linkarr_##name)
412
+ #define UPB_LINKARR_STOP(name) (&__stop_linkarr_##name)
413
+
414
+ #else
415
+
416
+ // Linker arrays are not supported on this platform. Make appends a no-op but
417
+ // don't define the other macros.
418
+ #define UPB_LINKARR_APPEND(name)
419
+
349
420
  #endif
350
421
 
351
422
  #ifndef UPB_BASE_STATUS_H_
@@ -415,113 +486,6 @@ void upb_Status_VAppendErrorFormat(upb_Status* status, const char* fmt,
415
486
  #ifndef UPB_MESSAGE_ACCESSORS_H_
416
487
  #define UPB_MESSAGE_ACCESSORS_H_
417
488
 
418
- #include <stddef.h>
419
- #include <stdint.h>
420
- #include <string.h>
421
-
422
-
423
- #ifndef UPB_BASE_DESCRIPTOR_CONSTANTS_H_
424
- #define UPB_BASE_DESCRIPTOR_CONSTANTS_H_
425
-
426
- // Must be last.
427
-
428
- // The types a field can have. Note that this list is not identical to the
429
- // types defined in descriptor.proto, which gives INT32 and SINT32 separate
430
- // types (we distinguish the two with the "integer encoding" enum below).
431
- // This enum is an internal convenience only and has no meaning outside of upb.
432
- typedef enum {
433
- kUpb_CType_Bool = 1,
434
- kUpb_CType_Float = 2,
435
- kUpb_CType_Int32 = 3,
436
- kUpb_CType_UInt32 = 4,
437
- kUpb_CType_Enum = 5, // Enum values are int32. TODO: rename
438
- kUpb_CType_Message = 6,
439
- kUpb_CType_Double = 7,
440
- kUpb_CType_Int64 = 8,
441
- kUpb_CType_UInt64 = 9,
442
- kUpb_CType_String = 10,
443
- kUpb_CType_Bytes = 11
444
- } upb_CType;
445
-
446
- // The repeated-ness of each field; this matches descriptor.proto.
447
- typedef enum {
448
- kUpb_Label_Optional = 1,
449
- kUpb_Label_Required = 2,
450
- kUpb_Label_Repeated = 3
451
- } upb_Label;
452
-
453
- // Descriptor types, as defined in descriptor.proto.
454
- typedef enum {
455
- kUpb_FieldType_Double = 1,
456
- kUpb_FieldType_Float = 2,
457
- kUpb_FieldType_Int64 = 3,
458
- kUpb_FieldType_UInt64 = 4,
459
- kUpb_FieldType_Int32 = 5,
460
- kUpb_FieldType_Fixed64 = 6,
461
- kUpb_FieldType_Fixed32 = 7,
462
- kUpb_FieldType_Bool = 8,
463
- kUpb_FieldType_String = 9,
464
- kUpb_FieldType_Group = 10,
465
- kUpb_FieldType_Message = 11,
466
- kUpb_FieldType_Bytes = 12,
467
- kUpb_FieldType_UInt32 = 13,
468
- kUpb_FieldType_Enum = 14,
469
- kUpb_FieldType_SFixed32 = 15,
470
- kUpb_FieldType_SFixed64 = 16,
471
- kUpb_FieldType_SInt32 = 17,
472
- kUpb_FieldType_SInt64 = 18,
473
- } upb_FieldType;
474
-
475
- #define kUpb_FieldType_SizeOf 19
476
-
477
- #ifdef __cplusplus
478
- extern "C" {
479
- #endif
480
-
481
- // Convert from upb_FieldType to upb_CType
482
- UPB_INLINE upb_CType upb_FieldType_CType(upb_FieldType field_type) {
483
- static const upb_CType c_type[] = {
484
- kUpb_CType_Double, // kUpb_FieldType_Double
485
- kUpb_CType_Float, // kUpb_FieldType_Float
486
- kUpb_CType_Int64, // kUpb_FieldType_Int64
487
- kUpb_CType_UInt64, // kUpb_FieldType_UInt64
488
- kUpb_CType_Int32, // kUpb_FieldType_Int32
489
- kUpb_CType_UInt64, // kUpb_FieldType_Fixed64
490
- kUpb_CType_UInt32, // kUpb_FieldType_Fixed32
491
- kUpb_CType_Bool, // kUpb_FieldType_Bool
492
- kUpb_CType_String, // kUpb_FieldType_String
493
- kUpb_CType_Message, // kUpb_FieldType_Group
494
- kUpb_CType_Message, // kUpb_FieldType_Message
495
- kUpb_CType_Bytes, // kUpb_FieldType_Bytes
496
- kUpb_CType_UInt32, // kUpb_FieldType_UInt32
497
- kUpb_CType_Enum, // kUpb_FieldType_Enum
498
- kUpb_CType_Int32, // kUpb_FieldType_SFixed32
499
- kUpb_CType_Int64, // kUpb_FieldType_SFixed64
500
- kUpb_CType_Int32, // kUpb_FieldType_SInt32
501
- kUpb_CType_Int64, // kUpb_FieldType_SInt64
502
- };
503
-
504
- // -1 here because the enum is one-based but the table is zero-based.
505
- return c_type[field_type - 1];
506
- }
507
-
508
- UPB_INLINE bool upb_FieldType_IsPackable(upb_FieldType field_type) {
509
- // clang-format off
510
- const unsigned kUnpackableTypes =
511
- (1 << kUpb_FieldType_String) |
512
- (1 << kUpb_FieldType_Bytes) |
513
- (1 << kUpb_FieldType_Message) |
514
- (1 << kUpb_FieldType_Group);
515
- // clang-format on
516
- return (1 << field_type) & ~kUnpackableTypes;
517
- }
518
-
519
- #ifdef __cplusplus
520
- } /* extern "C" */
521
- #endif
522
-
523
-
524
- #endif /* UPB_BASE_DESCRIPTOR_CONSTANTS_H_ */
525
489
  #ifndef UPB_BASE_STRING_VIEW_H_
526
490
  #define UPB_BASE_STRING_VIEW_H_
527
491
 
@@ -801,6 +765,15 @@ UPB_API_INLINE void* upb_Arena_Malloc(struct upb_Arena* a, size_t size);
801
765
  UPB_API_INLINE void* upb_Arena_Realloc(upb_Arena* a, void* ptr, size_t oldsize,
802
766
  size_t size);
803
767
 
768
+ // Sets the maximum block size for all arenas. This is a global configuration
769
+ // setting that will affect all existing and future arenas. If
770
+ // upb_Arena_Malloc() is called with a size larger than this, we will exceed
771
+ // this size and allocate a larger block.
772
+ //
773
+ // This API is meant for experimentation only. It will likely be removed in
774
+ // the future.
775
+ void upb_Arena_SetMaxBlockSize(size_t max);
776
+
804
777
  // Shrinks the last alloc from arena.
805
778
  // REQUIRES: (ptr, oldsize) was the last malloc/realloc from this arena.
806
779
  // We could also add a upb_Arena_TryShrinkLast() which is simply a no-op if
@@ -829,6 +802,109 @@ void upb_Arena_SetTraceHandler(void (*initArenaTraceHandler)(const upb_Arena*,
829
802
  #include <stddef.h>
830
803
 
831
804
 
805
+ #ifndef UPB_BASE_DESCRIPTOR_CONSTANTS_H_
806
+ #define UPB_BASE_DESCRIPTOR_CONSTANTS_H_
807
+
808
+ // Must be last.
809
+
810
+ // The types a field can have. Note that this list is not identical to the
811
+ // types defined in descriptor.proto, which gives INT32 and SINT32 separate
812
+ // types (we distinguish the two with the "integer encoding" enum below).
813
+ // This enum is an internal convenience only and has no meaning outside of upb.
814
+ typedef enum {
815
+ kUpb_CType_Bool = 1,
816
+ kUpb_CType_Float = 2,
817
+ kUpb_CType_Int32 = 3,
818
+ kUpb_CType_UInt32 = 4,
819
+ kUpb_CType_Enum = 5, // Enum values are int32. TODO: rename
820
+ kUpb_CType_Message = 6,
821
+ kUpb_CType_Double = 7,
822
+ kUpb_CType_Int64 = 8,
823
+ kUpb_CType_UInt64 = 9,
824
+ kUpb_CType_String = 10,
825
+ kUpb_CType_Bytes = 11
826
+ } upb_CType;
827
+
828
+ // The repeated-ness of each field; this matches descriptor.proto.
829
+ typedef enum {
830
+ kUpb_Label_Optional = 1,
831
+ kUpb_Label_Required = 2,
832
+ kUpb_Label_Repeated = 3
833
+ } upb_Label;
834
+
835
+ // Descriptor types, as defined in descriptor.proto.
836
+ typedef enum {
837
+ kUpb_FieldType_Double = 1,
838
+ kUpb_FieldType_Float = 2,
839
+ kUpb_FieldType_Int64 = 3,
840
+ kUpb_FieldType_UInt64 = 4,
841
+ kUpb_FieldType_Int32 = 5,
842
+ kUpb_FieldType_Fixed64 = 6,
843
+ kUpb_FieldType_Fixed32 = 7,
844
+ kUpb_FieldType_Bool = 8,
845
+ kUpb_FieldType_String = 9,
846
+ kUpb_FieldType_Group = 10,
847
+ kUpb_FieldType_Message = 11,
848
+ kUpb_FieldType_Bytes = 12,
849
+ kUpb_FieldType_UInt32 = 13,
850
+ kUpb_FieldType_Enum = 14,
851
+ kUpb_FieldType_SFixed32 = 15,
852
+ kUpb_FieldType_SFixed64 = 16,
853
+ kUpb_FieldType_SInt32 = 17,
854
+ kUpb_FieldType_SInt64 = 18,
855
+ } upb_FieldType;
856
+
857
+ #define kUpb_FieldType_SizeOf 19
858
+
859
+ #ifdef __cplusplus
860
+ extern "C" {
861
+ #endif
862
+
863
+ // Convert from upb_FieldType to upb_CType
864
+ UPB_INLINE upb_CType upb_FieldType_CType(upb_FieldType field_type) {
865
+ static const upb_CType c_type[] = {
866
+ kUpb_CType_Double, // kUpb_FieldType_Double
867
+ kUpb_CType_Float, // kUpb_FieldType_Float
868
+ kUpb_CType_Int64, // kUpb_FieldType_Int64
869
+ kUpb_CType_UInt64, // kUpb_FieldType_UInt64
870
+ kUpb_CType_Int32, // kUpb_FieldType_Int32
871
+ kUpb_CType_UInt64, // kUpb_FieldType_Fixed64
872
+ kUpb_CType_UInt32, // kUpb_FieldType_Fixed32
873
+ kUpb_CType_Bool, // kUpb_FieldType_Bool
874
+ kUpb_CType_String, // kUpb_FieldType_String
875
+ kUpb_CType_Message, // kUpb_FieldType_Group
876
+ kUpb_CType_Message, // kUpb_FieldType_Message
877
+ kUpb_CType_Bytes, // kUpb_FieldType_Bytes
878
+ kUpb_CType_UInt32, // kUpb_FieldType_UInt32
879
+ kUpb_CType_Enum, // kUpb_FieldType_Enum
880
+ kUpb_CType_Int32, // kUpb_FieldType_SFixed32
881
+ kUpb_CType_Int64, // kUpb_FieldType_SFixed64
882
+ kUpb_CType_Int32, // kUpb_FieldType_SInt32
883
+ kUpb_CType_Int64, // kUpb_FieldType_SInt64
884
+ };
885
+
886
+ // -1 here because the enum is one-based but the table is zero-based.
887
+ return c_type[field_type - 1];
888
+ }
889
+
890
+ UPB_INLINE bool upb_FieldType_IsPackable(upb_FieldType field_type) {
891
+ // clang-format off
892
+ const unsigned kUnpackableTypes =
893
+ (1 << kUpb_FieldType_String) |
894
+ (1 << kUpb_FieldType_Bytes) |
895
+ (1 << kUpb_FieldType_Message) |
896
+ (1 << kUpb_FieldType_Group);
897
+ // clang-format on
898
+ return (1 << field_type) & ~kUnpackableTypes;
899
+ }
900
+
901
+ #ifdef __cplusplus
902
+ } /* extern "C" */
903
+ #endif
904
+
905
+
906
+ #endif /* UPB_BASE_DESCRIPTOR_CONSTANTS_H_ */
907
+
832
908
  #ifndef UPB_MESSAGE_INTERNAL_ARRAY_H_
833
909
  #define UPB_MESSAGE_INTERNAL_ARRAY_H_
834
910
 
@@ -972,7 +1048,14 @@ UPB_API_INLINE size_t upb_Array_Size(const struct upb_Array* arr) {
972
1048
  #define UPB_MESSAGE_VALUE_H_
973
1049
 
974
1050
  #include <stdint.h>
1051
+ #include <string.h>
1052
+
1053
+
1054
+ // Must be last.
975
1055
 
1056
+ #ifdef __cplusplus
1057
+ extern "C" {
1058
+ #endif
976
1059
 
977
1060
  typedef union {
978
1061
  bool bool_val;
@@ -994,12 +1077,29 @@ typedef union {
994
1077
  uintptr_t tagged_msg_val; // upb_TaggedMessagePtr
995
1078
  } upb_MessageValue;
996
1079
 
1080
+ UPB_API_INLINE upb_MessageValue upb_MessageValue_Zero(void) {
1081
+ upb_MessageValue zero;
1082
+ memset(&zero, 0, sizeof(zero));
1083
+ return zero;
1084
+ }
1085
+
997
1086
  typedef union {
998
1087
  struct upb_Array* array;
999
1088
  struct upb_Map* map;
1000
1089
  struct upb_Message* msg;
1001
1090
  } upb_MutableMessageValue;
1002
1091
 
1092
+ UPB_API_INLINE upb_MutableMessageValue upb_MutableMessageValue_Zero(void) {
1093
+ upb_MutableMessageValue zero;
1094
+ memset(&zero, 0, sizeof(zero));
1095
+ return zero;
1096
+ }
1097
+
1098
+ #ifdef __cplusplus
1099
+ } /* extern "C" */
1100
+ #endif
1101
+
1102
+
1003
1103
  #endif /* UPB_MESSAGE_VALUE_H_ */
1004
1104
 
1005
1105
  #ifndef UPB_MINI_TABLE_FIELD_H_
@@ -1411,6 +1511,7 @@ UPB_API_INLINE bool upb_MiniTableEnum_CheckValue(const upb_MiniTableEnum* e,
1411
1511
  #ifndef UPB_MINI_TABLE_INTERNAL_MESSAGE_H_
1412
1512
  #define UPB_MINI_TABLE_INTERNAL_MESSAGE_H_
1413
1513
 
1514
+ #include <stddef.h>
1414
1515
  #include <stdint.h>
1415
1516
 
1416
1517
 
@@ -1419,6 +1520,11 @@ UPB_API_INLINE bool upb_MiniTableEnum_CheckValue(const upb_MiniTableEnum* e,
1419
1520
 
1420
1521
  // Must be last.
1421
1522
 
1523
+ typedef union {
1524
+ const struct upb_MiniTable* const* UPB_PRIVATE(submsg);
1525
+ const struct upb_MiniTableEnum* UPB_PRIVATE(subenum);
1526
+ } upb_MiniTableSubInternal;
1527
+
1422
1528
  union upb_MiniTableSub {
1423
1529
  const struct upb_MiniTable* UPB_PRIVATE(submsg);
1424
1530
  const struct upb_MiniTableEnum* UPB_PRIVATE(subenum);
@@ -1489,7 +1595,7 @@ typedef enum {
1489
1595
 
1490
1596
  // LINT.IfChange(minitable_struct_definition)
1491
1597
  struct upb_MiniTable {
1492
- const union upb_MiniTableSub* UPB_PRIVATE(subs);
1598
+ const upb_MiniTableSubInternal* UPB_PRIVATE(subs);
1493
1599
  const struct upb_MiniTableField* UPB_ONLYBITS(fields);
1494
1600
 
1495
1601
  // Must be aligned to sizeof(void*). Doesn't include internal members like
@@ -1520,6 +1626,17 @@ struct upb_MiniTable {
1520
1626
  extern "C" {
1521
1627
  #endif
1522
1628
 
1629
+ UPB_INLINE const struct upb_MiniTable* UPB_PRIVATE(
1630
+ _upb_MiniTable_StrongReference)(const struct upb_MiniTable* mt) {
1631
+ #if defined(__GNUC__)
1632
+ __asm__("" : : "r"(mt));
1633
+ #else
1634
+ const struct upb_MiniTable* volatile unused = mt;
1635
+ (void)&unused; // Use address to avoid an extra load of "unused".
1636
+ #endif
1637
+ return mt;
1638
+ }
1639
+
1523
1640
  UPB_INLINE const struct upb_MiniTable* UPB_PRIVATE(_upb_MiniTable_Empty)(void) {
1524
1641
  extern const struct upb_MiniTable UPB_PRIVATE(_kUpb_MiniTable_Empty);
1525
1642
 
@@ -1542,34 +1659,46 @@ UPB_API_INLINE const struct upb_MiniTableField* upb_MiniTable_GetFieldByIndex(
1542
1659
  return &m->UPB_ONLYBITS(fields)[i];
1543
1660
  }
1544
1661
 
1545
- UPB_INLINE const union upb_MiniTableSub* UPB_PRIVATE(
1546
- _upb_MiniTable_GetSubByIndex)(const struct upb_MiniTable* m, uint32_t i) {
1547
- return &m->UPB_PRIVATE(subs)[i];
1662
+ UPB_INLINE const struct upb_MiniTable* UPB_PRIVATE(
1663
+ _upb_MiniTable_GetSubTableByIndex)(const struct upb_MiniTable* m,
1664
+ uint32_t i) {
1665
+ return *m->UPB_PRIVATE(subs)[i].UPB_PRIVATE(submsg);
1548
1666
  }
1549
1667
 
1550
- UPB_API_INLINE const struct upb_MiniTable* upb_MiniTable_GetSubMessageTable(
1668
+ UPB_API_INLINE const struct upb_MiniTable* upb_MiniTable_SubMessage(
1551
1669
  const struct upb_MiniTable* m, const struct upb_MiniTableField* f) {
1552
- UPB_ASSERT(upb_MiniTableField_CType(f) == kUpb_CType_Message);
1553
- const struct upb_MiniTable* ret = upb_MiniTableSub_Message(
1554
- m->UPB_PRIVATE(subs)[f->UPB_PRIVATE(submsg_index)]);
1555
- UPB_ASSUME(ret);
1670
+ if (upb_MiniTableField_CType(f) != kUpb_CType_Message) {
1671
+ return NULL;
1672
+ }
1673
+ return UPB_PRIVATE(_upb_MiniTable_GetSubTableByIndex)(
1674
+ m, f->UPB_PRIVATE(submsg_index));
1675
+ }
1676
+
1677
+ UPB_API_INLINE const struct upb_MiniTable* upb_MiniTable_GetSubMessageTable(
1678
+ const struct upb_MiniTable* m, const struct upb_MiniTableField* f) {
1679
+ UPB_ASSUME(upb_MiniTableField_CType(f) == kUpb_CType_Message);
1680
+ const struct upb_MiniTable* ret = upb_MiniTable_SubMessage(m, f);
1681
+ UPB_ASSUME(ret);
1556
1682
  return UPB_PRIVATE(_upb_MiniTable_IsEmpty)(ret) ? NULL : ret;
1557
1683
  }
1558
1684
 
1559
- UPB_API_INLINE const struct upb_MiniTable* upb_MiniTable_SubMessage(
1685
+ UPB_API_INLINE bool upb_MiniTable_FieldIsLinked(
1560
1686
  const struct upb_MiniTable* m, const struct upb_MiniTableField* f) {
1561
- if (upb_MiniTableField_CType(f) != kUpb_CType_Message) {
1562
- return NULL;
1563
- }
1564
- return upb_MiniTableSub_Message(
1565
- m->UPB_PRIVATE(subs)[f->UPB_PRIVATE(submsg_index)]);
1687
+ return upb_MiniTable_GetSubMessageTable(m, f) != NULL;
1688
+ }
1689
+
1690
+ UPB_API_INLINE const struct upb_MiniTable* upb_MiniTable_MapEntrySubMessage(
1691
+ const struct upb_MiniTable* m, const struct upb_MiniTableField* f) {
1692
+ UPB_ASSERT(upb_MiniTable_FieldIsLinked(m, f)); // Map entries must be linked.
1693
+ UPB_ASSERT(upb_MiniTableField_IsMap(f)); // Function precondition.
1694
+ return upb_MiniTable_SubMessage(m, f);
1566
1695
  }
1567
1696
 
1568
1697
  UPB_API_INLINE const struct upb_MiniTableEnum* upb_MiniTable_GetSubEnumTable(
1569
1698
  const struct upb_MiniTable* m, const struct upb_MiniTableField* f) {
1570
1699
  UPB_ASSERT(upb_MiniTableField_CType(f) == kUpb_CType_Enum);
1571
- return upb_MiniTableSub_Enum(
1572
- m->UPB_PRIVATE(subs)[f->UPB_PRIVATE(submsg_index)]);
1700
+ return m->UPB_PRIVATE(subs)[f->UPB_PRIVATE(submsg_index)].UPB_PRIVATE(
1701
+ subenum);
1573
1702
  }
1574
1703
 
1575
1704
  UPB_API_INLINE const struct upb_MiniTableField* upb_MiniTable_MapKey(
@@ -1588,11 +1717,6 @@ UPB_API_INLINE const struct upb_MiniTableField* upb_MiniTable_MapValue(
1588
1717
  return f;
1589
1718
  }
1590
1719
 
1591
- UPB_API_INLINE bool upb_MiniTable_FieldIsLinked(
1592
- const struct upb_MiniTable* m, const struct upb_MiniTableField* f) {
1593
- return upb_MiniTable_GetSubMessageTable(m, f) != NULL;
1594
- }
1595
-
1596
1720
  // Computes a bitmask in which the |m->required_count| lowest bits are set.
1597
1721
  //
1598
1722
  // Sample output:
@@ -1647,10 +1771,20 @@ UPB_API_INLINE int upb_MiniTable_FieldCount(const upb_MiniTable* m);
1647
1771
  UPB_API_INLINE const upb_MiniTable* upb_MiniTable_GetSubMessageTable(
1648
1772
  const upb_MiniTable* m, const upb_MiniTableField* f);
1649
1773
 
1650
- // Returns the MiniTable for a message field if it is a submessage.
1774
+ // Returns the MiniTable for a message field if it is a submessage, otherwise
1775
+ // returns NULL.
1776
+ //
1777
+ // WARNING: if dynamic tree shaking is in use, the return value may be the
1778
+ // "empty", zero-field placeholder message instead of the real message type.
1779
+ // If the message is later linked, this function will begin returning the real
1780
+ // message type.
1651
1781
  UPB_API_INLINE const upb_MiniTable* upb_MiniTable_SubMessage(
1652
1782
  const upb_MiniTable* m, const upb_MiniTableField* f);
1653
1783
 
1784
+ // Returns the MiniTable for a map field. The given field must refer to a map.
1785
+ UPB_API_INLINE const upb_MiniTable* upb_MiniTable_MapEntrySubMessage(
1786
+ const upb_MiniTable* m, const upb_MiniTableField* f);
1787
+
1654
1788
  // Returns the MiniTableEnum for a message field, NULL if the field is unlinked.
1655
1789
  UPB_API_INLINE const upb_MiniTableEnum* upb_MiniTable_GetSubEnumTable(
1656
1790
  const upb_MiniTable* m, const upb_MiniTableField* f);
@@ -1831,6 +1965,7 @@ UPB_INLINE uint64_t upb_BigEndian64(uint64_t val) {
1831
1965
  #ifndef UPB_MINI_TABLE_INTERNAL_EXTENSION_H_
1832
1966
  #define UPB_MINI_TABLE_INTERNAL_EXTENSION_H_
1833
1967
 
1968
+ #include <stddef.h>
1834
1969
  #include <stdint.h>
1835
1970
 
1836
1971
 
@@ -1860,6 +1995,9 @@ upb_MiniTableExtension_Number(const struct upb_MiniTableExtension* e) {
1860
1995
 
1861
1996
  UPB_API_INLINE const struct upb_MiniTable* upb_MiniTableExtension_GetSubMessage(
1862
1997
  const struct upb_MiniTableExtension* e) {
1998
+ if (upb_MiniTableExtension_CType(e) != kUpb_CType_Message) {
1999
+ return NULL;
2000
+ }
1863
2001
  return upb_MiniTableSub_Message(e->UPB_PRIVATE(sub));
1864
2002
  }
1865
2003
 
@@ -1868,6 +2006,11 @@ UPB_API_INLINE void upb_MiniTableExtension_SetSubMessage(
1868
2006
  e->UPB_PRIVATE(sub).UPB_PRIVATE(submsg) = m;
1869
2007
  }
1870
2008
 
2009
+ UPB_INLINE upb_FieldRep UPB_PRIVATE(_upb_MiniTableExtension_GetRep)(
2010
+ const struct upb_MiniTableExtension* e) {
2011
+ return UPB_PRIVATE(_upb_MiniTableField_GetRep)(&e->UPB_PRIVATE(field));
2012
+ }
2013
+
1871
2014
  #ifdef __cplusplus
1872
2015
  } /* extern "C" */
1873
2016
  #endif
@@ -2456,18 +2599,19 @@ typedef struct upb_Message_Internal {
2456
2599
  } upb_Message_Internal;
2457
2600
 
2458
2601
  #ifdef UPB_TRACING_ENABLED
2459
- void UPB_PRIVATE(upb_Message_SetNewMessageTraceHandler)(
2460
- void (*newMessageTraceHandler)(const upb_MiniTable*, const upb_Arena*));
2461
- void UPB_PRIVATE(upb_Message_LogNewMessage)(const upb_MiniTable* mini_table,
2462
- const upb_Arena* arena);
2463
- #endif
2602
+ UPB_API void upb_Message_LogNewMessage(const upb_MiniTable* m,
2603
+ const upb_Arena* arena);
2604
+ UPB_API void upb_Message_SetNewMessageTraceHandler(
2605
+ void (*handler)(const upb_MiniTable*, const upb_Arena*));
2606
+ #endif // UPB_TRACING_ENABLED
2464
2607
 
2465
2608
  // Inline version upb_Message_New(), for internal use.
2466
2609
  UPB_INLINE struct upb_Message* _upb_Message_New(const upb_MiniTable* m,
2467
2610
  upb_Arena* a) {
2468
2611
  #ifdef UPB_TRACING_ENABLED
2469
- UPB_PRIVATE(upb_Message_LogNewMessage)(m, a);
2470
- #endif
2612
+ upb_Message_LogNewMessage(m, a);
2613
+ #endif // UPB_TRACING_ENABLED
2614
+
2471
2615
  const int size = m->UPB_PRIVATE(size);
2472
2616
  struct upb_Message* msg = (struct upb_Message*)upb_Arena_Malloc(a, size);
2473
2617
  if (UPB_UNLIKELY(!msg)) return NULL;
@@ -2677,6 +2821,23 @@ UPB_INLINE bool UPB_PRIVATE(_upb_Message_ClearOneofCase)(
2677
2821
  return true;
2678
2822
  }
2679
2823
 
2824
+ UPB_API_INLINE uint32_t upb_Message_WhichOneofFieldNumber(
2825
+ const struct upb_Message* message, const upb_MiniTableField* oneof_field) {
2826
+ UPB_ASSUME(upb_MiniTableField_IsInOneof(oneof_field));
2827
+ return UPB_PRIVATE(_upb_Message_GetOneofCase)(message, oneof_field);
2828
+ }
2829
+
2830
+ UPB_API_INLINE const upb_MiniTableField* upb_Message_WhichOneof(
2831
+ const struct upb_Message* msg, const upb_MiniTable* m,
2832
+ const upb_MiniTableField* f) {
2833
+ uint32_t field_number = upb_Message_WhichOneofFieldNumber(msg, f);
2834
+ if (field_number == 0) {
2835
+ // No field in the oneof is set.
2836
+ return NULL;
2837
+ }
2838
+ return upb_MiniTable_FindFieldByNumber(m, field_number);
2839
+ }
2840
+
2680
2841
  // LINT.ThenChange(GoogleInternalName2)
2681
2842
 
2682
2843
  // Returns false if the message is missing any of its required fields.
@@ -2748,7 +2909,7 @@ UPB_INLINE bool UPB_PRIVATE(_upb_MiniTableField_DataEquals)(
2748
2909
  UPB_INLINE void UPB_PRIVATE(_upb_MiniTableField_DataClear)(
2749
2910
  const upb_MiniTableField* f, void* val) {
2750
2911
  const char zero[16] = {0};
2751
- return UPB_PRIVATE(_upb_MiniTableField_DataCopy)(f, val, zero);
2912
+ UPB_PRIVATE(_upb_MiniTableField_DataCopy)(f, val, zero);
2752
2913
  }
2753
2914
 
2754
2915
  UPB_INLINE bool UPB_PRIVATE(_upb_MiniTableField_DataIsZero)(
@@ -2775,7 +2936,6 @@ UPB_INLINE bool UPB_PRIVATE(_upb_MiniTableField_DataIsZero)(
2775
2936
  // const upb_MiniTableField* field,
2776
2937
  // bool value, upb_Arena* a) {
2777
2938
  // UPB_ASSUME(field->UPB_PRIVATE(descriptortype) == kUpb_FieldType_Bool);
2778
- // UPB_ASSUME(upb_MiniTableField_IsScalar(field));
2779
2939
  // UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableField_GetRep)(field) ==
2780
2940
  // kUpb_FieldRep_1Byte);
2781
2941
  // upb_Message_SetField(msg, field, &value, a);
@@ -2836,6 +2996,24 @@ UPB_INLINE void _upb_Message_GetExtensionField(
2836
2996
  }
2837
2997
  }
2838
2998
 
2999
+ // NOTE: The default_val is only used for fields that support presence.
3000
+ // For repeated/map fields, the resulting upb_Array*/upb_Map* can be NULL if a
3001
+ // upb_Array/upb_Map has not been allocated yet. Array/map fields do not have
3002
+ // presence, so this is semantically identical to a pointer to an empty
3003
+ // array/map, and must be treated the same for all semantic purposes.
3004
+ UPB_API_INLINE upb_MessageValue upb_Message_GetField(
3005
+ const struct upb_Message* msg, const upb_MiniTableField* field,
3006
+ upb_MessageValue default_val) {
3007
+ upb_MessageValue ret;
3008
+ if (upb_MiniTableField_IsExtension(field)) {
3009
+ _upb_Message_GetExtensionField(msg, (upb_MiniTableExtension*)field,
3010
+ &default_val, &ret);
3011
+ } else {
3012
+ _upb_Message_GetNonExtensionField(msg, field, &default_val, &ret);
3013
+ }
3014
+ return ret;
3015
+ }
3016
+
2839
3017
  UPB_API_INLINE void upb_Message_SetBaseField(struct upb_Message* msg,
2840
3018
  const upb_MiniTableField* f,
2841
3019
  const void* val) {
@@ -2859,6 +3037,516 @@ UPB_API_INLINE bool upb_Message_SetExtension(struct upb_Message* msg,
2859
3037
  return true;
2860
3038
  }
2861
3039
 
3040
+ // Sets the value of the given field in the given msg. The return value is true
3041
+ // if the operation completed successfully, or false if memory allocation
3042
+ // failed.
3043
+ UPB_INLINE bool UPB_PRIVATE(_upb_Message_SetField)(struct upb_Message* msg,
3044
+ const upb_MiniTableField* f,
3045
+ upb_MessageValue val,
3046
+ upb_Arena* a) {
3047
+ if (upb_MiniTableField_IsExtension(f)) {
3048
+ const upb_MiniTableExtension* ext = (const upb_MiniTableExtension*)f;
3049
+ return upb_Message_SetExtension(msg, ext, &val, a);
3050
+ } else {
3051
+ upb_Message_SetBaseField(msg, f, &val);
3052
+ return true;
3053
+ }
3054
+ }
3055
+
3056
+ UPB_API_INLINE const upb_Array* upb_Message_GetArray(
3057
+ const struct upb_Message* msg, const upb_MiniTableField* f) {
3058
+ UPB_PRIVATE(_upb_MiniTableField_CheckIsArray)(f);
3059
+ upb_Array* ret;
3060
+ const upb_Array* default_val = NULL;
3061
+ _upb_Message_GetNonExtensionField(msg, f, &default_val, &ret);
3062
+ return ret;
3063
+ }
3064
+
3065
+ UPB_API_INLINE bool upb_Message_GetBool(const struct upb_Message* msg,
3066
+ const upb_MiniTableField* f,
3067
+ bool default_val) {
3068
+ UPB_ASSUME(upb_MiniTableField_CType(f) == kUpb_CType_Bool);
3069
+ UPB_ASSUME(upb_MiniTableField_IsScalar(f));
3070
+ UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableField_GetRep)(f) == kUpb_FieldRep_1Byte);
3071
+ upb_MessageValue def;
3072
+ def.bool_val = default_val;
3073
+ return upb_Message_GetField(msg, f, def).bool_val;
3074
+ }
3075
+
3076
+ UPB_API_INLINE double upb_Message_GetDouble(const struct upb_Message* msg,
3077
+ const upb_MiniTableField* f,
3078
+ double default_val) {
3079
+ UPB_ASSUME(upb_MiniTableField_CType(f) == kUpb_CType_Double);
3080
+ UPB_ASSUME(upb_MiniTableField_IsScalar(f));
3081
+ UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableField_GetRep)(f) == kUpb_FieldRep_8Byte);
3082
+
3083
+ upb_MessageValue def;
3084
+ def.double_val = default_val;
3085
+ return upb_Message_GetField(msg, f, def).double_val;
3086
+ }
3087
+
3088
+ UPB_API_INLINE float upb_Message_GetFloat(const struct upb_Message* msg,
3089
+ const upb_MiniTableField* f,
3090
+ float default_val) {
3091
+ UPB_ASSUME(upb_MiniTableField_CType(f) == kUpb_CType_Float);
3092
+ UPB_ASSUME(upb_MiniTableField_IsScalar(f));
3093
+ UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableField_GetRep)(f) == kUpb_FieldRep_4Byte);
3094
+
3095
+ upb_MessageValue def;
3096
+ def.float_val = default_val;
3097
+ return upb_Message_GetField(msg, f, def).float_val;
3098
+ }
3099
+
3100
+ UPB_API_INLINE int32_t upb_Message_GetInt32(const struct upb_Message* msg,
3101
+ const upb_MiniTableField* f,
3102
+ int32_t default_val) {
3103
+ UPB_ASSUME(upb_MiniTableField_CType(f) == kUpb_CType_Int32 ||
3104
+ upb_MiniTableField_CType(f) == kUpb_CType_Enum);
3105
+ UPB_ASSUME(upb_MiniTableField_IsScalar(f));
3106
+ UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableField_GetRep)(f) == kUpb_FieldRep_4Byte);
3107
+
3108
+ upb_MessageValue def;
3109
+ def.int32_val = default_val;
3110
+ return upb_Message_GetField(msg, f, def).int32_val;
3111
+ }
3112
+
3113
+ UPB_API_INLINE int64_t upb_Message_GetInt64(const struct upb_Message* msg,
3114
+ const upb_MiniTableField* f,
3115
+ int64_t default_val) {
3116
+ UPB_ASSUME(upb_MiniTableField_CType(f) == kUpb_CType_Int64);
3117
+ UPB_ASSUME(upb_MiniTableField_IsScalar(f));
3118
+ UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableField_GetRep)(f) == kUpb_FieldRep_8Byte);
3119
+
3120
+ upb_MessageValue def;
3121
+ def.int64_val = default_val;
3122
+ return upb_Message_GetField(msg, f, def).int64_val;
3123
+ }
3124
+
3125
+ UPB_INLINE void UPB_PRIVATE(_upb_Message_AssertMapIsUntagged)(
3126
+ const struct upb_Message* msg, const upb_MiniTableField* field) {
3127
+ UPB_UNUSED(msg);
3128
+ UPB_PRIVATE(_upb_MiniTableField_CheckIsMap)(field);
3129
+ #ifndef NDEBUG
3130
+ uintptr_t default_val = 0;
3131
+ uintptr_t tagged;
3132
+ _upb_Message_GetNonExtensionField(msg, field, &default_val, &tagged);
3133
+ UPB_ASSERT(!upb_TaggedMessagePtr_IsEmpty(tagged));
3134
+ #endif
3135
+ }
3136
+
3137
+ UPB_API_INLINE const struct upb_Map* upb_Message_GetMap(
3138
+ const struct upb_Message* msg, const upb_MiniTableField* f) {
3139
+ UPB_PRIVATE(_upb_MiniTableField_CheckIsMap)(f);
3140
+ UPB_PRIVATE(_upb_Message_AssertMapIsUntagged)(msg, f);
3141
+ struct upb_Map* ret;
3142
+ const struct upb_Map* default_val = NULL;
3143
+ _upb_Message_GetNonExtensionField(msg, f, &default_val, &ret);
3144
+ return ret;
3145
+ }
3146
+
3147
+ UPB_API_INLINE uintptr_t upb_Message_GetTaggedMessagePtr(
3148
+ const struct upb_Message* msg, const upb_MiniTableField* f,
3149
+ struct upb_Message* default_val) {
3150
+ UPB_ASSUME(upb_MiniTableField_CType(f) == kUpb_CType_Message);
3151
+ UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableField_GetRep)(f) ==
3152
+ UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte));
3153
+ UPB_ASSUME(upb_MiniTableField_IsScalar(f));
3154
+ uintptr_t tagged;
3155
+ _upb_Message_GetNonExtensionField(msg, f, &default_val, &tagged);
3156
+ return tagged;
3157
+ }
3158
+
3159
+ // For internal use only; users cannot set tagged messages because only the
3160
+ // parser and the message copier are allowed to directly create an empty
3161
+ // message.
3162
+ UPB_INLINE void UPB_PRIVATE(_upb_Message_SetTaggedMessagePtr)(
3163
+ struct upb_Message* msg, const upb_MiniTableField* f,
3164
+ uintptr_t sub_message) {
3165
+ UPB_ASSUME(upb_MiniTableField_CType(f) == kUpb_CType_Message);
3166
+ UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableField_GetRep)(f) ==
3167
+ UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte));
3168
+ UPB_ASSUME(upb_MiniTableField_IsScalar(f));
3169
+ upb_Message_SetBaseField(msg, f, &sub_message);
3170
+ }
3171
+
3172
+ UPB_API_INLINE const struct upb_Message* upb_Message_GetMessage(
3173
+ const struct upb_Message* msg, const upb_MiniTableField* f) {
3174
+ uintptr_t tagged = upb_Message_GetTaggedMessagePtr(msg, f, NULL);
3175
+ return upb_TaggedMessagePtr_GetNonEmptyMessage(tagged);
3176
+ }
3177
+
3178
+ UPB_API_INLINE upb_Array* upb_Message_GetMutableArray(
3179
+ struct upb_Message* msg, const upb_MiniTableField* f) {
3180
+ UPB_PRIVATE(_upb_MiniTableField_CheckIsArray)(f);
3181
+ return (upb_Array*)upb_Message_GetArray(msg, f);
3182
+ }
3183
+
3184
+ UPB_API_INLINE struct upb_Map* upb_Message_GetMutableMap(
3185
+ struct upb_Message* msg, const upb_MiniTableField* f) {
3186
+ return (struct upb_Map*)upb_Message_GetMap(msg, f);
3187
+ }
3188
+
3189
+ UPB_API_INLINE struct upb_Message* upb_Message_GetMutableMessage(
3190
+ struct upb_Message* msg, const upb_MiniTableField* f) {
3191
+ return (struct upb_Message*)upb_Message_GetMessage(msg, f);
3192
+ }
3193
+
3194
+ UPB_API_INLINE upb_Array* upb_Message_GetOrCreateMutableArray(
3195
+ struct upb_Message* msg, const upb_MiniTableField* f, upb_Arena* arena) {
3196
+ UPB_ASSERT(arena);
3197
+ UPB_PRIVATE(_upb_MiniTableField_CheckIsArray)(f);
3198
+ upb_Array* array = upb_Message_GetMutableArray(msg, f);
3199
+ if (!array) {
3200
+ array = UPB_PRIVATE(_upb_Array_New)(
3201
+ arena, 4, UPB_PRIVATE(_upb_MiniTableField_ElemSizeLg2)(f));
3202
+ // Check again due to: https://godbolt.org/z/7WfaoKG1r
3203
+ UPB_PRIVATE(_upb_MiniTableField_CheckIsArray)(f);
3204
+ upb_MessageValue val;
3205
+ val.array_val = array;
3206
+ UPB_PRIVATE(_upb_Message_SetField)(msg, f, val, arena);
3207
+ }
3208
+ return array;
3209
+ }
3210
+
3211
+ UPB_INLINE struct upb_Map* _upb_Message_GetOrCreateMutableMap(
3212
+ struct upb_Message* msg, const upb_MiniTableField* field, size_t key_size,
3213
+ size_t val_size, upb_Arena* arena) {
3214
+ UPB_PRIVATE(_upb_MiniTableField_CheckIsMap)(field);
3215
+ UPB_PRIVATE(_upb_Message_AssertMapIsUntagged)(msg, field);
3216
+ struct upb_Map* map = NULL;
3217
+ struct upb_Map* default_map_value = NULL;
3218
+ _upb_Message_GetNonExtensionField(msg, field, &default_map_value, &map);
3219
+ if (!map) {
3220
+ map = _upb_Map_New(arena, key_size, val_size);
3221
+ // Check again due to: https://godbolt.org/z/7WfaoKG1r
3222
+ UPB_PRIVATE(_upb_MiniTableField_CheckIsMap)(field);
3223
+ upb_Message_SetBaseField(msg, field, &map);
3224
+ }
3225
+ return map;
3226
+ }
3227
+
3228
+ UPB_API_INLINE struct upb_Map* upb_Message_GetOrCreateMutableMap(
3229
+ struct upb_Message* msg, const upb_MiniTable* map_entry_mini_table,
3230
+ const upb_MiniTableField* f, upb_Arena* arena) {
3231
+ UPB_ASSUME(upb_MiniTableField_CType(f) == kUpb_CType_Message);
3232
+ const upb_MiniTableField* map_entry_key_field =
3233
+ &map_entry_mini_table->UPB_ONLYBITS(fields)[0];
3234
+ const upb_MiniTableField* map_entry_value_field =
3235
+ &map_entry_mini_table->UPB_ONLYBITS(fields)[1];
3236
+ return _upb_Message_GetOrCreateMutableMap(
3237
+ msg, f, _upb_Map_CTypeSize(upb_MiniTableField_CType(map_entry_key_field)),
3238
+ _upb_Map_CTypeSize(upb_MiniTableField_CType(map_entry_value_field)),
3239
+ arena);
3240
+ }
3241
+
3242
+ UPB_API_INLINE struct upb_Message* upb_Message_GetOrCreateMutableMessage(
3243
+ struct upb_Message* msg, const upb_MiniTable* mini_table,
3244
+ const upb_MiniTableField* f, upb_Arena* arena) {
3245
+ UPB_ASSERT(arena);
3246
+ UPB_ASSUME(upb_MiniTableField_CType(f) == kUpb_CType_Message);
3247
+ UPB_ASSUME(!upb_MiniTableField_IsExtension(f));
3248
+ struct upb_Message* sub_message =
3249
+ *UPB_PTR_AT(msg, f->UPB_ONLYBITS(offset), struct upb_Message*);
3250
+ if (!sub_message) {
3251
+ const upb_MiniTable* sub_mini_table =
3252
+ upb_MiniTable_SubMessage(mini_table, f);
3253
+ UPB_ASSERT(sub_mini_table);
3254
+ sub_message = _upb_Message_New(sub_mini_table, arena);
3255
+ *UPB_PTR_AT(msg, f->UPB_ONLYBITS(offset), struct upb_Message*) =
3256
+ sub_message;
3257
+ UPB_PRIVATE(_upb_Message_SetPresence)(msg, f);
3258
+ }
3259
+ return sub_message;
3260
+ }
3261
+
3262
+ UPB_API_INLINE upb_StringView
3263
+ upb_Message_GetString(const struct upb_Message* msg,
3264
+ const upb_MiniTableField* f, upb_StringView default_val) {
3265
+ UPB_ASSUME(upb_MiniTableField_CType(f) == kUpb_CType_String ||
3266
+ upb_MiniTableField_CType(f) == kUpb_CType_Bytes);
3267
+ UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableField_GetRep)(f) ==
3268
+ kUpb_FieldRep_StringView);
3269
+
3270
+ upb_MessageValue def;
3271
+ def.str_val = default_val;
3272
+ return upb_Message_GetField(msg, f, def).str_val;
3273
+ }
3274
+
3275
+ UPB_API_INLINE uint32_t upb_Message_GetUInt32(const struct upb_Message* msg,
3276
+ const upb_MiniTableField* f,
3277
+ uint32_t default_val) {
3278
+ UPB_ASSUME(upb_MiniTableField_CType(f) == kUpb_CType_UInt32);
3279
+ UPB_ASSUME(upb_MiniTableField_IsScalar(f));
3280
+ UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableField_GetRep)(f) == kUpb_FieldRep_4Byte);
3281
+
3282
+ upb_MessageValue def;
3283
+ def.uint32_val = default_val;
3284
+ return upb_Message_GetField(msg, f, def).uint32_val;
3285
+ }
3286
+
3287
+ UPB_API_INLINE uint64_t upb_Message_GetUInt64(const struct upb_Message* msg,
3288
+ const upb_MiniTableField* f,
3289
+ uint64_t default_val) {
3290
+ UPB_ASSUME(upb_MiniTableField_CType(f) == kUpb_CType_UInt64);
3291
+ UPB_ASSUME(upb_MiniTableField_IsScalar(f));
3292
+ UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableField_GetRep)(f) == kUpb_FieldRep_8Byte);
3293
+
3294
+ upb_MessageValue def;
3295
+ def.uint64_val = default_val;
3296
+ return upb_Message_GetField(msg, f, def).uint64_val;
3297
+ }
3298
+
3299
+ // BaseField Setters ///////////////////////////////////////////////////////////
3300
+
3301
+ UPB_API_INLINE void upb_Message_SetBaseFieldBool(struct upb_Message* msg,
3302
+ const upb_MiniTableField* f,
3303
+ bool value) {
3304
+ UPB_ASSUME(upb_MiniTableField_CType(f) == kUpb_CType_Bool);
3305
+ UPB_ASSUME(upb_MiniTableField_IsScalar(f));
3306
+ UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableField_GetRep)(f) == kUpb_FieldRep_1Byte);
3307
+ upb_Message_SetBaseField(msg, f, &value);
3308
+ }
3309
+
3310
+ UPB_API_INLINE void upb_Message_SetBaseFieldDouble(struct upb_Message* msg,
3311
+ const upb_MiniTableField* f,
3312
+ double value) {
3313
+ UPB_ASSUME(upb_MiniTableField_CType(f) == kUpb_CType_Double);
3314
+ UPB_ASSUME(upb_MiniTableField_IsScalar(f));
3315
+ UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableField_GetRep)(f) == kUpb_FieldRep_8Byte);
3316
+ upb_Message_SetBaseField(msg, f, &value);
3317
+ }
3318
+
3319
+ UPB_API_INLINE void upb_Message_SetBaseFieldFloat(struct upb_Message* msg,
3320
+ const upb_MiniTableField* f,
3321
+ float value) {
3322
+ UPB_ASSUME(upb_MiniTableField_CType(f) == kUpb_CType_Float);
3323
+ UPB_ASSUME(upb_MiniTableField_IsScalar(f));
3324
+ UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableField_GetRep)(f) == kUpb_FieldRep_4Byte);
3325
+ upb_Message_SetBaseField(msg, f, &value);
3326
+ }
3327
+
3328
+ UPB_API_INLINE void upb_Message_SetBaseFieldInt32(struct upb_Message* msg,
3329
+ const upb_MiniTableField* f,
3330
+ int32_t value) {
3331
+ UPB_ASSUME(upb_MiniTableField_CType(f) == kUpb_CType_Int32 ||
3332
+ upb_MiniTableField_CType(f) == kUpb_CType_Enum);
3333
+ UPB_ASSUME(upb_MiniTableField_IsScalar(f));
3334
+ UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableField_GetRep)(f) == kUpb_FieldRep_4Byte);
3335
+ upb_Message_SetBaseField(msg, f, &value);
3336
+ }
3337
+
3338
+ UPB_API_INLINE void upb_Message_SetBaseFieldInt64(struct upb_Message* msg,
3339
+ const upb_MiniTableField* f,
3340
+ int64_t value) {
3341
+ UPB_ASSUME(upb_MiniTableField_CType(f) == kUpb_CType_Int64);
3342
+ UPB_ASSUME(upb_MiniTableField_IsScalar(f));
3343
+ UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableField_GetRep)(f) == kUpb_FieldRep_8Byte);
3344
+ upb_Message_SetBaseField(msg, f, &value);
3345
+ }
3346
+
3347
+ UPB_API_INLINE void upb_Message_SetBaseFieldString(struct upb_Message* msg,
3348
+ const upb_MiniTableField* f,
3349
+ upb_StringView value) {
3350
+ UPB_ASSUME(upb_MiniTableField_CType(f) == kUpb_CType_String ||
3351
+ upb_MiniTableField_CType(f) == kUpb_CType_Bytes);
3352
+ UPB_ASSUME(upb_MiniTableField_IsScalar(f));
3353
+ UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableField_GetRep)(f) ==
3354
+ kUpb_FieldRep_StringView);
3355
+ upb_Message_SetBaseField(msg, f, &value);
3356
+ }
3357
+
3358
+ UPB_API_INLINE void upb_Message_SetBaseFieldUInt32(struct upb_Message* msg,
3359
+ const upb_MiniTableField* f,
3360
+ uint32_t value) {
3361
+ UPB_ASSUME(upb_MiniTableField_CType(f) == kUpb_CType_UInt32);
3362
+ UPB_ASSUME(upb_MiniTableField_IsScalar(f));
3363
+ UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableField_GetRep)(f) == kUpb_FieldRep_4Byte);
3364
+ upb_Message_SetBaseField(msg, f, &value);
3365
+ }
3366
+
3367
+ UPB_API_INLINE void upb_Message_SetBaseFieldUInt64(struct upb_Message* msg,
3368
+ const upb_MiniTableField* f,
3369
+ uint64_t value) {
3370
+ UPB_ASSUME(upb_MiniTableField_CType(f) == kUpb_CType_UInt64);
3371
+ UPB_ASSUME(upb_MiniTableField_IsScalar(f));
3372
+ UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableField_GetRep)(f) == kUpb_FieldRep_8Byte);
3373
+ upb_Message_SetBaseField(msg, f, &value);
3374
+ }
3375
+
3376
+ UPB_API_INLINE void upb_Message_SetClosedEnum(struct upb_Message* msg,
3377
+ const upb_MiniTable* m,
3378
+ const upb_MiniTableField* f,
3379
+ int32_t value) {
3380
+ UPB_ASSERT(upb_MiniTableField_IsClosedEnum(f));
3381
+ UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableField_GetRep)(f) == kUpb_FieldRep_4Byte);
3382
+ UPB_ASSERT(
3383
+ upb_MiniTableEnum_CheckValue(upb_MiniTable_GetSubEnumTable(m, f), value));
3384
+ upb_Message_SetBaseField(msg, f, &value);
3385
+ }
3386
+
3387
+ // Extension Setters ///////////////////////////////////////////////////////////
3388
+
3389
+ UPB_API_INLINE bool upb_Message_SetExtensionBool(
3390
+ struct upb_Message* msg, const upb_MiniTableExtension* e, bool value,
3391
+ upb_Arena* a) {
3392
+ UPB_ASSUME(upb_MiniTableExtension_CType(e) == kUpb_CType_Bool);
3393
+ UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableExtension_GetRep)(e) ==
3394
+ kUpb_FieldRep_1Byte);
3395
+ return upb_Message_SetExtension(msg, e, &value, a);
3396
+ }
3397
+
3398
+ UPB_API_INLINE bool upb_Message_SetExtensionDouble(
3399
+ struct upb_Message* msg, const upb_MiniTableExtension* e, double value,
3400
+ upb_Arena* a) {
3401
+ UPB_ASSUME(upb_MiniTableExtension_CType(e) == kUpb_CType_Double);
3402
+ UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableExtension_GetRep)(e) ==
3403
+ kUpb_FieldRep_8Byte);
3404
+ return upb_Message_SetExtension(msg, e, &value, a);
3405
+ }
3406
+
3407
+ UPB_API_INLINE bool upb_Message_SetExtensionFloat(
3408
+ struct upb_Message* msg, const upb_MiniTableExtension* e, float value,
3409
+ upb_Arena* a) {
3410
+ UPB_ASSUME(upb_MiniTableExtension_CType(e) == kUpb_CType_Float);
3411
+ UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableExtension_GetRep)(e) ==
3412
+ kUpb_FieldRep_4Byte);
3413
+ return upb_Message_SetExtension(msg, e, &value, a);
3414
+ }
3415
+
3416
+ UPB_API_INLINE bool upb_Message_SetExtensionInt32(
3417
+ struct upb_Message* msg, const upb_MiniTableExtension* e, int32_t value,
3418
+ upb_Arena* a) {
3419
+ UPB_ASSUME(upb_MiniTableExtension_CType(e) == kUpb_CType_Int32 ||
3420
+ upb_MiniTableExtension_CType(e) == kUpb_CType_Enum);
3421
+ UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableExtension_GetRep)(e) ==
3422
+ kUpb_FieldRep_4Byte);
3423
+ return upb_Message_SetExtension(msg, e, &value, a);
3424
+ }
3425
+
3426
+ UPB_API_INLINE bool upb_Message_SetExtensionInt64(
3427
+ struct upb_Message* msg, const upb_MiniTableExtension* e, int64_t value,
3428
+ upb_Arena* a) {
3429
+ UPB_ASSUME(upb_MiniTableExtension_CType(e) == kUpb_CType_Int64);
3430
+ UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableExtension_GetRep)(e) ==
3431
+ kUpb_FieldRep_8Byte);
3432
+ return upb_Message_SetExtension(msg, e, &value, a);
3433
+ }
3434
+
3435
+ UPB_API_INLINE bool upb_Message_SetExtensionString(
3436
+ struct upb_Message* msg, const upb_MiniTableExtension* e,
3437
+ upb_StringView value, upb_Arena* a) {
3438
+ UPB_ASSUME(upb_MiniTableExtension_CType(e) == kUpb_CType_String ||
3439
+ upb_MiniTableExtension_CType(e) == kUpb_CType_Bytes);
3440
+ UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableExtension_GetRep)(e) ==
3441
+ kUpb_FieldRep_StringView);
3442
+ return upb_Message_SetExtension(msg, e, &value, a);
3443
+ }
3444
+
3445
+ UPB_API_INLINE bool upb_Message_SetExtensionUInt32(
3446
+ struct upb_Message* msg, const upb_MiniTableExtension* e, uint32_t value,
3447
+ upb_Arena* a) {
3448
+ UPB_ASSUME(upb_MiniTableExtension_CType(e) == kUpb_CType_UInt32);
3449
+ UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableExtension_GetRep)(e) ==
3450
+ kUpb_FieldRep_4Byte);
3451
+ return upb_Message_SetExtension(msg, e, &value, a);
3452
+ }
3453
+
3454
+ UPB_API_INLINE bool upb_Message_SetExtensionUInt64(
3455
+ struct upb_Message* msg, const upb_MiniTableExtension* e, uint64_t value,
3456
+ upb_Arena* a) {
3457
+ UPB_ASSUME(upb_MiniTableExtension_CType(e) == kUpb_CType_UInt64);
3458
+ UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableExtension_GetRep)(e) ==
3459
+ kUpb_FieldRep_8Byte);
3460
+ return upb_Message_SetExtension(msg, e, &value, a);
3461
+ }
3462
+
3463
+ // Universal Setters ///////////////////////////////////////////////////////////
3464
+
3465
+ UPB_API_INLINE bool upb_Message_SetBool(struct upb_Message* msg,
3466
+ const upb_MiniTableField* f, bool value,
3467
+ upb_Arena* a) {
3468
+ return upb_MiniTableField_IsExtension(f)
3469
+ ? upb_Message_SetExtensionBool(
3470
+ msg, (const upb_MiniTableExtension*)f, value, a)
3471
+ : (upb_Message_SetBaseFieldBool(msg, f, value), true);
3472
+ }
3473
+
3474
+ UPB_API_INLINE bool upb_Message_SetDouble(struct upb_Message* msg,
3475
+ const upb_MiniTableField* f,
3476
+ double value, upb_Arena* a) {
3477
+ return upb_MiniTableField_IsExtension(f)
3478
+ ? upb_Message_SetExtensionDouble(
3479
+ msg, (const upb_MiniTableExtension*)f, value, a)
3480
+ : (upb_Message_SetBaseFieldDouble(msg, f, value), true);
3481
+ }
3482
+
3483
+ UPB_API_INLINE bool upb_Message_SetFloat(struct upb_Message* msg,
3484
+ const upb_MiniTableField* f,
3485
+ float value, upb_Arena* a) {
3486
+ return upb_MiniTableField_IsExtension(f)
3487
+ ? upb_Message_SetExtensionFloat(
3488
+ msg, (const upb_MiniTableExtension*)f, value, a)
3489
+ : (upb_Message_SetBaseFieldFloat(msg, f, value), true);
3490
+ }
3491
+
3492
+ UPB_API_INLINE bool upb_Message_SetInt32(struct upb_Message* msg,
3493
+ const upb_MiniTableField* f,
3494
+ int32_t value, upb_Arena* a) {
3495
+ return upb_MiniTableField_IsExtension(f)
3496
+ ? upb_Message_SetExtensionInt32(
3497
+ msg, (const upb_MiniTableExtension*)f, value, a)
3498
+ : (upb_Message_SetBaseFieldInt32(msg, f, value), true);
3499
+ }
3500
+
3501
+ UPB_API_INLINE bool upb_Message_SetInt64(struct upb_Message* msg,
3502
+ const upb_MiniTableField* f,
3503
+ int64_t value, upb_Arena* a) {
3504
+ return upb_MiniTableField_IsExtension(f)
3505
+ ? upb_Message_SetExtensionInt64(
3506
+ msg, (const upb_MiniTableExtension*)f, value, a)
3507
+ : (upb_Message_SetBaseFieldInt64(msg, f, value), true);
3508
+ }
3509
+
3510
+ // Sets the value of a message-typed field. The mini_tables of `msg` and
3511
+ // `value` must have been linked for this to work correctly.
3512
+ UPB_API_INLINE void upb_Message_SetMessage(struct upb_Message* msg,
3513
+ const upb_MiniTableField* f,
3514
+ struct upb_Message* value) {
3515
+ UPB_PRIVATE(_upb_Message_SetTaggedMessagePtr)
3516
+ (msg, f, UPB_PRIVATE(_upb_TaggedMessagePtr_Pack)(value, false));
3517
+ }
3518
+
3519
+ // Sets the value of a `string` or `bytes` field. The bytes of the value are not
3520
+ // copied, so it is the caller's responsibility to ensure that they remain valid
3521
+ // for the lifetime of `msg`. That might be done by copying them into the given
3522
+ // arena, or by fusing that arena with the arena the bytes live in, for example.
3523
+ UPB_API_INLINE bool upb_Message_SetString(struct upb_Message* msg,
3524
+ const upb_MiniTableField* f,
3525
+ upb_StringView value, upb_Arena* a) {
3526
+ return upb_MiniTableField_IsExtension(f)
3527
+ ? upb_Message_SetExtensionString(
3528
+ msg, (const upb_MiniTableExtension*)f, value, a)
3529
+ : (upb_Message_SetBaseFieldString(msg, f, value), true);
3530
+ }
3531
+
3532
+ UPB_API_INLINE bool upb_Message_SetUInt32(struct upb_Message* msg,
3533
+ const upb_MiniTableField* f,
3534
+ uint32_t value, upb_Arena* a) {
3535
+ return upb_MiniTableField_IsExtension(f)
3536
+ ? upb_Message_SetExtensionUInt32(
3537
+ msg, (const upb_MiniTableExtension*)f, value, a)
3538
+ : (upb_Message_SetBaseFieldUInt32(msg, f, value), true);
3539
+ }
3540
+
3541
+ UPB_API_INLINE bool upb_Message_SetUInt64(struct upb_Message* msg,
3542
+ const upb_MiniTableField* f,
3543
+ uint64_t value, upb_Arena* a) {
3544
+ return upb_MiniTableField_IsExtension(f)
3545
+ ? upb_Message_SetExtensionUInt64(
3546
+ msg, (const upb_MiniTableExtension*)f, value, a)
3547
+ : (upb_Message_SetBaseFieldUInt64(msg, f, value), true);
3548
+ }
3549
+
2862
3550
  UPB_API_INLINE void upb_Message_Clear(struct upb_Message* msg,
2863
3551
  const upb_MiniTable* m) {
2864
3552
  UPB_ASSERT(!upb_Message_IsFrozen(msg));
@@ -2900,33 +3588,30 @@ UPB_API_INLINE void upb_Message_ClearExtension(
2900
3588
  }
2901
3589
  }
2902
3590
 
2903
- UPB_INLINE void _upb_Message_AssertMapIsUntagged(
2904
- const struct upb_Message* msg, const upb_MiniTableField* field) {
2905
- UPB_UNUSED(msg);
2906
- UPB_PRIVATE(_upb_MiniTableField_CheckIsMap)(field);
2907
- #ifndef NDEBUG
2908
- uintptr_t default_val = 0;
2909
- uintptr_t tagged;
2910
- _upb_Message_GetNonExtensionField(msg, field, &default_val, &tagged);
2911
- UPB_ASSERT(!upb_TaggedMessagePtr_IsEmpty(tagged));
2912
- #endif
3591
+ UPB_API_INLINE void upb_Message_ClearOneof(struct upb_Message* msg,
3592
+ const upb_MiniTable* m,
3593
+ const upb_MiniTableField* f) {
3594
+ UPB_ASSERT(!upb_Message_IsFrozen(msg));
3595
+ uint32_t field_number = upb_Message_WhichOneofFieldNumber(msg, f);
3596
+ if (field_number == 0) {
3597
+ // No field in the oneof is set.
3598
+ return;
3599
+ }
3600
+
3601
+ const upb_MiniTableField* field =
3602
+ upb_MiniTable_FindFieldByNumber(m, field_number);
3603
+ upb_Message_ClearBaseField(msg, field);
2913
3604
  }
2914
3605
 
2915
- UPB_INLINE struct upb_Map* _upb_Message_GetOrCreateMutableMap(
2916
- struct upb_Message* msg, const upb_MiniTableField* field, size_t key_size,
2917
- size_t val_size, upb_Arena* arena) {
2918
- UPB_PRIVATE(_upb_MiniTableField_CheckIsMap)(field);
2919
- _upb_Message_AssertMapIsUntagged(msg, field);
2920
- struct upb_Map* map = NULL;
2921
- struct upb_Map* default_map_value = NULL;
2922
- _upb_Message_GetNonExtensionField(msg, field, &default_map_value, &map);
2923
- if (!map) {
2924
- map = _upb_Map_New(arena, key_size, val_size);
2925
- // Check again due to: https://godbolt.org/z/7WfaoKG1r
2926
- UPB_PRIVATE(_upb_MiniTableField_CheckIsMap)(field);
2927
- upb_Message_SetBaseField(msg, field, &map);
3606
+ UPB_API_INLINE void* upb_Message_ResizeArrayUninitialized(
3607
+ struct upb_Message* msg, const upb_MiniTableField* f, size_t size,
3608
+ upb_Arena* arena) {
3609
+ UPB_PRIVATE(_upb_MiniTableField_CheckIsArray)(f);
3610
+ upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, f, arena);
3611
+ if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)(arr, size, arena)) {
3612
+ return NULL;
2928
3613
  }
2929
- return map;
3614
+ return upb_Array_MutableDataPtr(arr);
2930
3615
  }
2931
3616
 
2932
3617
  #ifdef __cplusplus
@@ -3049,12 +3734,6 @@ UPB_API_INLINE bool upb_Map_IsFrozen(const upb_Map* map);
3049
3734
 
3050
3735
  #endif /* UPB_MESSAGE_MAP_H_ */
3051
3736
 
3052
- #ifndef UPB_MINI_TABLE_TAGGED_PTR_H_
3053
- #define UPB_MINI_TABLE_TAGGED_PTR_H_
3054
-
3055
- #include <stdint.h>
3056
-
3057
-
3058
3737
  // Public APIs for message operations that do not depend on the schema.
3059
3738
  //
3060
3739
  // MiniTable-based accessors live in accessors.h.
@@ -3092,16 +3771,12 @@ UPB_API void upb_Message_Freeze(upb_Message* msg, const upb_MiniTable* m);
3092
3771
  UPB_API_INLINE bool upb_Message_IsFrozen(const upb_Message* msg);
3093
3772
 
3094
3773
  #ifdef UPB_TRACING_ENABLED
3095
- UPB_INLINE void upb_Message_SetNewMessageTraceHandler(
3096
- void (*newMessageTraceHandler)(const upb_MiniTable* mini_table,
3097
- const upb_Arena* arena)) {
3098
- UPB_PRIVATE(upb_Message_SetNewMessageTraceHandler)(newMessageTraceHandler);
3099
- }
3100
- UPB_INLINE void upb_Message_LogNewMessage(const upb_MiniTable* mini_table,
3101
- const upb_Arena* arena) {
3102
- UPB_PRIVATE(upb_Message_LogNewMessage)(mini_table, arena);
3103
- }
3104
- #endif
3774
+ UPB_API void upb_Message_LogNewMessage(const upb_MiniTable* m,
3775
+ const upb_Arena* arena);
3776
+
3777
+ UPB_API void upb_Message_SetNewMessageTraceHandler(
3778
+ void (*handler)(const upb_MiniTable* m, const upb_Arena* arena));
3779
+ #endif // UPB_TRACING_ENABLED
3105
3780
 
3106
3781
  #ifdef __cplusplus
3107
3782
  } /* extern "C" */
@@ -3110,6 +3785,12 @@ UPB_INLINE void upb_Message_LogNewMessage(const upb_MiniTable* mini_table,
3110
3785
 
3111
3786
  #endif /* UPB_MESSAGE_MESSAGE_H_ */
3112
3787
 
3788
+ #ifndef UPB_MINI_TABLE_TAGGED_PTR_H_
3789
+ #define UPB_MINI_TABLE_TAGGED_PTR_H_
3790
+
3791
+ #include <stdint.h>
3792
+
3793
+
3113
3794
  // Must be last.
3114
3795
 
3115
3796
  // When a upb_Message* is stored in a message, array, or map, it is stored in a
@@ -3142,41 +3823,6 @@ UPB_API_INLINE upb_Message* upb_TaggedMessagePtr_GetNonEmptyMessage(
3142
3823
 
3143
3824
  #endif /* UPB_MINI_TABLE_TAGGED_PTR_H_ */
3144
3825
 
3145
- #ifndef UPB_MINI_TABLE_SUB_H_
3146
- #define UPB_MINI_TABLE_SUB_H_
3147
-
3148
-
3149
- // Must be last.
3150
-
3151
- typedef union upb_MiniTableSub upb_MiniTableSub;
3152
-
3153
- #ifdef __cplusplus
3154
- extern "C" {
3155
- #endif
3156
-
3157
- // Constructors
3158
-
3159
- UPB_API_INLINE upb_MiniTableSub
3160
- upb_MiniTableSub_FromEnum(const upb_MiniTableEnum* subenum);
3161
-
3162
- UPB_API_INLINE upb_MiniTableSub
3163
- upb_MiniTableSub_FromMessage(const upb_MiniTable* submsg);
3164
-
3165
- // Getters
3166
-
3167
- UPB_API_INLINE const upb_MiniTableEnum* upb_MiniTableSub_Enum(
3168
- upb_MiniTableSub sub);
3169
-
3170
- UPB_API_INLINE const upb_MiniTable* upb_MiniTableSub_Message(
3171
- upb_MiniTableSub sub);
3172
-
3173
- #ifdef __cplusplus
3174
- } /* extern "C" */
3175
- #endif
3176
-
3177
-
3178
- #endif /* UPB_MINI_TABLE_SUB_H_ */
3179
-
3180
3826
  // Must be last.
3181
3827
 
3182
3828
  #ifdef __cplusplus
@@ -3197,419 +3843,217 @@ UPB_API_INLINE void upb_Message_ClearBaseField(upb_Message* msg,
3197
3843
  UPB_API_INLINE void upb_Message_ClearExtension(upb_Message* msg,
3198
3844
  const upb_MiniTableExtension* e);
3199
3845
 
3846
+ UPB_API_INLINE void upb_Message_ClearOneof(upb_Message* msg,
3847
+ const upb_MiniTable* m,
3848
+ const upb_MiniTableField* f);
3849
+
3200
3850
  UPB_API_INLINE bool upb_Message_HasBaseField(const upb_Message* msg,
3201
3851
  const upb_MiniTableField* f);
3202
3852
 
3203
3853
  UPB_API_INLINE bool upb_Message_HasExtension(const upb_Message* msg,
3204
3854
  const upb_MiniTableExtension* e);
3205
3855
 
3206
- UPB_API_INLINE void upb_Message_SetBaseField(upb_Message* msg,
3207
- const upb_MiniTableField* f,
3208
- const void* val);
3209
-
3210
- UPB_API_INLINE bool upb_Message_SetExtension(upb_Message* msg,
3211
- const upb_MiniTableExtension* e,
3212
- const void* val, upb_Arena* a);
3213
-
3214
- UPB_API_INLINE uint32_t upb_Message_WhichOneofFieldNumber(
3215
- const upb_Message* message, const upb_MiniTableField* oneof_field) {
3216
- UPB_ASSUME(upb_MiniTableField_IsInOneof(oneof_field));
3217
- return UPB_PRIVATE(_upb_Message_GetOneofCase)(message, oneof_field);
3218
- }
3856
+ UPB_API_INLINE upb_MessageValue
3857
+ upb_Message_GetField(const upb_Message* msg, const upb_MiniTableField* f,
3858
+ upb_MessageValue default_val);
3219
3859
 
3220
- // NOTE: The default_val is only used for fields that support presence.
3221
- // For repeated/map fields, the resulting upb_Array*/upb_Map* can be NULL if a
3222
- // upb_Array/upb_Map has not been allocated yet. Array/map fields do not have
3223
- // presence, so this is semantically identical to a pointer to an empty
3224
- // array/map, and must be treated the same for all semantic purposes.
3225
- UPB_INLINE upb_MessageValue
3226
- upb_Message_GetField(const upb_Message* msg, const upb_MiniTableField* field,
3227
- upb_MessageValue default_val) {
3228
- upb_MessageValue ret;
3229
- if (upb_MiniTableField_IsExtension(field)) {
3230
- _upb_Message_GetExtensionField(msg, (upb_MiniTableExtension*)field,
3231
- &default_val, &ret);
3232
- } else {
3233
- _upb_Message_GetNonExtensionField(msg, field, &default_val, &ret);
3234
- }
3235
- return ret;
3236
- }
3860
+ UPB_API_INLINE upb_TaggedMessagePtr upb_Message_GetTaggedMessagePtr(
3861
+ const upb_Message* msg, const upb_MiniTableField* field,
3862
+ upb_Message* default_val);
3237
3863
 
3238
- // Sets the value of the given field in the given msg. The return value is true
3239
- // if the operation completed successfully, or false if memory allocation
3240
- // failed.
3241
- UPB_INLINE bool UPB_PRIVATE(_upb_Message_SetField)(
3242
- upb_Message* msg, const upb_MiniTableField* field, upb_MessageValue val,
3243
- upb_Arena* a) {
3244
- if (upb_MiniTableField_IsExtension(field)) {
3245
- const upb_MiniTableExtension* ext = (const upb_MiniTableExtension*)field;
3246
- return upb_Message_SetExtension(msg, ext, &val, a);
3247
- } else {
3248
- upb_Message_SetBaseField(msg, field, &val);
3249
- return true;
3250
- }
3251
- }
3864
+ UPB_API_INLINE const upb_Array* upb_Message_GetArray(
3865
+ const upb_Message* msg, const upb_MiniTableField* f);
3252
3866
 
3253
3867
  UPB_API_INLINE bool upb_Message_GetBool(const upb_Message* msg,
3254
- const upb_MiniTableField* field,
3255
- bool default_val) {
3256
- UPB_ASSUME(upb_MiniTableField_CType(field) == kUpb_CType_Bool);
3257
- UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableField_GetRep)(field) ==
3258
- kUpb_FieldRep_1Byte);
3259
- UPB_ASSUME(upb_MiniTableField_IsScalar(field));
3260
- upb_MessageValue def;
3261
- def.bool_val = default_val;
3262
- return upb_Message_GetField(msg, field, def).bool_val;
3263
- }
3868
+ const upb_MiniTableField* f,
3869
+ bool default_val);
3870
+
3871
+ UPB_API_INLINE double upb_Message_GetDouble(const upb_Message* msg,
3872
+ const upb_MiniTableField* field,
3873
+ double default_val);
3264
3874
 
3265
- UPB_API_INLINE bool upb_Message_SetBool(upb_Message* msg,
3266
- const upb_MiniTableField* field,
3267
- bool value, upb_Arena* a) {
3268
- UPB_ASSUME(upb_MiniTableField_CType(field) == kUpb_CType_Bool);
3269
- UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableField_GetRep)(field) ==
3270
- kUpb_FieldRep_1Byte);
3271
- UPB_ASSUME(upb_MiniTableField_IsScalar(field));
3272
- upb_MessageValue val;
3273
- val.bool_val = value;
3274
- return UPB_PRIVATE(_upb_Message_SetField)(msg, field, val, a);
3275
- }
3875
+ UPB_API_INLINE float upb_Message_GetFloat(const upb_Message* msg,
3876
+ const upb_MiniTableField* f,
3877
+ float default_val);
3276
3878
 
3277
3879
  UPB_API_INLINE int32_t upb_Message_GetInt32(const upb_Message* msg,
3278
- const upb_MiniTableField* field,
3279
- int32_t default_val) {
3280
- UPB_ASSUME(upb_MiniTableField_CType(field) == kUpb_CType_Int32 ||
3281
- upb_MiniTableField_CType(field) == kUpb_CType_Enum);
3282
- UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableField_GetRep)(field) ==
3283
- kUpb_FieldRep_4Byte);
3284
- UPB_ASSUME(upb_MiniTableField_IsScalar(field));
3880
+ const upb_MiniTableField* f,
3881
+ int32_t default_val);
3285
3882
 
3286
- upb_MessageValue def;
3287
- def.int32_val = default_val;
3288
- return upb_Message_GetField(msg, field, def).int32_val;
3289
- }
3883
+ UPB_API_INLINE int64_t upb_Message_GetInt64(const upb_Message* msg,
3884
+ const upb_MiniTableField* f,
3885
+ int64_t default_val);
3290
3886
 
3291
- UPB_API_INLINE bool upb_Message_SetInt32(upb_Message* msg,
3292
- const upb_MiniTableField* field,
3293
- int32_t value, upb_Arena* a) {
3294
- UPB_ASSUME(upb_MiniTableField_CType(field) == kUpb_CType_Int32 ||
3295
- upb_MiniTableField_CType(field) == kUpb_CType_Enum);
3296
- UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableField_GetRep)(field) ==
3297
- kUpb_FieldRep_4Byte);
3298
- UPB_ASSUME(upb_MiniTableField_IsScalar(field));
3299
- upb_MessageValue val;
3300
- val.int32_val = value;
3301
- return UPB_PRIVATE(_upb_Message_SetField)(msg, field, val, a);
3302
- }
3887
+ UPB_API_INLINE const upb_Map* upb_Message_GetMap(const upb_Message* msg,
3888
+ const upb_MiniTableField* f);
3303
3889
 
3304
- UPB_API_INLINE uint32_t upb_Message_GetUInt32(const upb_Message* msg,
3305
- const upb_MiniTableField* field,
3306
- uint32_t default_val) {
3307
- UPB_ASSUME(upb_MiniTableField_CType(field) == kUpb_CType_UInt32);
3308
- UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableField_GetRep)(field) ==
3309
- kUpb_FieldRep_4Byte);
3310
- UPB_ASSUME(upb_MiniTableField_IsScalar(field));
3890
+ UPB_API_INLINE const upb_Message* upb_Message_GetMessage(
3891
+ const upb_Message* msg, const upb_MiniTableField* f);
3311
3892
 
3312
- upb_MessageValue def;
3313
- def.uint32_val = default_val;
3314
- return upb_Message_GetField(msg, field, def).uint32_val;
3315
- }
3893
+ UPB_API_INLINE upb_Array* upb_Message_GetMutableArray(
3894
+ upb_Message* msg, const upb_MiniTableField* f);
3316
3895
 
3317
- UPB_API_INLINE bool upb_Message_SetUInt32(upb_Message* msg,
3318
- const upb_MiniTableField* field,
3319
- uint32_t value, upb_Arena* a) {
3320
- UPB_ASSUME(upb_MiniTableField_CType(field) == kUpb_CType_UInt32);
3321
- UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableField_GetRep)(field) ==
3322
- kUpb_FieldRep_4Byte);
3323
- UPB_ASSUME(upb_MiniTableField_IsScalar(field));
3324
- upb_MessageValue val;
3325
- val.uint32_val = value;
3326
- return UPB_PRIVATE(_upb_Message_SetField)(msg, field, val, a);
3327
- }
3896
+ UPB_API_INLINE upb_Map* upb_Message_GetMutableMap(upb_Message* msg,
3897
+ const upb_MiniTableField* f);
3898
+
3899
+ UPB_API_INLINE upb_Message* upb_Message_GetMutableMessage(
3900
+ upb_Message* msg, const upb_MiniTableField* f);
3901
+
3902
+ UPB_API_INLINE upb_Array* upb_Message_GetOrCreateMutableArray(
3903
+ upb_Message* msg, const upb_MiniTableField* f, upb_Arena* arena);
3904
+
3905
+ UPB_API_INLINE upb_Map* upb_Message_GetOrCreateMutableMap(
3906
+ upb_Message* msg, const upb_MiniTable* map_entry_mini_table,
3907
+ const upb_MiniTableField* f, upb_Arena* arena);
3908
+
3909
+ UPB_API_INLINE upb_Message* upb_Message_GetOrCreateMutableMessage(
3910
+ upb_Message* msg, const upb_MiniTable* mini_table,
3911
+ const upb_MiniTableField* f, upb_Arena* arena);
3912
+
3913
+ UPB_API_INLINE upb_StringView
3914
+ upb_Message_GetString(const upb_Message* msg, const upb_MiniTableField* field,
3915
+ upb_StringView default_val);
3916
+
3917
+ UPB_API_INLINE uint32_t upb_Message_GetUInt32(const upb_Message* msg,
3918
+ const upb_MiniTableField* f,
3919
+ uint32_t default_val);
3920
+
3921
+ UPB_API_INLINE uint64_t upb_Message_GetUInt64(const upb_Message* msg,
3922
+ const upb_MiniTableField* f,
3923
+ uint64_t default_val);
3328
3924
 
3329
3925
  UPB_API_INLINE void upb_Message_SetClosedEnum(
3330
3926
  upb_Message* msg, const upb_MiniTable* msg_mini_table,
3331
- const upb_MiniTableField* field, int32_t value) {
3332
- UPB_ASSERT(upb_MiniTableField_IsClosedEnum(field));
3333
- UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableField_GetRep)(field) ==
3334
- kUpb_FieldRep_4Byte);
3335
- UPB_ASSUME(upb_MiniTableField_IsScalar(field));
3336
- UPB_ASSERT(upb_MiniTableEnum_CheckValue(
3337
- upb_MiniTable_GetSubEnumTable(msg_mini_table, field), value));
3338
- upb_Message_SetBaseField(msg, field, &value);
3339
- }
3927
+ const upb_MiniTableField* f, int32_t value);
3340
3928
 
3341
- UPB_API_INLINE int64_t upb_Message_GetInt64(const upb_Message* msg,
3342
- const upb_MiniTableField* field,
3343
- int64_t default_val) {
3344
- UPB_ASSUME(upb_MiniTableField_CType(field) == kUpb_CType_Int64);
3345
- UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableField_GetRep)(field) ==
3346
- kUpb_FieldRep_8Byte);
3347
- UPB_ASSUME(upb_MiniTableField_IsScalar(field));
3929
+ // BaseField Setters ///////////////////////////////////////////////////////////
3348
3930
 
3349
- upb_MessageValue def;
3350
- def.int64_val = default_val;
3351
- return upb_Message_GetField(msg, field, def).int64_val;
3352
- }
3931
+ UPB_API_INLINE void upb_Message_SetBaseField(upb_Message* msg,
3932
+ const upb_MiniTableField* f,
3933
+ const void* val);
3353
3934
 
3354
- UPB_API_INLINE bool upb_Message_SetInt64(upb_Message* msg,
3355
- const upb_MiniTableField* field,
3356
- int64_t value, upb_Arena* a) {
3357
- UPB_ASSUME(upb_MiniTableField_CType(field) == kUpb_CType_Int64);
3358
- UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableField_GetRep)(field) ==
3359
- kUpb_FieldRep_8Byte);
3360
- UPB_ASSUME(upb_MiniTableField_IsScalar(field));
3361
- upb_MessageValue val;
3362
- val.int64_val = value;
3363
- return UPB_PRIVATE(_upb_Message_SetField)(msg, field, val, a);
3364
- }
3935
+ UPB_API_INLINE void upb_Message_SetBaseFieldBool(struct upb_Message* msg,
3936
+ const upb_MiniTableField* f,
3937
+ bool value);
3365
3938
 
3366
- UPB_API_INLINE uint64_t upb_Message_GetUInt64(const upb_Message* msg,
3367
- const upb_MiniTableField* field,
3368
- uint64_t default_val) {
3369
- UPB_ASSUME(upb_MiniTableField_CType(field) == kUpb_CType_UInt64);
3370
- UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableField_GetRep)(field) ==
3371
- kUpb_FieldRep_8Byte);
3372
- UPB_ASSUME(upb_MiniTableField_IsScalar(field));
3939
+ UPB_API_INLINE void upb_Message_SetBaseFieldDouble(struct upb_Message* msg,
3940
+ const upb_MiniTableField* f,
3941
+ double value);
3373
3942
 
3374
- upb_MessageValue def;
3375
- def.uint64_val = default_val;
3376
- return upb_Message_GetField(msg, field, def).uint64_val;
3377
- }
3943
+ UPB_API_INLINE void upb_Message_SetBaseFieldFloat(struct upb_Message* msg,
3944
+ const upb_MiniTableField* f,
3945
+ float value);
3378
3946
 
3379
- UPB_API_INLINE bool upb_Message_SetUInt64(upb_Message* msg,
3380
- const upb_MiniTableField* field,
3381
- uint64_t value, upb_Arena* a) {
3382
- UPB_ASSUME(upb_MiniTableField_CType(field) == kUpb_CType_UInt64);
3383
- UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableField_GetRep)(field) ==
3384
- kUpb_FieldRep_8Byte);
3385
- UPB_ASSUME(upb_MiniTableField_IsScalar(field));
3386
- upb_MessageValue val;
3387
- val.uint64_val = value;
3388
- return UPB_PRIVATE(_upb_Message_SetField)(msg, field, val, a);
3389
- }
3947
+ UPB_API_INLINE void upb_Message_SetBaseFieldInt32(struct upb_Message* msg,
3948
+ const upb_MiniTableField* f,
3949
+ int32_t value);
3390
3950
 
3391
- UPB_API_INLINE float upb_Message_GetFloat(const upb_Message* msg,
3392
- const upb_MiniTableField* field,
3393
- float default_val) {
3394
- UPB_ASSUME(upb_MiniTableField_CType(field) == kUpb_CType_Float);
3395
- UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableField_GetRep)(field) ==
3396
- kUpb_FieldRep_4Byte);
3397
- UPB_ASSUME(upb_MiniTableField_IsScalar(field));
3951
+ UPB_API_INLINE void upb_Message_SetBaseFieldInt64(struct upb_Message* msg,
3952
+ const upb_MiniTableField* f,
3953
+ int64_t value);
3398
3954
 
3399
- upb_MessageValue def;
3400
- def.float_val = default_val;
3401
- return upb_Message_GetField(msg, field, def).float_val;
3402
- }
3955
+ UPB_API_INLINE void upb_Message_SetBaseFieldString(struct upb_Message* msg,
3956
+ const upb_MiniTableField* f,
3957
+ upb_StringView value);
3403
3958
 
3404
- UPB_API_INLINE bool upb_Message_SetFloat(upb_Message* msg,
3405
- const upb_MiniTableField* field,
3406
- float value, upb_Arena* a) {
3407
- UPB_ASSUME(upb_MiniTableField_CType(field) == kUpb_CType_Float);
3408
- UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableField_GetRep)(field) ==
3409
- kUpb_FieldRep_4Byte);
3410
- UPB_ASSUME(upb_MiniTableField_IsScalar(field));
3411
- upb_MessageValue val;
3412
- val.float_val = value;
3413
- return UPB_PRIVATE(_upb_Message_SetField)(msg, field, val, a);
3414
- }
3959
+ UPB_API_INLINE void upb_Message_SetBaseFieldUInt32(struct upb_Message* msg,
3960
+ const upb_MiniTableField* f,
3961
+ uint32_t value);
3415
3962
 
3416
- UPB_API_INLINE double upb_Message_GetDouble(const upb_Message* msg,
3417
- const upb_MiniTableField* field,
3418
- double default_val) {
3419
- UPB_ASSUME(upb_MiniTableField_CType(field) == kUpb_CType_Double);
3420
- UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableField_GetRep)(field) ==
3421
- kUpb_FieldRep_8Byte);
3422
- UPB_ASSUME(upb_MiniTableField_IsScalar(field));
3963
+ UPB_API_INLINE void upb_Message_SetBaseFieldUInt64(struct upb_Message* msg,
3964
+ const upb_MiniTableField* f,
3965
+ uint64_t value);
3423
3966
 
3424
- upb_MessageValue def;
3425
- def.double_val = default_val;
3426
- return upb_Message_GetField(msg, field, def).double_val;
3427
- }
3967
+ // Extension Setters ///////////////////////////////////////////////////////////
3428
3968
 
3429
- UPB_API_INLINE bool upb_Message_SetDouble(upb_Message* msg,
3430
- const upb_MiniTableField* field,
3431
- double value, upb_Arena* a) {
3432
- UPB_ASSUME(upb_MiniTableField_CType(field) == kUpb_CType_Double);
3433
- UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableField_GetRep)(field) ==
3434
- kUpb_FieldRep_8Byte);
3435
- UPB_ASSUME(upb_MiniTableField_IsScalar(field));
3436
- upb_MessageValue val;
3437
- val.double_val = value;
3438
- return UPB_PRIVATE(_upb_Message_SetField)(msg, field, val, a);
3439
- }
3969
+ UPB_API_INLINE bool upb_Message_SetExtension(upb_Message* msg,
3970
+ const upb_MiniTableExtension* e,
3971
+ const void* value, upb_Arena* a);
3440
3972
 
3441
- UPB_API_INLINE upb_StringView
3442
- upb_Message_GetString(const upb_Message* msg, const upb_MiniTableField* field,
3443
- upb_StringView default_val) {
3444
- UPB_ASSUME(upb_MiniTableField_CType(field) == kUpb_CType_String ||
3445
- upb_MiniTableField_CType(field) == kUpb_CType_Bytes);
3446
- UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableField_GetRep)(field) ==
3447
- kUpb_FieldRep_StringView);
3448
- UPB_ASSUME(upb_MiniTableField_IsScalar(field));
3973
+ UPB_API_INLINE bool upb_Message_SetExtensionBool(
3974
+ struct upb_Message* msg, const upb_MiniTableExtension* e, bool value,
3975
+ upb_Arena* a);
3449
3976
 
3450
- upb_MessageValue def;
3451
- def.str_val = default_val;
3452
- return upb_Message_GetField(msg, field, def).str_val;
3453
- }
3977
+ UPB_API_INLINE bool upb_Message_SetExtensionDouble(
3978
+ struct upb_Message* msg, const upb_MiniTableExtension* e, double value,
3979
+ upb_Arena* a);
3454
3980
 
3455
- // Sets the value of a `string` or `bytes` field. The bytes of the value are not
3456
- // copied, so it is the caller's responsibility to ensure that they remain valid
3457
- // for the lifetime of `msg`. That might be done by copying them into the given
3458
- // arena, or by fusing that arena with the arena the bytes live in, for example.
3459
- UPB_API_INLINE bool upb_Message_SetString(upb_Message* msg,
3460
- const upb_MiniTableField* field,
3461
- upb_StringView value, upb_Arena* a) {
3462
- UPB_ASSUME(upb_MiniTableField_CType(field) == kUpb_CType_String ||
3463
- upb_MiniTableField_CType(field) == kUpb_CType_Bytes);
3464
- UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableField_GetRep)(field) ==
3465
- kUpb_FieldRep_StringView);
3466
- UPB_ASSUME(upb_MiniTableField_IsScalar(field));
3467
- upb_MessageValue val;
3468
- val.str_val = value;
3469
- return UPB_PRIVATE(_upb_Message_SetField)(msg, field, val, a);
3470
- }
3981
+ UPB_API_INLINE bool upb_Message_SetExtensionFloat(
3982
+ struct upb_Message* msg, const upb_MiniTableExtension* e, float value,
3983
+ upb_Arena* a);
3471
3984
 
3472
- UPB_API_INLINE upb_TaggedMessagePtr upb_Message_GetTaggedMessagePtr(
3473
- const upb_Message* msg, const upb_MiniTableField* field,
3474
- upb_Message* default_val) {
3475
- UPB_ASSUME(upb_MiniTableField_CType(field) == kUpb_CType_Message);
3476
- UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableField_GetRep)(field) ==
3477
- UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte));
3478
- UPB_ASSUME(upb_MiniTableField_IsScalar(field));
3479
- upb_TaggedMessagePtr tagged;
3480
- _upb_Message_GetNonExtensionField(msg, field, &default_val, &tagged);
3481
- return tagged;
3482
- }
3985
+ UPB_API_INLINE bool upb_Message_SetExtensionInt32(
3986
+ struct upb_Message* msg, const upb_MiniTableExtension* e, int32_t value,
3987
+ upb_Arena* a);
3483
3988
 
3484
- UPB_API_INLINE const upb_Message* upb_Message_GetMessage(
3485
- const upb_Message* msg, const upb_MiniTableField* field) {
3486
- upb_TaggedMessagePtr tagged =
3487
- upb_Message_GetTaggedMessagePtr(msg, field, NULL);
3488
- return upb_TaggedMessagePtr_GetNonEmptyMessage(tagged);
3489
- }
3989
+ UPB_API_INLINE bool upb_Message_SetExtensionInt64(
3990
+ struct upb_Message* msg, const upb_MiniTableExtension* e, int64_t value,
3991
+ upb_Arena* a);
3490
3992
 
3491
- UPB_API_INLINE upb_Message* upb_Message_GetMutableMessage(
3492
- upb_Message* msg, const upb_MiniTableField* field) {
3493
- return (upb_Message*)upb_Message_GetMessage(msg, field);
3494
- }
3993
+ UPB_API_INLINE bool upb_Message_SetExtensionString(
3994
+ struct upb_Message* msg, const upb_MiniTableExtension* e,
3995
+ upb_StringView value, upb_Arena* a);
3495
3996
 
3496
- // For internal use only; users cannot set tagged messages because only the
3497
- // parser and the message copier are allowed to directly create an empty
3498
- // message.
3499
- UPB_API_INLINE void _upb_Message_SetTaggedMessagePtr(
3500
- upb_Message* msg, const upb_MiniTable* mini_table,
3501
- const upb_MiniTableField* field, upb_TaggedMessagePtr sub_message) {
3502
- UPB_ASSUME(upb_MiniTableField_CType(field) == kUpb_CType_Message);
3503
- UPB_ASSUME(UPB_PRIVATE(_upb_MiniTableField_GetRep)(field) ==
3504
- UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte));
3505
- UPB_ASSUME(upb_MiniTableField_IsScalar(field));
3506
- UPB_ASSERT(upb_MiniTableSub_Message(
3507
- mini_table->UPB_PRIVATE(subs)[field->UPB_PRIVATE(submsg_index)]));
3508
- upb_Message_SetBaseField(msg, field, &sub_message);
3509
- }
3997
+ UPB_API_INLINE bool upb_Message_SetExtensionUInt32(
3998
+ struct upb_Message* msg, const upb_MiniTableExtension* e, uint32_t value,
3999
+ upb_Arena* a);
4000
+
4001
+ UPB_API_INLINE bool upb_Message_SetExtensionUInt64(
4002
+ struct upb_Message* msg, const upb_MiniTableExtension* e, uint64_t value,
4003
+ upb_Arena* a);
4004
+
4005
+ // Universal Setters ///////////////////////////////////////////////////////////
4006
+
4007
+ UPB_API_INLINE bool upb_Message_SetBool(upb_Message* msg,
4008
+ const upb_MiniTableField* f, bool value,
4009
+ upb_Arena* a);
4010
+
4011
+ UPB_API_INLINE bool upb_Message_SetDouble(upb_Message* msg,
4012
+ const upb_MiniTableField* f,
4013
+ double value, upb_Arena* a);
4014
+
4015
+ UPB_API_INLINE bool upb_Message_SetFloat(upb_Message* msg,
4016
+ const upb_MiniTableField* f,
4017
+ float value, upb_Arena* a);
4018
+
4019
+ UPB_API_INLINE bool upb_Message_SetInt32(upb_Message* msg,
4020
+ const upb_MiniTableField* f,
4021
+ int32_t value, upb_Arena* a);
4022
+
4023
+ UPB_API_INLINE bool upb_Message_SetInt64(upb_Message* msg,
4024
+ const upb_MiniTableField* f,
4025
+ int64_t value, upb_Arena* a);
3510
4026
 
3511
- // Sets the value of a message-typed field. The `mini_table` and `field`
3512
- // parameters belong to `msg`, not `sub_message`. The mini_tables of `msg` and
3513
- // `sub_message` must have been linked for this to work correctly.
3514
4027
  UPB_API_INLINE void upb_Message_SetMessage(upb_Message* msg,
3515
- const upb_MiniTable* mini_table,
3516
- const upb_MiniTableField* field,
3517
- upb_Message* sub_message) {
3518
- _upb_Message_SetTaggedMessagePtr(
3519
- msg, mini_table, field,
3520
- UPB_PRIVATE(_upb_TaggedMessagePtr_Pack)(sub_message, false));
3521
- }
4028
+ const upb_MiniTableField* f,
4029
+ upb_Message* value);
3522
4030
 
3523
- UPB_API_INLINE upb_Message* upb_Message_GetOrCreateMutableMessage(
3524
- upb_Message* msg, const upb_MiniTable* mini_table,
3525
- const upb_MiniTableField* field, upb_Arena* arena) {
3526
- UPB_ASSERT(arena);
3527
- UPB_ASSUME(upb_MiniTableField_CType(field) == kUpb_CType_Message);
3528
- upb_Message* sub_message =
3529
- *UPB_PTR_AT(msg, field->UPB_ONLYBITS(offset), upb_Message*);
3530
- if (!sub_message) {
3531
- const upb_MiniTable* sub_mini_table = upb_MiniTableSub_Message(
3532
- mini_table->UPB_PRIVATE(subs)[field->UPB_PRIVATE(submsg_index)]);
3533
- UPB_ASSERT(sub_mini_table);
3534
- sub_message = _upb_Message_New(sub_mini_table, arena);
3535
- *UPB_PTR_AT(msg, field->UPB_ONLYBITS(offset), upb_Message*) = sub_message;
3536
- UPB_PRIVATE(_upb_Message_SetPresence)(msg, field);
3537
- }
3538
- return sub_message;
3539
- }
4031
+ UPB_API_INLINE bool upb_Message_SetString(upb_Message* msg,
4032
+ const upb_MiniTableField* f,
4033
+ upb_StringView value, upb_Arena* a);
3540
4034
 
3541
- UPB_API_INLINE const upb_Array* upb_Message_GetArray(
3542
- const upb_Message* msg, const upb_MiniTableField* field) {
3543
- UPB_PRIVATE(_upb_MiniTableField_CheckIsArray)(field);
3544
- upb_Array* ret;
3545
- const upb_Array* default_val = NULL;
3546
- _upb_Message_GetNonExtensionField(msg, field, &default_val, &ret);
3547
- return ret;
3548
- }
4035
+ UPB_API_INLINE bool upb_Message_SetUInt32(upb_Message* msg,
4036
+ const upb_MiniTableField* f,
4037
+ uint32_t value, upb_Arena* a);
3549
4038
 
3550
- UPB_API_INLINE upb_Array* upb_Message_GetMutableArray(
3551
- upb_Message* msg, const upb_MiniTableField* field) {
3552
- UPB_PRIVATE(_upb_MiniTableField_CheckIsArray)(field);
3553
- return (upb_Array*)upb_Message_GetArray(msg, field);
3554
- }
4039
+ UPB_API_INLINE bool upb_Message_SetUInt64(upb_Message* msg,
4040
+ const upb_MiniTableField* f,
4041
+ uint64_t value, upb_Arena* a);
3555
4042
 
3556
- UPB_API_INLINE upb_Array* upb_Message_GetOrCreateMutableArray(
3557
- upb_Message* msg, const upb_MiniTableField* field, upb_Arena* arena) {
3558
- UPB_ASSERT(arena);
3559
- UPB_PRIVATE(_upb_MiniTableField_CheckIsArray)(field);
3560
- upb_Array* array = upb_Message_GetMutableArray(msg, field);
3561
- if (!array) {
3562
- array = UPB_PRIVATE(_upb_Array_New)(
3563
- arena, 4, UPB_PRIVATE(_upb_MiniTableField_ElemSizeLg2)(field));
3564
- // Check again due to: https://godbolt.org/z/7WfaoKG1r
3565
- UPB_PRIVATE(_upb_MiniTableField_CheckIsArray)(field);
3566
- upb_MessageValue val;
3567
- val.array_val = array;
3568
- UPB_PRIVATE(_upb_Message_SetField)(msg, field, val, arena);
3569
- }
3570
- return array;
3571
- }
4043
+ ////////////////////////////////////////////////////////////////////////////////
3572
4044
 
3573
4045
  UPB_API_INLINE void* upb_Message_ResizeArrayUninitialized(
3574
- upb_Message* msg, const upb_MiniTableField* field, size_t size,
3575
- upb_Arena* arena) {
3576
- UPB_PRIVATE(_upb_MiniTableField_CheckIsArray)(field);
3577
- upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, field, arena);
3578
- if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)(arr, size, arena)) {
3579
- return NULL;
3580
- }
3581
- return upb_Array_MutableDataPtr(arr);
3582
- }
3583
-
3584
- UPB_API_INLINE const upb_Map* upb_Message_GetMap(
3585
- const upb_Message* msg, const upb_MiniTableField* field) {
3586
- UPB_PRIVATE(_upb_MiniTableField_CheckIsMap)(field);
3587
- _upb_Message_AssertMapIsUntagged(msg, field);
3588
- upb_Map* ret;
3589
- const upb_Map* default_val = NULL;
3590
- _upb_Message_GetNonExtensionField(msg, field, &default_val, &ret);
3591
- return ret;
3592
- }
4046
+ upb_Message* msg, const upb_MiniTableField* f, size_t size,
4047
+ upb_Arena* arena);
3593
4048
 
3594
- UPB_API_INLINE upb_Map* upb_Message_GetMutableMap(
3595
- upb_Message* msg, const upb_MiniTableField* field) {
3596
- return (upb_Map*)upb_Message_GetMap(msg, field);
3597
- }
4049
+ UPB_API_INLINE uint32_t upb_Message_WhichOneofFieldNumber(
4050
+ const upb_Message* message, const upb_MiniTableField* oneof_field);
3598
4051
 
3599
- UPB_API_INLINE upb_Map* upb_Message_GetOrCreateMutableMap(
3600
- upb_Message* msg, const upb_MiniTable* map_entry_mini_table,
3601
- const upb_MiniTableField* field, upb_Arena* arena) {
3602
- UPB_ASSUME(upb_MiniTableField_CType(field) == kUpb_CType_Message);
3603
- const upb_MiniTableField* map_entry_key_field =
3604
- &map_entry_mini_table->UPB_ONLYBITS(fields)[0];
3605
- const upb_MiniTableField* map_entry_value_field =
3606
- &map_entry_mini_table->UPB_ONLYBITS(fields)[1];
3607
- return _upb_Message_GetOrCreateMutableMap(
3608
- msg, field,
3609
- _upb_Map_CTypeSize(upb_MiniTableField_CType(map_entry_key_field)),
3610
- _upb_Map_CTypeSize(upb_MiniTableField_CType(map_entry_value_field)),
3611
- arena);
3612
- }
4052
+ // For a field `f` which is in a oneof, return the field of that
4053
+ // oneof that is actually set (or NULL if none).
4054
+ UPB_API_INLINE const upb_MiniTableField* upb_Message_WhichOneof(
4055
+ const upb_Message* msg, const upb_MiniTable* m,
4056
+ const upb_MiniTableField* f);
3613
4057
 
3614
4058
  // Updates a map entry given an entry message.
3615
4059
  bool upb_Message_SetMapEntry(upb_Map* map, const upb_MiniTable* mini_table,
@@ -3676,6 +4120,41 @@ UPB_INLINE void _upb_msg_map_set_value(void* msg, const void* val,
3676
4120
  #define UPB_MINI_TABLE_DECODE_H_
3677
4121
 
3678
4122
 
4123
+ #ifndef UPB_MINI_TABLE_SUB_H_
4124
+ #define UPB_MINI_TABLE_SUB_H_
4125
+
4126
+
4127
+ // Must be last.
4128
+
4129
+ typedef union upb_MiniTableSub upb_MiniTableSub;
4130
+
4131
+ #ifdef __cplusplus
4132
+ extern "C" {
4133
+ #endif
4134
+
4135
+ // Constructors
4136
+
4137
+ UPB_API_INLINE upb_MiniTableSub
4138
+ upb_MiniTableSub_FromEnum(const upb_MiniTableEnum* subenum);
4139
+
4140
+ UPB_API_INLINE upb_MiniTableSub
4141
+ upb_MiniTableSub_FromMessage(const upb_MiniTable* submsg);
4142
+
4143
+ // Getters
4144
+
4145
+ UPB_API_INLINE const upb_MiniTableEnum* upb_MiniTableSub_Enum(
4146
+ upb_MiniTableSub sub);
4147
+
4148
+ UPB_API_INLINE const upb_MiniTable* upb_MiniTableSub_Message(
4149
+ upb_MiniTableSub sub);
4150
+
4151
+ #ifdef __cplusplus
4152
+ } /* extern "C" */
4153
+ #endif
4154
+
4155
+
4156
+ #endif /* UPB_MINI_TABLE_SUB_H_ */
4157
+
3679
4158
  // Export the newer headers, for legacy users. New users should include the
3680
4159
  // more specific headers directly.
3681
4160
  // IWYU pragma: begin_exports
@@ -3928,6 +4407,23 @@ bool upb_ExtensionRegistry_AddArray(upb_ExtensionRegistry* r,
3928
4407
  const upb_MiniTableExtension** e,
3929
4408
  size_t count);
3930
4409
 
4410
+ #ifdef UPB_LINKARR_DECLARE
4411
+
4412
+ // Adds all extensions linked into the binary into the registry. The set of
4413
+ // linked extensions is assembled by the linker using linker arrays. This
4414
+ // will likely not work properly if the extensions are split across multiple
4415
+ // shared libraries.
4416
+ //
4417
+ // Returns true if all extensions were added successfully, false on out of
4418
+ // memory or if any extensions were already present.
4419
+ //
4420
+ // This API is currently not available on MSVC (though it *is* available on
4421
+ // Windows using clang-cl).
4422
+ UPB_API bool upb_ExtensionRegistry_AddAllLinkedExtensions(
4423
+ upb_ExtensionRegistry* r);
4424
+
4425
+ #endif // UPB_LINKARR_DECLARE
4426
+
3931
4427
  // Looks up the extension (if any) defined for message type |t| and field
3932
4428
  // number |num|. Returns the extension if found, otherwise NULL.
3933
4429
  UPB_API const upb_MiniTableExtension* upb_ExtensionRegistry_Lookup(
@@ -4165,6 +4661,9 @@ UPB_API upb_DecodeStatus upb_DecodeLengthPrefixed(
4165
4661
  const upb_MiniTable* mt, const upb_ExtensionRegistry* extreg, int options,
4166
4662
  upb_Arena* arena);
4167
4663
 
4664
+ // Utility function for wrapper languages to get an error string from a
4665
+ // upb_DecodeStatus.
4666
+ UPB_API const char* upb_DecodeStatus_String(upb_DecodeStatus status);
4168
4667
  #ifdef __cplusplus
4169
4668
  } /* extern "C" */
4170
4669
  #endif
@@ -4238,6 +4737,9 @@ UPB_API upb_EncodeStatus upb_EncodeLengthPrefixed(const upb_Message* msg,
4238
4737
  const upb_MiniTable* l,
4239
4738
  int options, upb_Arena* arena,
4240
4739
  char** buf, size_t* size);
4740
+ // Utility function for wrapper languages to get an error string from a
4741
+ // upb_EncodeStatus.
4742
+ UPB_API const char* upb_EncodeStatus_String(upb_EncodeStatus status);
4241
4743
 
4242
4744
  #ifdef __cplusplus
4243
4745
  } /* extern "C" */
@@ -4392,7 +4894,8 @@ TAGBYTES(r)
4392
4894
  * google/protobuf/descriptor.proto
4393
4895
  *
4394
4896
  * Do not edit -- your changes will be discarded when the file is
4395
- * regenerated. */
4897
+ * regenerated.
4898
+ * NO CHECKED-IN PROTOBUF GENCODE */
4396
4899
 
4397
4900
  #ifndef GOOGLE_PROTOBUF_DESCRIPTOR_PROTO_UPB_MINITABLE_H_
4398
4901
  #define GOOGLE_PROTOBUF_DESCRIPTOR_PROTO_UPB_MINITABLE_H_
@@ -4405,38 +4908,71 @@ extern "C" {
4405
4908
  #endif
4406
4909
 
4407
4910
  extern const upb_MiniTable google__protobuf__FileDescriptorSet_msg_init;
4911
+ extern const upb_MiniTable* google__protobuf__FileDescriptorSet_msg_init_ptr;
4408
4912
  extern const upb_MiniTable google__protobuf__FileDescriptorProto_msg_init;
4913
+ extern const upb_MiniTable* google__protobuf__FileDescriptorProto_msg_init_ptr;
4409
4914
  extern const upb_MiniTable google__protobuf__DescriptorProto_msg_init;
4915
+ extern const upb_MiniTable* google__protobuf__DescriptorProto_msg_init_ptr;
4410
4916
  extern const upb_MiniTable google__protobuf__DescriptorProto__ExtensionRange_msg_init;
4917
+ extern const upb_MiniTable* google__protobuf__DescriptorProto__ExtensionRange_msg_init_ptr;
4411
4918
  extern const upb_MiniTable google__protobuf__DescriptorProto__ReservedRange_msg_init;
4919
+ extern const upb_MiniTable* google__protobuf__DescriptorProto__ReservedRange_msg_init_ptr;
4412
4920
  extern const upb_MiniTable google__protobuf__ExtensionRangeOptions_msg_init;
4921
+ extern const upb_MiniTable* google__protobuf__ExtensionRangeOptions_msg_init_ptr;
4413
4922
  extern const upb_MiniTable google__protobuf__ExtensionRangeOptions__Declaration_msg_init;
4923
+ extern const upb_MiniTable* google__protobuf__ExtensionRangeOptions__Declaration_msg_init_ptr;
4414
4924
  extern const upb_MiniTable google__protobuf__FieldDescriptorProto_msg_init;
4925
+ extern const upb_MiniTable* google__protobuf__FieldDescriptorProto_msg_init_ptr;
4415
4926
  extern const upb_MiniTable google__protobuf__OneofDescriptorProto_msg_init;
4927
+ extern const upb_MiniTable* google__protobuf__OneofDescriptorProto_msg_init_ptr;
4416
4928
  extern const upb_MiniTable google__protobuf__EnumDescriptorProto_msg_init;
4929
+ extern const upb_MiniTable* google__protobuf__EnumDescriptorProto_msg_init_ptr;
4417
4930
  extern const upb_MiniTable google__protobuf__EnumDescriptorProto__EnumReservedRange_msg_init;
4931
+ extern const upb_MiniTable* google__protobuf__EnumDescriptorProto__EnumReservedRange_msg_init_ptr;
4418
4932
  extern const upb_MiniTable google__protobuf__EnumValueDescriptorProto_msg_init;
4933
+ extern const upb_MiniTable* google__protobuf__EnumValueDescriptorProto_msg_init_ptr;
4419
4934
  extern const upb_MiniTable google__protobuf__ServiceDescriptorProto_msg_init;
4935
+ extern const upb_MiniTable* google__protobuf__ServiceDescriptorProto_msg_init_ptr;
4420
4936
  extern const upb_MiniTable google__protobuf__MethodDescriptorProto_msg_init;
4937
+ extern const upb_MiniTable* google__protobuf__MethodDescriptorProto_msg_init_ptr;
4421
4938
  extern const upb_MiniTable google__protobuf__FileOptions_msg_init;
4939
+ extern const upb_MiniTable* google__protobuf__FileOptions_msg_init_ptr;
4422
4940
  extern const upb_MiniTable google__protobuf__MessageOptions_msg_init;
4941
+ extern const upb_MiniTable* google__protobuf__MessageOptions_msg_init_ptr;
4423
4942
  extern const upb_MiniTable google__protobuf__FieldOptions_msg_init;
4943
+ extern const upb_MiniTable* google__protobuf__FieldOptions_msg_init_ptr;
4424
4944
  extern const upb_MiniTable google__protobuf__FieldOptions__EditionDefault_msg_init;
4945
+ extern const upb_MiniTable* google__protobuf__FieldOptions__EditionDefault_msg_init_ptr;
4425
4946
  extern const upb_MiniTable google__protobuf__FieldOptions__FeatureSupport_msg_init;
4947
+ extern const upb_MiniTable* google__protobuf__FieldOptions__FeatureSupport_msg_init_ptr;
4426
4948
  extern const upb_MiniTable google__protobuf__OneofOptions_msg_init;
4949
+ extern const upb_MiniTable* google__protobuf__OneofOptions_msg_init_ptr;
4427
4950
  extern const upb_MiniTable google__protobuf__EnumOptions_msg_init;
4951
+ extern const upb_MiniTable* google__protobuf__EnumOptions_msg_init_ptr;
4428
4952
  extern const upb_MiniTable google__protobuf__EnumValueOptions_msg_init;
4953
+ extern const upb_MiniTable* google__protobuf__EnumValueOptions_msg_init_ptr;
4429
4954
  extern const upb_MiniTable google__protobuf__ServiceOptions_msg_init;
4955
+ extern const upb_MiniTable* google__protobuf__ServiceOptions_msg_init_ptr;
4430
4956
  extern const upb_MiniTable google__protobuf__MethodOptions_msg_init;
4957
+ extern const upb_MiniTable* google__protobuf__MethodOptions_msg_init_ptr;
4431
4958
  extern const upb_MiniTable google__protobuf__UninterpretedOption_msg_init;
4959
+ extern const upb_MiniTable* google__protobuf__UninterpretedOption_msg_init_ptr;
4432
4960
  extern const upb_MiniTable google__protobuf__UninterpretedOption__NamePart_msg_init;
4961
+ extern const upb_MiniTable* google__protobuf__UninterpretedOption__NamePart_msg_init_ptr;
4433
4962
  extern const upb_MiniTable google__protobuf__FeatureSet_msg_init;
4963
+ extern const upb_MiniTable* google__protobuf__FeatureSet_msg_init_ptr;
4434
4964
  extern const upb_MiniTable google__protobuf__FeatureSetDefaults_msg_init;
4965
+ extern const upb_MiniTable* google__protobuf__FeatureSetDefaults_msg_init_ptr;
4435
4966
  extern const upb_MiniTable google__protobuf__FeatureSetDefaults__FeatureSetEditionDefault_msg_init;
4967
+ extern const upb_MiniTable* google__protobuf__FeatureSetDefaults__FeatureSetEditionDefault_msg_init_ptr;
4436
4968
  extern const upb_MiniTable google__protobuf__SourceCodeInfo_msg_init;
4969
+ extern const upb_MiniTable* google__protobuf__SourceCodeInfo_msg_init_ptr;
4437
4970
  extern const upb_MiniTable google__protobuf__SourceCodeInfo__Location_msg_init;
4971
+ extern const upb_MiniTable* google__protobuf__SourceCodeInfo__Location_msg_init_ptr;
4438
4972
  extern const upb_MiniTable google__protobuf__GeneratedCodeInfo_msg_init;
4973
+ extern const upb_MiniTable* google__protobuf__GeneratedCodeInfo_msg_init_ptr;
4439
4974
  extern const upb_MiniTable google__protobuf__GeneratedCodeInfo__Annotation_msg_init;
4975
+ extern const upb_MiniTable* google__protobuf__GeneratedCodeInfo__Annotation_msg_init_ptr;
4440
4976
 
4441
4977
  extern const upb_MiniTableEnum google_protobuf_Edition_enum_init;
4442
4978
  extern const upb_MiniTableEnum google_protobuf_ExtensionRangeOptions_VerificationState_enum_init;
@@ -4896,7 +5432,8 @@ UPB_FORCEINLINE bool upb_EpsCopyInputStream_TryParseDelimitedFast(
4896
5432
  * google/protobuf/descriptor.proto
4897
5433
  *
4898
5434
  * Do not edit -- your changes will be discarded when the file is
4899
- * regenerated. */
5435
+ * regenerated.
5436
+ * NO CHECKED-IN PROTOBUF GENCODE */
4900
5437
 
4901
5438
  #ifndef GOOGLE_PROTOBUF_DESCRIPTOR_PROTO_UPB_H_
4902
5439
  #define GOOGLE_PROTOBUF_DESCRIPTOR_PROTO_UPB_H_
@@ -5120,6 +5657,7 @@ UPB_INLINE void google_protobuf_FileDescriptorSet_clear_file(google_protobuf_Fil
5120
5657
  }
5121
5658
  UPB_INLINE const google_protobuf_FileDescriptorProto* const* google_protobuf_FileDescriptorSet_file(const google_protobuf_FileDescriptorSet* msg, size_t* size) {
5122
5659
  const upb_MiniTableField field = {1, 8, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
5660
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FileDescriptorProto_msg_init);
5123
5661
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
5124
5662
  if (arr) {
5125
5663
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -5131,6 +5669,7 @@ UPB_INLINE const google_protobuf_FileDescriptorProto* const* google_protobuf_Fil
5131
5669
  }
5132
5670
  UPB_INLINE const upb_Array* _google_protobuf_FileDescriptorSet_file_upb_array(const google_protobuf_FileDescriptorSet* msg, size_t* size) {
5133
5671
  const upb_MiniTableField field = {1, 8, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
5672
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FileDescriptorProto_msg_init);
5134
5673
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
5135
5674
  if (size) {
5136
5675
  *size = arr ? arr->UPB_PRIVATE(size) : 0;
@@ -5139,6 +5678,7 @@ UPB_INLINE const upb_Array* _google_protobuf_FileDescriptorSet_file_upb_array(co
5139
5678
  }
5140
5679
  UPB_INLINE upb_Array* _google_protobuf_FileDescriptorSet_file_mutable_upb_array(google_protobuf_FileDescriptorSet* msg, size_t* size, upb_Arena* arena) {
5141
5680
  const upb_MiniTableField field = {1, 8, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
5681
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FileDescriptorProto_msg_init);
5142
5682
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg),
5143
5683
  &field, arena);
5144
5684
  if (size) {
@@ -5149,6 +5689,7 @@ UPB_INLINE upb_Array* _google_protobuf_FileDescriptorSet_file_mutable_upb_array(
5149
5689
 
5150
5690
  UPB_INLINE google_protobuf_FileDescriptorProto** google_protobuf_FileDescriptorSet_mutable_file(google_protobuf_FileDescriptorSet* msg, size_t* size) {
5151
5691
  upb_MiniTableField field = {1, 8, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
5692
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FileDescriptorProto_msg_init);
5152
5693
  upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field);
5153
5694
  if (arr) {
5154
5695
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -5165,6 +5706,7 @@ UPB_INLINE google_protobuf_FileDescriptorProto** google_protobuf_FileDescriptorS
5165
5706
  }
5166
5707
  UPB_INLINE struct google_protobuf_FileDescriptorProto* google_protobuf_FileDescriptorSet_add_file(google_protobuf_FileDescriptorSet* msg, upb_Arena* arena) {
5167
5708
  upb_MiniTableField field = {1, 8, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
5709
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FileDescriptorProto_msg_init);
5168
5710
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(
5169
5711
  UPB_UPCAST(msg), &field, arena);
5170
5712
  if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)(
@@ -5284,6 +5826,7 @@ UPB_INLINE void google_protobuf_FileDescriptorProto_clear_message_type(google_pr
5284
5826
  }
5285
5827
  UPB_INLINE const google_protobuf_DescriptorProto* const* google_protobuf_FileDescriptorProto_message_type(const google_protobuf_FileDescriptorProto* msg, size_t* size) {
5286
5828
  const upb_MiniTableField field = {4, UPB_SIZE(16, 56), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
5829
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__DescriptorProto_msg_init);
5287
5830
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
5288
5831
  if (arr) {
5289
5832
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -5295,6 +5838,7 @@ UPB_INLINE const google_protobuf_DescriptorProto* const* google_protobuf_FileDes
5295
5838
  }
5296
5839
  UPB_INLINE const upb_Array* _google_protobuf_FileDescriptorProto_message_type_upb_array(const google_protobuf_FileDescriptorProto* msg, size_t* size) {
5297
5840
  const upb_MiniTableField field = {4, UPB_SIZE(16, 56), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
5841
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__DescriptorProto_msg_init);
5298
5842
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
5299
5843
  if (size) {
5300
5844
  *size = arr ? arr->UPB_PRIVATE(size) : 0;
@@ -5303,6 +5847,7 @@ UPB_INLINE const upb_Array* _google_protobuf_FileDescriptorProto_message_type_up
5303
5847
  }
5304
5848
  UPB_INLINE upb_Array* _google_protobuf_FileDescriptorProto_message_type_mutable_upb_array(google_protobuf_FileDescriptorProto* msg, size_t* size, upb_Arena* arena) {
5305
5849
  const upb_MiniTableField field = {4, UPB_SIZE(16, 56), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
5850
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__DescriptorProto_msg_init);
5306
5851
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg),
5307
5852
  &field, arena);
5308
5853
  if (size) {
@@ -5316,6 +5861,7 @@ UPB_INLINE void google_protobuf_FileDescriptorProto_clear_enum_type(google_proto
5316
5861
  }
5317
5862
  UPB_INLINE const google_protobuf_EnumDescriptorProto* const* google_protobuf_FileDescriptorProto_enum_type(const google_protobuf_FileDescriptorProto* msg, size_t* size) {
5318
5863
  const upb_MiniTableField field = {5, UPB_SIZE(20, 64), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
5864
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__EnumDescriptorProto_msg_init);
5319
5865
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
5320
5866
  if (arr) {
5321
5867
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -5327,6 +5873,7 @@ UPB_INLINE const google_protobuf_EnumDescriptorProto* const* google_protobuf_Fil
5327
5873
  }
5328
5874
  UPB_INLINE const upb_Array* _google_protobuf_FileDescriptorProto_enum_type_upb_array(const google_protobuf_FileDescriptorProto* msg, size_t* size) {
5329
5875
  const upb_MiniTableField field = {5, UPB_SIZE(20, 64), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
5876
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__EnumDescriptorProto_msg_init);
5330
5877
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
5331
5878
  if (size) {
5332
5879
  *size = arr ? arr->UPB_PRIVATE(size) : 0;
@@ -5335,6 +5882,7 @@ UPB_INLINE const upb_Array* _google_protobuf_FileDescriptorProto_enum_type_upb_a
5335
5882
  }
5336
5883
  UPB_INLINE upb_Array* _google_protobuf_FileDescriptorProto_enum_type_mutable_upb_array(google_protobuf_FileDescriptorProto* msg, size_t* size, upb_Arena* arena) {
5337
5884
  const upb_MiniTableField field = {5, UPB_SIZE(20, 64), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
5885
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__EnumDescriptorProto_msg_init);
5338
5886
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg),
5339
5887
  &field, arena);
5340
5888
  if (size) {
@@ -5348,6 +5896,7 @@ UPB_INLINE void google_protobuf_FileDescriptorProto_clear_service(google_protobu
5348
5896
  }
5349
5897
  UPB_INLINE const google_protobuf_ServiceDescriptorProto* const* google_protobuf_FileDescriptorProto_service(const google_protobuf_FileDescriptorProto* msg, size_t* size) {
5350
5898
  const upb_MiniTableField field = {6, UPB_SIZE(24, 72), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
5899
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__ServiceDescriptorProto_msg_init);
5351
5900
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
5352
5901
  if (arr) {
5353
5902
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -5359,6 +5908,7 @@ UPB_INLINE const google_protobuf_ServiceDescriptorProto* const* google_protobuf_
5359
5908
  }
5360
5909
  UPB_INLINE const upb_Array* _google_protobuf_FileDescriptorProto_service_upb_array(const google_protobuf_FileDescriptorProto* msg, size_t* size) {
5361
5910
  const upb_MiniTableField field = {6, UPB_SIZE(24, 72), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
5911
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__ServiceDescriptorProto_msg_init);
5362
5912
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
5363
5913
  if (size) {
5364
5914
  *size = arr ? arr->UPB_PRIVATE(size) : 0;
@@ -5367,6 +5917,7 @@ UPB_INLINE const upb_Array* _google_protobuf_FileDescriptorProto_service_upb_arr
5367
5917
  }
5368
5918
  UPB_INLINE upb_Array* _google_protobuf_FileDescriptorProto_service_mutable_upb_array(google_protobuf_FileDescriptorProto* msg, size_t* size, upb_Arena* arena) {
5369
5919
  const upb_MiniTableField field = {6, UPB_SIZE(24, 72), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
5920
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__ServiceDescriptorProto_msg_init);
5370
5921
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg),
5371
5922
  &field, arena);
5372
5923
  if (size) {
@@ -5380,6 +5931,7 @@ UPB_INLINE void google_protobuf_FileDescriptorProto_clear_extension(google_proto
5380
5931
  }
5381
5932
  UPB_INLINE const google_protobuf_FieldDescriptorProto* const* google_protobuf_FileDescriptorProto_extension(const google_protobuf_FileDescriptorProto* msg, size_t* size) {
5382
5933
  const upb_MiniTableField field = {7, UPB_SIZE(28, 80), 0, 3, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
5934
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FieldDescriptorProto_msg_init);
5383
5935
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
5384
5936
  if (arr) {
5385
5937
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -5391,6 +5943,7 @@ UPB_INLINE const google_protobuf_FieldDescriptorProto* const* google_protobuf_Fi
5391
5943
  }
5392
5944
  UPB_INLINE const upb_Array* _google_protobuf_FileDescriptorProto_extension_upb_array(const google_protobuf_FileDescriptorProto* msg, size_t* size) {
5393
5945
  const upb_MiniTableField field = {7, UPB_SIZE(28, 80), 0, 3, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
5946
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FieldDescriptorProto_msg_init);
5394
5947
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
5395
5948
  if (size) {
5396
5949
  *size = arr ? arr->UPB_PRIVATE(size) : 0;
@@ -5399,6 +5952,7 @@ UPB_INLINE const upb_Array* _google_protobuf_FileDescriptorProto_extension_upb_a
5399
5952
  }
5400
5953
  UPB_INLINE upb_Array* _google_protobuf_FileDescriptorProto_extension_mutable_upb_array(google_protobuf_FileDescriptorProto* msg, size_t* size, upb_Arena* arena) {
5401
5954
  const upb_MiniTableField field = {7, UPB_SIZE(28, 80), 0, 3, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
5955
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FieldDescriptorProto_msg_init);
5402
5956
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg),
5403
5957
  &field, arena);
5404
5958
  if (size) {
@@ -5414,6 +5968,7 @@ UPB_INLINE const google_protobuf_FileOptions* google_protobuf_FileDescriptorProt
5414
5968
  const google_protobuf_FileOptions* default_val = NULL;
5415
5969
  const google_protobuf_FileOptions* ret;
5416
5970
  const upb_MiniTableField field = {8, UPB_SIZE(32, 88), 66, 4, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
5971
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FileOptions_msg_init);
5417
5972
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
5418
5973
  &default_val, &ret);
5419
5974
  return ret;
@@ -5430,6 +5985,7 @@ UPB_INLINE const google_protobuf_SourceCodeInfo* google_protobuf_FileDescriptorP
5430
5985
  const google_protobuf_SourceCodeInfo* default_val = NULL;
5431
5986
  const google_protobuf_SourceCodeInfo* ret;
5432
5987
  const upb_MiniTableField field = {9, UPB_SIZE(36, 96), 67, 5, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
5988
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__SourceCodeInfo_msg_init);
5433
5989
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
5434
5990
  &default_val, &ret);
5435
5991
  return ret;
@@ -5573,6 +6129,7 @@ UPB_INLINE bool google_protobuf_FileDescriptorProto_add_dependency(google_protob
5573
6129
  }
5574
6130
  UPB_INLINE google_protobuf_DescriptorProto** google_protobuf_FileDescriptorProto_mutable_message_type(google_protobuf_FileDescriptorProto* msg, size_t* size) {
5575
6131
  upb_MiniTableField field = {4, UPB_SIZE(16, 56), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6132
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__DescriptorProto_msg_init);
5576
6133
  upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field);
5577
6134
  if (arr) {
5578
6135
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -5589,6 +6146,7 @@ UPB_INLINE google_protobuf_DescriptorProto** google_protobuf_FileDescriptorProto
5589
6146
  }
5590
6147
  UPB_INLINE struct google_protobuf_DescriptorProto* google_protobuf_FileDescriptorProto_add_message_type(google_protobuf_FileDescriptorProto* msg, upb_Arena* arena) {
5591
6148
  upb_MiniTableField field = {4, UPB_SIZE(16, 56), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6149
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__DescriptorProto_msg_init);
5592
6150
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(
5593
6151
  UPB_UPCAST(msg), &field, arena);
5594
6152
  if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)(
@@ -5603,6 +6161,7 @@ UPB_INLINE struct google_protobuf_DescriptorProto* google_protobuf_FileDescripto
5603
6161
  }
5604
6162
  UPB_INLINE google_protobuf_EnumDescriptorProto** google_protobuf_FileDescriptorProto_mutable_enum_type(google_protobuf_FileDescriptorProto* msg, size_t* size) {
5605
6163
  upb_MiniTableField field = {5, UPB_SIZE(20, 64), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6164
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__EnumDescriptorProto_msg_init);
5606
6165
  upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field);
5607
6166
  if (arr) {
5608
6167
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -5619,6 +6178,7 @@ UPB_INLINE google_protobuf_EnumDescriptorProto** google_protobuf_FileDescriptorP
5619
6178
  }
5620
6179
  UPB_INLINE struct google_protobuf_EnumDescriptorProto* google_protobuf_FileDescriptorProto_add_enum_type(google_protobuf_FileDescriptorProto* msg, upb_Arena* arena) {
5621
6180
  upb_MiniTableField field = {5, UPB_SIZE(20, 64), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6181
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__EnumDescriptorProto_msg_init);
5622
6182
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(
5623
6183
  UPB_UPCAST(msg), &field, arena);
5624
6184
  if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)(
@@ -5633,6 +6193,7 @@ UPB_INLINE struct google_protobuf_EnumDescriptorProto* google_protobuf_FileDescr
5633
6193
  }
5634
6194
  UPB_INLINE google_protobuf_ServiceDescriptorProto** google_protobuf_FileDescriptorProto_mutable_service(google_protobuf_FileDescriptorProto* msg, size_t* size) {
5635
6195
  upb_MiniTableField field = {6, UPB_SIZE(24, 72), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6196
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__ServiceDescriptorProto_msg_init);
5636
6197
  upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field);
5637
6198
  if (arr) {
5638
6199
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -5649,6 +6210,7 @@ UPB_INLINE google_protobuf_ServiceDescriptorProto** google_protobuf_FileDescript
5649
6210
  }
5650
6211
  UPB_INLINE struct google_protobuf_ServiceDescriptorProto* google_protobuf_FileDescriptorProto_add_service(google_protobuf_FileDescriptorProto* msg, upb_Arena* arena) {
5651
6212
  upb_MiniTableField field = {6, UPB_SIZE(24, 72), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6213
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__ServiceDescriptorProto_msg_init);
5652
6214
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(
5653
6215
  UPB_UPCAST(msg), &field, arena);
5654
6216
  if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)(
@@ -5663,6 +6225,7 @@ UPB_INLINE struct google_protobuf_ServiceDescriptorProto* google_protobuf_FileDe
5663
6225
  }
5664
6226
  UPB_INLINE google_protobuf_FieldDescriptorProto** google_protobuf_FileDescriptorProto_mutable_extension(google_protobuf_FileDescriptorProto* msg, size_t* size) {
5665
6227
  upb_MiniTableField field = {7, UPB_SIZE(28, 80), 0, 3, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6228
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FieldDescriptorProto_msg_init);
5666
6229
  upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field);
5667
6230
  if (arr) {
5668
6231
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -5679,6 +6242,7 @@ UPB_INLINE google_protobuf_FieldDescriptorProto** google_protobuf_FileDescriptor
5679
6242
  }
5680
6243
  UPB_INLINE struct google_protobuf_FieldDescriptorProto* google_protobuf_FileDescriptorProto_add_extension(google_protobuf_FileDescriptorProto* msg, upb_Arena* arena) {
5681
6244
  upb_MiniTableField field = {7, UPB_SIZE(28, 80), 0, 3, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6245
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FieldDescriptorProto_msg_init);
5682
6246
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(
5683
6247
  UPB_UPCAST(msg), &field, arena);
5684
6248
  if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)(
@@ -5693,6 +6257,7 @@ UPB_INLINE struct google_protobuf_FieldDescriptorProto* google_protobuf_FileDesc
5693
6257
  }
5694
6258
  UPB_INLINE void google_protobuf_FileDescriptorProto_set_options(google_protobuf_FileDescriptorProto *msg, google_protobuf_FileOptions* value) {
5695
6259
  const upb_MiniTableField field = {8, UPB_SIZE(32, 88), 66, 4, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6260
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FileOptions_msg_init);
5696
6261
  upb_Message_SetBaseField((upb_Message *)msg, &field, &value);
5697
6262
  }
5698
6263
  UPB_INLINE struct google_protobuf_FileOptions* google_protobuf_FileDescriptorProto_mutable_options(google_protobuf_FileDescriptorProto* msg, upb_Arena* arena) {
@@ -5705,6 +6270,7 @@ UPB_INLINE struct google_protobuf_FileOptions* google_protobuf_FileDescriptorPro
5705
6270
  }
5706
6271
  UPB_INLINE void google_protobuf_FileDescriptorProto_set_source_code_info(google_protobuf_FileDescriptorProto *msg, google_protobuf_SourceCodeInfo* value) {
5707
6272
  const upb_MiniTableField field = {9, UPB_SIZE(36, 96), 67, 5, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6273
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__SourceCodeInfo_msg_init);
5708
6274
  upb_Message_SetBaseField((upb_Message *)msg, &field, &value);
5709
6275
  }
5710
6276
  UPB_INLINE struct google_protobuf_SourceCodeInfo* google_protobuf_FileDescriptorProto_mutable_source_code_info(google_protobuf_FileDescriptorProto* msg, upb_Arena* arena) {
@@ -5838,6 +6404,7 @@ UPB_INLINE void google_protobuf_DescriptorProto_clear_field(google_protobuf_Desc
5838
6404
  }
5839
6405
  UPB_INLINE const google_protobuf_FieldDescriptorProto* const* google_protobuf_DescriptorProto_field(const google_protobuf_DescriptorProto* msg, size_t* size) {
5840
6406
  const upb_MiniTableField field = {2, UPB_SIZE(12, 32), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6407
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FieldDescriptorProto_msg_init);
5841
6408
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
5842
6409
  if (arr) {
5843
6410
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -5849,6 +6416,7 @@ UPB_INLINE const google_protobuf_FieldDescriptorProto* const* google_protobuf_De
5849
6416
  }
5850
6417
  UPB_INLINE const upb_Array* _google_protobuf_DescriptorProto_field_upb_array(const google_protobuf_DescriptorProto* msg, size_t* size) {
5851
6418
  const upb_MiniTableField field = {2, UPB_SIZE(12, 32), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6419
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FieldDescriptorProto_msg_init);
5852
6420
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
5853
6421
  if (size) {
5854
6422
  *size = arr ? arr->UPB_PRIVATE(size) : 0;
@@ -5857,6 +6425,7 @@ UPB_INLINE const upb_Array* _google_protobuf_DescriptorProto_field_upb_array(con
5857
6425
  }
5858
6426
  UPB_INLINE upb_Array* _google_protobuf_DescriptorProto_field_mutable_upb_array(google_protobuf_DescriptorProto* msg, size_t* size, upb_Arena* arena) {
5859
6427
  const upb_MiniTableField field = {2, UPB_SIZE(12, 32), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6428
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FieldDescriptorProto_msg_init);
5860
6429
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg),
5861
6430
  &field, arena);
5862
6431
  if (size) {
@@ -5870,6 +6439,7 @@ UPB_INLINE void google_protobuf_DescriptorProto_clear_nested_type(google_protobu
5870
6439
  }
5871
6440
  UPB_INLINE const google_protobuf_DescriptorProto* const* google_protobuf_DescriptorProto_nested_type(const google_protobuf_DescriptorProto* msg, size_t* size) {
5872
6441
  const upb_MiniTableField field = {3, UPB_SIZE(16, 40), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6442
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__DescriptorProto_msg_init);
5873
6443
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
5874
6444
  if (arr) {
5875
6445
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -5881,6 +6451,7 @@ UPB_INLINE const google_protobuf_DescriptorProto* const* google_protobuf_Descrip
5881
6451
  }
5882
6452
  UPB_INLINE const upb_Array* _google_protobuf_DescriptorProto_nested_type_upb_array(const google_protobuf_DescriptorProto* msg, size_t* size) {
5883
6453
  const upb_MiniTableField field = {3, UPB_SIZE(16, 40), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6454
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__DescriptorProto_msg_init);
5884
6455
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
5885
6456
  if (size) {
5886
6457
  *size = arr ? arr->UPB_PRIVATE(size) : 0;
@@ -5889,6 +6460,7 @@ UPB_INLINE const upb_Array* _google_protobuf_DescriptorProto_nested_type_upb_arr
5889
6460
  }
5890
6461
  UPB_INLINE upb_Array* _google_protobuf_DescriptorProto_nested_type_mutable_upb_array(google_protobuf_DescriptorProto* msg, size_t* size, upb_Arena* arena) {
5891
6462
  const upb_MiniTableField field = {3, UPB_SIZE(16, 40), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6463
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__DescriptorProto_msg_init);
5892
6464
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg),
5893
6465
  &field, arena);
5894
6466
  if (size) {
@@ -5902,6 +6474,7 @@ UPB_INLINE void google_protobuf_DescriptorProto_clear_enum_type(google_protobuf_
5902
6474
  }
5903
6475
  UPB_INLINE const google_protobuf_EnumDescriptorProto* const* google_protobuf_DescriptorProto_enum_type(const google_protobuf_DescriptorProto* msg, size_t* size) {
5904
6476
  const upb_MiniTableField field = {4, UPB_SIZE(20, 48), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6477
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__EnumDescriptorProto_msg_init);
5905
6478
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
5906
6479
  if (arr) {
5907
6480
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -5913,6 +6486,7 @@ UPB_INLINE const google_protobuf_EnumDescriptorProto* const* google_protobuf_Des
5913
6486
  }
5914
6487
  UPB_INLINE const upb_Array* _google_protobuf_DescriptorProto_enum_type_upb_array(const google_protobuf_DescriptorProto* msg, size_t* size) {
5915
6488
  const upb_MiniTableField field = {4, UPB_SIZE(20, 48), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6489
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__EnumDescriptorProto_msg_init);
5916
6490
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
5917
6491
  if (size) {
5918
6492
  *size = arr ? arr->UPB_PRIVATE(size) : 0;
@@ -5921,6 +6495,7 @@ UPB_INLINE const upb_Array* _google_protobuf_DescriptorProto_enum_type_upb_array
5921
6495
  }
5922
6496
  UPB_INLINE upb_Array* _google_protobuf_DescriptorProto_enum_type_mutable_upb_array(google_protobuf_DescriptorProto* msg, size_t* size, upb_Arena* arena) {
5923
6497
  const upb_MiniTableField field = {4, UPB_SIZE(20, 48), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6498
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__EnumDescriptorProto_msg_init);
5924
6499
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg),
5925
6500
  &field, arena);
5926
6501
  if (size) {
@@ -5934,6 +6509,7 @@ UPB_INLINE void google_protobuf_DescriptorProto_clear_extension_range(google_pro
5934
6509
  }
5935
6510
  UPB_INLINE const google_protobuf_DescriptorProto_ExtensionRange* const* google_protobuf_DescriptorProto_extension_range(const google_protobuf_DescriptorProto* msg, size_t* size) {
5936
6511
  const upb_MiniTableField field = {5, UPB_SIZE(24, 56), 0, 3, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6512
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__DescriptorProto__ExtensionRange_msg_init);
5937
6513
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
5938
6514
  if (arr) {
5939
6515
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -5945,6 +6521,7 @@ UPB_INLINE const google_protobuf_DescriptorProto_ExtensionRange* const* google_p
5945
6521
  }
5946
6522
  UPB_INLINE const upb_Array* _google_protobuf_DescriptorProto_extension_range_upb_array(const google_protobuf_DescriptorProto* msg, size_t* size) {
5947
6523
  const upb_MiniTableField field = {5, UPB_SIZE(24, 56), 0, 3, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6524
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__DescriptorProto__ExtensionRange_msg_init);
5948
6525
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
5949
6526
  if (size) {
5950
6527
  *size = arr ? arr->UPB_PRIVATE(size) : 0;
@@ -5953,6 +6530,7 @@ UPB_INLINE const upb_Array* _google_protobuf_DescriptorProto_extension_range_upb
5953
6530
  }
5954
6531
  UPB_INLINE upb_Array* _google_protobuf_DescriptorProto_extension_range_mutable_upb_array(google_protobuf_DescriptorProto* msg, size_t* size, upb_Arena* arena) {
5955
6532
  const upb_MiniTableField field = {5, UPB_SIZE(24, 56), 0, 3, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6533
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__DescriptorProto__ExtensionRange_msg_init);
5956
6534
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg),
5957
6535
  &field, arena);
5958
6536
  if (size) {
@@ -5966,6 +6544,7 @@ UPB_INLINE void google_protobuf_DescriptorProto_clear_extension(google_protobuf_
5966
6544
  }
5967
6545
  UPB_INLINE const google_protobuf_FieldDescriptorProto* const* google_protobuf_DescriptorProto_extension(const google_protobuf_DescriptorProto* msg, size_t* size) {
5968
6546
  const upb_MiniTableField field = {6, UPB_SIZE(28, 64), 0, 4, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6547
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FieldDescriptorProto_msg_init);
5969
6548
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
5970
6549
  if (arr) {
5971
6550
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -5977,6 +6556,7 @@ UPB_INLINE const google_protobuf_FieldDescriptorProto* const* google_protobuf_De
5977
6556
  }
5978
6557
  UPB_INLINE const upb_Array* _google_protobuf_DescriptorProto_extension_upb_array(const google_protobuf_DescriptorProto* msg, size_t* size) {
5979
6558
  const upb_MiniTableField field = {6, UPB_SIZE(28, 64), 0, 4, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6559
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FieldDescriptorProto_msg_init);
5980
6560
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
5981
6561
  if (size) {
5982
6562
  *size = arr ? arr->UPB_PRIVATE(size) : 0;
@@ -5985,6 +6565,7 @@ UPB_INLINE const upb_Array* _google_protobuf_DescriptorProto_extension_upb_array
5985
6565
  }
5986
6566
  UPB_INLINE upb_Array* _google_protobuf_DescriptorProto_extension_mutable_upb_array(google_protobuf_DescriptorProto* msg, size_t* size, upb_Arena* arena) {
5987
6567
  const upb_MiniTableField field = {6, UPB_SIZE(28, 64), 0, 4, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6568
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FieldDescriptorProto_msg_init);
5988
6569
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg),
5989
6570
  &field, arena);
5990
6571
  if (size) {
@@ -6000,6 +6581,7 @@ UPB_INLINE const google_protobuf_MessageOptions* google_protobuf_DescriptorProto
6000
6581
  const google_protobuf_MessageOptions* default_val = NULL;
6001
6582
  const google_protobuf_MessageOptions* ret;
6002
6583
  const upb_MiniTableField field = {7, UPB_SIZE(32, 72), 65, 5, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6584
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__MessageOptions_msg_init);
6003
6585
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
6004
6586
  &default_val, &ret);
6005
6587
  return ret;
@@ -6014,6 +6596,7 @@ UPB_INLINE void google_protobuf_DescriptorProto_clear_oneof_decl(google_protobuf
6014
6596
  }
6015
6597
  UPB_INLINE const google_protobuf_OneofDescriptorProto* const* google_protobuf_DescriptorProto_oneof_decl(const google_protobuf_DescriptorProto* msg, size_t* size) {
6016
6598
  const upb_MiniTableField field = {8, UPB_SIZE(36, 80), 0, 6, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6599
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__OneofDescriptorProto_msg_init);
6017
6600
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
6018
6601
  if (arr) {
6019
6602
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -6025,6 +6608,7 @@ UPB_INLINE const google_protobuf_OneofDescriptorProto* const* google_protobuf_De
6025
6608
  }
6026
6609
  UPB_INLINE const upb_Array* _google_protobuf_DescriptorProto_oneof_decl_upb_array(const google_protobuf_DescriptorProto* msg, size_t* size) {
6027
6610
  const upb_MiniTableField field = {8, UPB_SIZE(36, 80), 0, 6, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6611
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__OneofDescriptorProto_msg_init);
6028
6612
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
6029
6613
  if (size) {
6030
6614
  *size = arr ? arr->UPB_PRIVATE(size) : 0;
@@ -6033,6 +6617,7 @@ UPB_INLINE const upb_Array* _google_protobuf_DescriptorProto_oneof_decl_upb_arra
6033
6617
  }
6034
6618
  UPB_INLINE upb_Array* _google_protobuf_DescriptorProto_oneof_decl_mutable_upb_array(google_protobuf_DescriptorProto* msg, size_t* size, upb_Arena* arena) {
6035
6619
  const upb_MiniTableField field = {8, UPB_SIZE(36, 80), 0, 6, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6620
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__OneofDescriptorProto_msg_init);
6036
6621
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg),
6037
6622
  &field, arena);
6038
6623
  if (size) {
@@ -6046,6 +6631,7 @@ UPB_INLINE void google_protobuf_DescriptorProto_clear_reserved_range(google_prot
6046
6631
  }
6047
6632
  UPB_INLINE const google_protobuf_DescriptorProto_ReservedRange* const* google_protobuf_DescriptorProto_reserved_range(const google_protobuf_DescriptorProto* msg, size_t* size) {
6048
6633
  const upb_MiniTableField field = {9, UPB_SIZE(40, 88), 0, 7, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6634
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__DescriptorProto__ReservedRange_msg_init);
6049
6635
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
6050
6636
  if (arr) {
6051
6637
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -6057,6 +6643,7 @@ UPB_INLINE const google_protobuf_DescriptorProto_ReservedRange* const* google_pr
6057
6643
  }
6058
6644
  UPB_INLINE const upb_Array* _google_protobuf_DescriptorProto_reserved_range_upb_array(const google_protobuf_DescriptorProto* msg, size_t* size) {
6059
6645
  const upb_MiniTableField field = {9, UPB_SIZE(40, 88), 0, 7, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6646
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__DescriptorProto__ReservedRange_msg_init);
6060
6647
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
6061
6648
  if (size) {
6062
6649
  *size = arr ? arr->UPB_PRIVATE(size) : 0;
@@ -6065,6 +6652,7 @@ UPB_INLINE const upb_Array* _google_protobuf_DescriptorProto_reserved_range_upb_
6065
6652
  }
6066
6653
  UPB_INLINE upb_Array* _google_protobuf_DescriptorProto_reserved_range_mutable_upb_array(google_protobuf_DescriptorProto* msg, size_t* size, upb_Arena* arena) {
6067
6654
  const upb_MiniTableField field = {9, UPB_SIZE(40, 88), 0, 7, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6655
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__DescriptorProto__ReservedRange_msg_init);
6068
6656
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg),
6069
6657
  &field, arena);
6070
6658
  if (size) {
@@ -6111,6 +6699,7 @@ UPB_INLINE void google_protobuf_DescriptorProto_set_name(google_protobuf_Descrip
6111
6699
  }
6112
6700
  UPB_INLINE google_protobuf_FieldDescriptorProto** google_protobuf_DescriptorProto_mutable_field(google_protobuf_DescriptorProto* msg, size_t* size) {
6113
6701
  upb_MiniTableField field = {2, UPB_SIZE(12, 32), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6702
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FieldDescriptorProto_msg_init);
6114
6703
  upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field);
6115
6704
  if (arr) {
6116
6705
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -6127,6 +6716,7 @@ UPB_INLINE google_protobuf_FieldDescriptorProto** google_protobuf_DescriptorProt
6127
6716
  }
6128
6717
  UPB_INLINE struct google_protobuf_FieldDescriptorProto* google_protobuf_DescriptorProto_add_field(google_protobuf_DescriptorProto* msg, upb_Arena* arena) {
6129
6718
  upb_MiniTableField field = {2, UPB_SIZE(12, 32), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6719
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FieldDescriptorProto_msg_init);
6130
6720
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(
6131
6721
  UPB_UPCAST(msg), &field, arena);
6132
6722
  if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)(
@@ -6141,6 +6731,7 @@ UPB_INLINE struct google_protobuf_FieldDescriptorProto* google_protobuf_Descript
6141
6731
  }
6142
6732
  UPB_INLINE google_protobuf_DescriptorProto** google_protobuf_DescriptorProto_mutable_nested_type(google_protobuf_DescriptorProto* msg, size_t* size) {
6143
6733
  upb_MiniTableField field = {3, UPB_SIZE(16, 40), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6734
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__DescriptorProto_msg_init);
6144
6735
  upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field);
6145
6736
  if (arr) {
6146
6737
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -6157,6 +6748,7 @@ UPB_INLINE google_protobuf_DescriptorProto** google_protobuf_DescriptorProto_res
6157
6748
  }
6158
6749
  UPB_INLINE struct google_protobuf_DescriptorProto* google_protobuf_DescriptorProto_add_nested_type(google_protobuf_DescriptorProto* msg, upb_Arena* arena) {
6159
6750
  upb_MiniTableField field = {3, UPB_SIZE(16, 40), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6751
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__DescriptorProto_msg_init);
6160
6752
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(
6161
6753
  UPB_UPCAST(msg), &field, arena);
6162
6754
  if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)(
@@ -6171,6 +6763,7 @@ UPB_INLINE struct google_protobuf_DescriptorProto* google_protobuf_DescriptorPro
6171
6763
  }
6172
6764
  UPB_INLINE google_protobuf_EnumDescriptorProto** google_protobuf_DescriptorProto_mutable_enum_type(google_protobuf_DescriptorProto* msg, size_t* size) {
6173
6765
  upb_MiniTableField field = {4, UPB_SIZE(20, 48), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6766
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__EnumDescriptorProto_msg_init);
6174
6767
  upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field);
6175
6768
  if (arr) {
6176
6769
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -6187,6 +6780,7 @@ UPB_INLINE google_protobuf_EnumDescriptorProto** google_protobuf_DescriptorProto
6187
6780
  }
6188
6781
  UPB_INLINE struct google_protobuf_EnumDescriptorProto* google_protobuf_DescriptorProto_add_enum_type(google_protobuf_DescriptorProto* msg, upb_Arena* arena) {
6189
6782
  upb_MiniTableField field = {4, UPB_SIZE(20, 48), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6783
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__EnumDescriptorProto_msg_init);
6190
6784
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(
6191
6785
  UPB_UPCAST(msg), &field, arena);
6192
6786
  if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)(
@@ -6201,6 +6795,7 @@ UPB_INLINE struct google_protobuf_EnumDescriptorProto* google_protobuf_Descripto
6201
6795
  }
6202
6796
  UPB_INLINE google_protobuf_DescriptorProto_ExtensionRange** google_protobuf_DescriptorProto_mutable_extension_range(google_protobuf_DescriptorProto* msg, size_t* size) {
6203
6797
  upb_MiniTableField field = {5, UPB_SIZE(24, 56), 0, 3, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6798
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__DescriptorProto__ExtensionRange_msg_init);
6204
6799
  upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field);
6205
6800
  if (arr) {
6206
6801
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -6217,6 +6812,7 @@ UPB_INLINE google_protobuf_DescriptorProto_ExtensionRange** google_protobuf_Desc
6217
6812
  }
6218
6813
  UPB_INLINE struct google_protobuf_DescriptorProto_ExtensionRange* google_protobuf_DescriptorProto_add_extension_range(google_protobuf_DescriptorProto* msg, upb_Arena* arena) {
6219
6814
  upb_MiniTableField field = {5, UPB_SIZE(24, 56), 0, 3, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6815
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__DescriptorProto__ExtensionRange_msg_init);
6220
6816
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(
6221
6817
  UPB_UPCAST(msg), &field, arena);
6222
6818
  if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)(
@@ -6231,6 +6827,7 @@ UPB_INLINE struct google_protobuf_DescriptorProto_ExtensionRange* google_protobu
6231
6827
  }
6232
6828
  UPB_INLINE google_protobuf_FieldDescriptorProto** google_protobuf_DescriptorProto_mutable_extension(google_protobuf_DescriptorProto* msg, size_t* size) {
6233
6829
  upb_MiniTableField field = {6, UPB_SIZE(28, 64), 0, 4, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6830
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FieldDescriptorProto_msg_init);
6234
6831
  upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field);
6235
6832
  if (arr) {
6236
6833
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -6247,6 +6844,7 @@ UPB_INLINE google_protobuf_FieldDescriptorProto** google_protobuf_DescriptorProt
6247
6844
  }
6248
6845
  UPB_INLINE struct google_protobuf_FieldDescriptorProto* google_protobuf_DescriptorProto_add_extension(google_protobuf_DescriptorProto* msg, upb_Arena* arena) {
6249
6846
  upb_MiniTableField field = {6, UPB_SIZE(28, 64), 0, 4, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6847
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FieldDescriptorProto_msg_init);
6250
6848
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(
6251
6849
  UPB_UPCAST(msg), &field, arena);
6252
6850
  if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)(
@@ -6261,6 +6859,7 @@ UPB_INLINE struct google_protobuf_FieldDescriptorProto* google_protobuf_Descript
6261
6859
  }
6262
6860
  UPB_INLINE void google_protobuf_DescriptorProto_set_options(google_protobuf_DescriptorProto *msg, google_protobuf_MessageOptions* value) {
6263
6861
  const upb_MiniTableField field = {7, UPB_SIZE(32, 72), 65, 5, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6862
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__MessageOptions_msg_init);
6264
6863
  upb_Message_SetBaseField((upb_Message *)msg, &field, &value);
6265
6864
  }
6266
6865
  UPB_INLINE struct google_protobuf_MessageOptions* google_protobuf_DescriptorProto_mutable_options(google_protobuf_DescriptorProto* msg, upb_Arena* arena) {
@@ -6273,6 +6872,7 @@ UPB_INLINE struct google_protobuf_MessageOptions* google_protobuf_DescriptorProt
6273
6872
  }
6274
6873
  UPB_INLINE google_protobuf_OneofDescriptorProto** google_protobuf_DescriptorProto_mutable_oneof_decl(google_protobuf_DescriptorProto* msg, size_t* size) {
6275
6874
  upb_MiniTableField field = {8, UPB_SIZE(36, 80), 0, 6, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6875
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__OneofDescriptorProto_msg_init);
6276
6876
  upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field);
6277
6877
  if (arr) {
6278
6878
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -6289,6 +6889,7 @@ UPB_INLINE google_protobuf_OneofDescriptorProto** google_protobuf_DescriptorProt
6289
6889
  }
6290
6890
  UPB_INLINE struct google_protobuf_OneofDescriptorProto* google_protobuf_DescriptorProto_add_oneof_decl(google_protobuf_DescriptorProto* msg, upb_Arena* arena) {
6291
6891
  upb_MiniTableField field = {8, UPB_SIZE(36, 80), 0, 6, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6892
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__OneofDescriptorProto_msg_init);
6292
6893
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(
6293
6894
  UPB_UPCAST(msg), &field, arena);
6294
6895
  if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)(
@@ -6303,6 +6904,7 @@ UPB_INLINE struct google_protobuf_OneofDescriptorProto* google_protobuf_Descript
6303
6904
  }
6304
6905
  UPB_INLINE google_protobuf_DescriptorProto_ReservedRange** google_protobuf_DescriptorProto_mutable_reserved_range(google_protobuf_DescriptorProto* msg, size_t* size) {
6305
6906
  upb_MiniTableField field = {9, UPB_SIZE(40, 88), 0, 7, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6907
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__DescriptorProto__ReservedRange_msg_init);
6306
6908
  upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field);
6307
6909
  if (arr) {
6308
6910
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -6319,6 +6921,7 @@ UPB_INLINE google_protobuf_DescriptorProto_ReservedRange** google_protobuf_Descr
6319
6921
  }
6320
6922
  UPB_INLINE struct google_protobuf_DescriptorProto_ReservedRange* google_protobuf_DescriptorProto_add_reserved_range(google_protobuf_DescriptorProto* msg, upb_Arena* arena) {
6321
6923
  upb_MiniTableField field = {9, UPB_SIZE(40, 88), 0, 7, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
6924
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__DescriptorProto__ReservedRange_msg_init);
6322
6925
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(
6323
6926
  UPB_UPCAST(msg), &field, arena);
6324
6927
  if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)(
@@ -6436,6 +7039,7 @@ UPB_INLINE const google_protobuf_ExtensionRangeOptions* google_protobuf_Descript
6436
7039
  const google_protobuf_ExtensionRangeOptions* default_val = NULL;
6437
7040
  const google_protobuf_ExtensionRangeOptions* ret;
6438
7041
  const upb_MiniTableField field = {3, UPB_SIZE(20, 24), 66, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7042
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__ExtensionRangeOptions_msg_init);
6439
7043
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
6440
7044
  &default_val, &ret);
6441
7045
  return ret;
@@ -6455,6 +7059,7 @@ UPB_INLINE void google_protobuf_DescriptorProto_ExtensionRange_set_end(google_pr
6455
7059
  }
6456
7060
  UPB_INLINE void google_protobuf_DescriptorProto_ExtensionRange_set_options(google_protobuf_DescriptorProto_ExtensionRange *msg, google_protobuf_ExtensionRangeOptions* value) {
6457
7061
  const upb_MiniTableField field = {3, UPB_SIZE(20, 24), 66, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7062
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__ExtensionRangeOptions_msg_init);
6458
7063
  upb_Message_SetBaseField((upb_Message *)msg, &field, &value);
6459
7064
  }
6460
7065
  UPB_INLINE struct google_protobuf_ExtensionRangeOptions* google_protobuf_DescriptorProto_ExtensionRange_mutable_options(google_protobuf_DescriptorProto_ExtensionRange* msg, upb_Arena* arena) {
@@ -6586,6 +7191,7 @@ UPB_INLINE void google_protobuf_ExtensionRangeOptions_clear_declaration(google_p
6586
7191
  }
6587
7192
  UPB_INLINE const google_protobuf_ExtensionRangeOptions_Declaration* const* google_protobuf_ExtensionRangeOptions_declaration(const google_protobuf_ExtensionRangeOptions* msg, size_t* size) {
6588
7193
  const upb_MiniTableField field = {2, UPB_SIZE(12, 16), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7194
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__ExtensionRangeOptions__Declaration_msg_init);
6589
7195
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
6590
7196
  if (arr) {
6591
7197
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -6597,6 +7203,7 @@ UPB_INLINE const google_protobuf_ExtensionRangeOptions_Declaration* const* googl
6597
7203
  }
6598
7204
  UPB_INLINE const upb_Array* _google_protobuf_ExtensionRangeOptions_declaration_upb_array(const google_protobuf_ExtensionRangeOptions* msg, size_t* size) {
6599
7205
  const upb_MiniTableField field = {2, UPB_SIZE(12, 16), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7206
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__ExtensionRangeOptions__Declaration_msg_init);
6600
7207
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
6601
7208
  if (size) {
6602
7209
  *size = arr ? arr->UPB_PRIVATE(size) : 0;
@@ -6605,6 +7212,7 @@ UPB_INLINE const upb_Array* _google_protobuf_ExtensionRangeOptions_declaration_u
6605
7212
  }
6606
7213
  UPB_INLINE upb_Array* _google_protobuf_ExtensionRangeOptions_declaration_mutable_upb_array(google_protobuf_ExtensionRangeOptions* msg, size_t* size, upb_Arena* arena) {
6607
7214
  const upb_MiniTableField field = {2, UPB_SIZE(12, 16), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7215
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__ExtensionRangeOptions__Declaration_msg_init);
6608
7216
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg),
6609
7217
  &field, arena);
6610
7218
  if (size) {
@@ -6636,6 +7244,7 @@ UPB_INLINE const google_protobuf_FeatureSet* google_protobuf_ExtensionRangeOptio
6636
7244
  const google_protobuf_FeatureSet* default_val = NULL;
6637
7245
  const google_protobuf_FeatureSet* ret;
6638
7246
  const upb_MiniTableField field = {50, UPB_SIZE(20, 24), 65, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7247
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FeatureSet_msg_init);
6639
7248
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
6640
7249
  &default_val, &ret);
6641
7250
  return ret;
@@ -6650,6 +7259,7 @@ UPB_INLINE void google_protobuf_ExtensionRangeOptions_clear_uninterpreted_option
6650
7259
  }
6651
7260
  UPB_INLINE const google_protobuf_UninterpretedOption* const* google_protobuf_ExtensionRangeOptions_uninterpreted_option(const google_protobuf_ExtensionRangeOptions* msg, size_t* size) {
6652
7261
  const upb_MiniTableField field = {999, UPB_SIZE(24, 32), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7262
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
6653
7263
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
6654
7264
  if (arr) {
6655
7265
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -6661,6 +7271,7 @@ UPB_INLINE const google_protobuf_UninterpretedOption* const* google_protobuf_Ext
6661
7271
  }
6662
7272
  UPB_INLINE const upb_Array* _google_protobuf_ExtensionRangeOptions_uninterpreted_option_upb_array(const google_protobuf_ExtensionRangeOptions* msg, size_t* size) {
6663
7273
  const upb_MiniTableField field = {999, UPB_SIZE(24, 32), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7274
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
6664
7275
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
6665
7276
  if (size) {
6666
7277
  *size = arr ? arr->UPB_PRIVATE(size) : 0;
@@ -6669,6 +7280,7 @@ UPB_INLINE const upb_Array* _google_protobuf_ExtensionRangeOptions_uninterpreted
6669
7280
  }
6670
7281
  UPB_INLINE upb_Array* _google_protobuf_ExtensionRangeOptions_uninterpreted_option_mutable_upb_array(google_protobuf_ExtensionRangeOptions* msg, size_t* size, upb_Arena* arena) {
6671
7282
  const upb_MiniTableField field = {999, UPB_SIZE(24, 32), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7283
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
6672
7284
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg),
6673
7285
  &field, arena);
6674
7286
  if (size) {
@@ -6679,6 +7291,7 @@ UPB_INLINE upb_Array* _google_protobuf_ExtensionRangeOptions_uninterpreted_optio
6679
7291
 
6680
7292
  UPB_INLINE google_protobuf_ExtensionRangeOptions_Declaration** google_protobuf_ExtensionRangeOptions_mutable_declaration(google_protobuf_ExtensionRangeOptions* msg, size_t* size) {
6681
7293
  upb_MiniTableField field = {2, UPB_SIZE(12, 16), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7294
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__ExtensionRangeOptions__Declaration_msg_init);
6682
7295
  upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field);
6683
7296
  if (arr) {
6684
7297
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -6695,6 +7308,7 @@ UPB_INLINE google_protobuf_ExtensionRangeOptions_Declaration** google_protobuf_E
6695
7308
  }
6696
7309
  UPB_INLINE struct google_protobuf_ExtensionRangeOptions_Declaration* google_protobuf_ExtensionRangeOptions_add_declaration(google_protobuf_ExtensionRangeOptions* msg, upb_Arena* arena) {
6697
7310
  upb_MiniTableField field = {2, UPB_SIZE(12, 16), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7311
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__ExtensionRangeOptions__Declaration_msg_init);
6698
7312
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(
6699
7313
  UPB_UPCAST(msg), &field, arena);
6700
7314
  if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)(
@@ -6713,6 +7327,7 @@ UPB_INLINE void google_protobuf_ExtensionRangeOptions_set_verification(google_pr
6713
7327
  }
6714
7328
  UPB_INLINE void google_protobuf_ExtensionRangeOptions_set_features(google_protobuf_ExtensionRangeOptions *msg, google_protobuf_FeatureSet* value) {
6715
7329
  const upb_MiniTableField field = {50, UPB_SIZE(20, 24), 65, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7330
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FeatureSet_msg_init);
6716
7331
  upb_Message_SetBaseField((upb_Message *)msg, &field, &value);
6717
7332
  }
6718
7333
  UPB_INLINE struct google_protobuf_FeatureSet* google_protobuf_ExtensionRangeOptions_mutable_features(google_protobuf_ExtensionRangeOptions* msg, upb_Arena* arena) {
@@ -6725,6 +7340,7 @@ UPB_INLINE struct google_protobuf_FeatureSet* google_protobuf_ExtensionRangeOpti
6725
7340
  }
6726
7341
  UPB_INLINE google_protobuf_UninterpretedOption** google_protobuf_ExtensionRangeOptions_mutable_uninterpreted_option(google_protobuf_ExtensionRangeOptions* msg, size_t* size) {
6727
7342
  upb_MiniTableField field = {999, UPB_SIZE(24, 32), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7343
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
6728
7344
  upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field);
6729
7345
  if (arr) {
6730
7346
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -6741,6 +7357,7 @@ UPB_INLINE google_protobuf_UninterpretedOption** google_protobuf_ExtensionRangeO
6741
7357
  }
6742
7358
  UPB_INLINE struct google_protobuf_UninterpretedOption* google_protobuf_ExtensionRangeOptions_add_uninterpreted_option(google_protobuf_ExtensionRangeOptions* msg, upb_Arena* arena) {
6743
7359
  upb_MiniTableField field = {999, UPB_SIZE(24, 32), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7360
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
6744
7361
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(
6745
7362
  UPB_UPCAST(msg), &field, arena);
6746
7363
  if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)(
@@ -7048,6 +7665,7 @@ UPB_INLINE const google_protobuf_FieldOptions* google_protobuf_FieldDescriptorPr
7048
7665
  const google_protobuf_FieldOptions* default_val = NULL;
7049
7666
  const google_protobuf_FieldOptions* ret;
7050
7667
  const upb_MiniTableField field = {8, UPB_SIZE(24, 96), 71, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7668
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FieldOptions_msg_init);
7051
7669
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
7052
7670
  &default_val, &ret);
7053
7671
  return ret;
@@ -7135,6 +7753,7 @@ UPB_INLINE void google_protobuf_FieldDescriptorProto_set_default_value(google_pr
7135
7753
  }
7136
7754
  UPB_INLINE void google_protobuf_FieldDescriptorProto_set_options(google_protobuf_FieldDescriptorProto *msg, google_protobuf_FieldOptions* value) {
7137
7755
  const upb_MiniTableField field = {8, UPB_SIZE(24, 96), 71, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7756
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FieldOptions_msg_init);
7138
7757
  upb_Message_SetBaseField((upb_Message *)msg, &field, &value);
7139
7758
  }
7140
7759
  UPB_INLINE struct google_protobuf_FieldOptions* google_protobuf_FieldDescriptorProto_mutable_options(google_protobuf_FieldDescriptorProto* msg, upb_Arena* arena) {
@@ -7218,6 +7837,7 @@ UPB_INLINE const google_protobuf_OneofOptions* google_protobuf_OneofDescriptorPr
7218
7837
  const google_protobuf_OneofOptions* default_val = NULL;
7219
7838
  const google_protobuf_OneofOptions* ret;
7220
7839
  const upb_MiniTableField field = {2, UPB_SIZE(12, 32), 65, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7840
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__OneofOptions_msg_init);
7221
7841
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
7222
7842
  &default_val, &ret);
7223
7843
  return ret;
@@ -7233,6 +7853,7 @@ UPB_INLINE void google_protobuf_OneofDescriptorProto_set_name(google_protobuf_On
7233
7853
  }
7234
7854
  UPB_INLINE void google_protobuf_OneofDescriptorProto_set_options(google_protobuf_OneofDescriptorProto *msg, google_protobuf_OneofOptions* value) {
7235
7855
  const upb_MiniTableField field = {2, UPB_SIZE(12, 32), 65, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7856
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__OneofOptions_msg_init);
7236
7857
  upb_Message_SetBaseField((upb_Message *)msg, &field, &value);
7237
7858
  }
7238
7859
  UPB_INLINE struct google_protobuf_OneofOptions* google_protobuf_OneofDescriptorProto_mutable_options(google_protobuf_OneofDescriptorProto* msg, upb_Arena* arena) {
@@ -7302,6 +7923,7 @@ UPB_INLINE void google_protobuf_EnumDescriptorProto_clear_value(google_protobuf_
7302
7923
  }
7303
7924
  UPB_INLINE const google_protobuf_EnumValueDescriptorProto* const* google_protobuf_EnumDescriptorProto_value(const google_protobuf_EnumDescriptorProto* msg, size_t* size) {
7304
7925
  const upb_MiniTableField field = {2, UPB_SIZE(12, 32), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7926
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__EnumValueDescriptorProto_msg_init);
7305
7927
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
7306
7928
  if (arr) {
7307
7929
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -7313,6 +7935,7 @@ UPB_INLINE const google_protobuf_EnumValueDescriptorProto* const* google_protobu
7313
7935
  }
7314
7936
  UPB_INLINE const upb_Array* _google_protobuf_EnumDescriptorProto_value_upb_array(const google_protobuf_EnumDescriptorProto* msg, size_t* size) {
7315
7937
  const upb_MiniTableField field = {2, UPB_SIZE(12, 32), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7938
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__EnumValueDescriptorProto_msg_init);
7316
7939
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
7317
7940
  if (size) {
7318
7941
  *size = arr ? arr->UPB_PRIVATE(size) : 0;
@@ -7321,6 +7944,7 @@ UPB_INLINE const upb_Array* _google_protobuf_EnumDescriptorProto_value_upb_array
7321
7944
  }
7322
7945
  UPB_INLINE upb_Array* _google_protobuf_EnumDescriptorProto_value_mutable_upb_array(google_protobuf_EnumDescriptorProto* msg, size_t* size, upb_Arena* arena) {
7323
7946
  const upb_MiniTableField field = {2, UPB_SIZE(12, 32), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7947
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__EnumValueDescriptorProto_msg_init);
7324
7948
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg),
7325
7949
  &field, arena);
7326
7950
  if (size) {
@@ -7336,6 +7960,7 @@ UPB_INLINE const google_protobuf_EnumOptions* google_protobuf_EnumDescriptorProt
7336
7960
  const google_protobuf_EnumOptions* default_val = NULL;
7337
7961
  const google_protobuf_EnumOptions* ret;
7338
7962
  const upb_MiniTableField field = {3, UPB_SIZE(16, 40), 65, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7963
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__EnumOptions_msg_init);
7339
7964
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
7340
7965
  &default_val, &ret);
7341
7966
  return ret;
@@ -7350,6 +7975,7 @@ UPB_INLINE void google_protobuf_EnumDescriptorProto_clear_reserved_range(google_
7350
7975
  }
7351
7976
  UPB_INLINE const google_protobuf_EnumDescriptorProto_EnumReservedRange* const* google_protobuf_EnumDescriptorProto_reserved_range(const google_protobuf_EnumDescriptorProto* msg, size_t* size) {
7352
7977
  const upb_MiniTableField field = {4, UPB_SIZE(20, 48), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7978
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__EnumDescriptorProto__EnumReservedRange_msg_init);
7353
7979
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
7354
7980
  if (arr) {
7355
7981
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -7361,6 +7987,7 @@ UPB_INLINE const google_protobuf_EnumDescriptorProto_EnumReservedRange* const* g
7361
7987
  }
7362
7988
  UPB_INLINE const upb_Array* _google_protobuf_EnumDescriptorProto_reserved_range_upb_array(const google_protobuf_EnumDescriptorProto* msg, size_t* size) {
7363
7989
  const upb_MiniTableField field = {4, UPB_SIZE(20, 48), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7990
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__EnumDescriptorProto__EnumReservedRange_msg_init);
7364
7991
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
7365
7992
  if (size) {
7366
7993
  *size = arr ? arr->UPB_PRIVATE(size) : 0;
@@ -7369,6 +7996,7 @@ UPB_INLINE const upb_Array* _google_protobuf_EnumDescriptorProto_reserved_range_
7369
7996
  }
7370
7997
  UPB_INLINE upb_Array* _google_protobuf_EnumDescriptorProto_reserved_range_mutable_upb_array(google_protobuf_EnumDescriptorProto* msg, size_t* size, upb_Arena* arena) {
7371
7998
  const upb_MiniTableField field = {4, UPB_SIZE(20, 48), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
7999
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__EnumDescriptorProto__EnumReservedRange_msg_init);
7372
8000
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg),
7373
8001
  &field, arena);
7374
8002
  if (size) {
@@ -7415,6 +8043,7 @@ UPB_INLINE void google_protobuf_EnumDescriptorProto_set_name(google_protobuf_Enu
7415
8043
  }
7416
8044
  UPB_INLINE google_protobuf_EnumValueDescriptorProto** google_protobuf_EnumDescriptorProto_mutable_value(google_protobuf_EnumDescriptorProto* msg, size_t* size) {
7417
8045
  upb_MiniTableField field = {2, UPB_SIZE(12, 32), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
8046
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__EnumValueDescriptorProto_msg_init);
7418
8047
  upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field);
7419
8048
  if (arr) {
7420
8049
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -7431,6 +8060,7 @@ UPB_INLINE google_protobuf_EnumValueDescriptorProto** google_protobuf_EnumDescri
7431
8060
  }
7432
8061
  UPB_INLINE struct google_protobuf_EnumValueDescriptorProto* google_protobuf_EnumDescriptorProto_add_value(google_protobuf_EnumDescriptorProto* msg, upb_Arena* arena) {
7433
8062
  upb_MiniTableField field = {2, UPB_SIZE(12, 32), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
8063
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__EnumValueDescriptorProto_msg_init);
7434
8064
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(
7435
8065
  UPB_UPCAST(msg), &field, arena);
7436
8066
  if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)(
@@ -7445,6 +8075,7 @@ UPB_INLINE struct google_protobuf_EnumValueDescriptorProto* google_protobuf_Enum
7445
8075
  }
7446
8076
  UPB_INLINE void google_protobuf_EnumDescriptorProto_set_options(google_protobuf_EnumDescriptorProto *msg, google_protobuf_EnumOptions* value) {
7447
8077
  const upb_MiniTableField field = {3, UPB_SIZE(16, 40), 65, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
8078
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__EnumOptions_msg_init);
7448
8079
  upb_Message_SetBaseField((upb_Message *)msg, &field, &value);
7449
8080
  }
7450
8081
  UPB_INLINE struct google_protobuf_EnumOptions* google_protobuf_EnumDescriptorProto_mutable_options(google_protobuf_EnumDescriptorProto* msg, upb_Arena* arena) {
@@ -7457,6 +8088,7 @@ UPB_INLINE struct google_protobuf_EnumOptions* google_protobuf_EnumDescriptorPro
7457
8088
  }
7458
8089
  UPB_INLINE google_protobuf_EnumDescriptorProto_EnumReservedRange** google_protobuf_EnumDescriptorProto_mutable_reserved_range(google_protobuf_EnumDescriptorProto* msg, size_t* size) {
7459
8090
  upb_MiniTableField field = {4, UPB_SIZE(20, 48), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
8091
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__EnumDescriptorProto__EnumReservedRange_msg_init);
7460
8092
  upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field);
7461
8093
  if (arr) {
7462
8094
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -7473,6 +8105,7 @@ UPB_INLINE google_protobuf_EnumDescriptorProto_EnumReservedRange** google_protob
7473
8105
  }
7474
8106
  UPB_INLINE struct google_protobuf_EnumDescriptorProto_EnumReservedRange* google_protobuf_EnumDescriptorProto_add_reserved_range(google_protobuf_EnumDescriptorProto* msg, upb_Arena* arena) {
7475
8107
  upb_MiniTableField field = {4, UPB_SIZE(20, 48), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
8108
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__EnumDescriptorProto__EnumReservedRange_msg_init);
7476
8109
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(
7477
8110
  UPB_UPCAST(msg), &field, arena);
7478
8111
  if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)(
@@ -7668,6 +8301,7 @@ UPB_INLINE const google_protobuf_EnumValueOptions* google_protobuf_EnumValueDesc
7668
8301
  const google_protobuf_EnumValueOptions* default_val = NULL;
7669
8302
  const google_protobuf_EnumValueOptions* ret;
7670
8303
  const upb_MiniTableField field = {3, UPB_SIZE(16, 32), 66, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
8304
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__EnumValueOptions_msg_init);
7671
8305
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
7672
8306
  &default_val, &ret);
7673
8307
  return ret;
@@ -7687,6 +8321,7 @@ UPB_INLINE void google_protobuf_EnumValueDescriptorProto_set_number(google_proto
7687
8321
  }
7688
8322
  UPB_INLINE void google_protobuf_EnumValueDescriptorProto_set_options(google_protobuf_EnumValueDescriptorProto *msg, google_protobuf_EnumValueOptions* value) {
7689
8323
  const upb_MiniTableField field = {3, UPB_SIZE(16, 32), 66, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
8324
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__EnumValueOptions_msg_init);
7690
8325
  upb_Message_SetBaseField((upb_Message *)msg, &field, &value);
7691
8326
  }
7692
8327
  UPB_INLINE struct google_protobuf_EnumValueOptions* google_protobuf_EnumValueDescriptorProto_mutable_options(google_protobuf_EnumValueDescriptorProto* msg, upb_Arena* arena) {
@@ -7756,6 +8391,7 @@ UPB_INLINE void google_protobuf_ServiceDescriptorProto_clear_method(google_proto
7756
8391
  }
7757
8392
  UPB_INLINE const google_protobuf_MethodDescriptorProto* const* google_protobuf_ServiceDescriptorProto_method(const google_protobuf_ServiceDescriptorProto* msg, size_t* size) {
7758
8393
  const upb_MiniTableField field = {2, UPB_SIZE(12, 32), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
8394
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__MethodDescriptorProto_msg_init);
7759
8395
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
7760
8396
  if (arr) {
7761
8397
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -7767,6 +8403,7 @@ UPB_INLINE const google_protobuf_MethodDescriptorProto* const* google_protobuf_S
7767
8403
  }
7768
8404
  UPB_INLINE const upb_Array* _google_protobuf_ServiceDescriptorProto_method_upb_array(const google_protobuf_ServiceDescriptorProto* msg, size_t* size) {
7769
8405
  const upb_MiniTableField field = {2, UPB_SIZE(12, 32), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
8406
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__MethodDescriptorProto_msg_init);
7770
8407
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
7771
8408
  if (size) {
7772
8409
  *size = arr ? arr->UPB_PRIVATE(size) : 0;
@@ -7775,6 +8412,7 @@ UPB_INLINE const upb_Array* _google_protobuf_ServiceDescriptorProto_method_upb_a
7775
8412
  }
7776
8413
  UPB_INLINE upb_Array* _google_protobuf_ServiceDescriptorProto_method_mutable_upb_array(google_protobuf_ServiceDescriptorProto* msg, size_t* size, upb_Arena* arena) {
7777
8414
  const upb_MiniTableField field = {2, UPB_SIZE(12, 32), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
8415
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__MethodDescriptorProto_msg_init);
7778
8416
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg),
7779
8417
  &field, arena);
7780
8418
  if (size) {
@@ -7790,6 +8428,7 @@ UPB_INLINE const google_protobuf_ServiceOptions* google_protobuf_ServiceDescript
7790
8428
  const google_protobuf_ServiceOptions* default_val = NULL;
7791
8429
  const google_protobuf_ServiceOptions* ret;
7792
8430
  const upb_MiniTableField field = {3, UPB_SIZE(16, 40), 65, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
8431
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__ServiceOptions_msg_init);
7793
8432
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
7794
8433
  &default_val, &ret);
7795
8434
  return ret;
@@ -7805,6 +8444,7 @@ UPB_INLINE void google_protobuf_ServiceDescriptorProto_set_name(google_protobuf_
7805
8444
  }
7806
8445
  UPB_INLINE google_protobuf_MethodDescriptorProto** google_protobuf_ServiceDescriptorProto_mutable_method(google_protobuf_ServiceDescriptorProto* msg, size_t* size) {
7807
8446
  upb_MiniTableField field = {2, UPB_SIZE(12, 32), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
8447
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__MethodDescriptorProto_msg_init);
7808
8448
  upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field);
7809
8449
  if (arr) {
7810
8450
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -7821,6 +8461,7 @@ UPB_INLINE google_protobuf_MethodDescriptorProto** google_protobuf_ServiceDescri
7821
8461
  }
7822
8462
  UPB_INLINE struct google_protobuf_MethodDescriptorProto* google_protobuf_ServiceDescriptorProto_add_method(google_protobuf_ServiceDescriptorProto* msg, upb_Arena* arena) {
7823
8463
  upb_MiniTableField field = {2, UPB_SIZE(12, 32), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
8464
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__MethodDescriptorProto_msg_init);
7824
8465
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(
7825
8466
  UPB_UPCAST(msg), &field, arena);
7826
8467
  if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)(
@@ -7835,6 +8476,7 @@ UPB_INLINE struct google_protobuf_MethodDescriptorProto* google_protobuf_Service
7835
8476
  }
7836
8477
  UPB_INLINE void google_protobuf_ServiceDescriptorProto_set_options(google_protobuf_ServiceDescriptorProto *msg, google_protobuf_ServiceOptions* value) {
7837
8478
  const upb_MiniTableField field = {3, UPB_SIZE(16, 40), 65, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
8479
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__ServiceOptions_msg_init);
7838
8480
  upb_Message_SetBaseField((upb_Message *)msg, &field, &value);
7839
8481
  }
7840
8482
  UPB_INLINE struct google_protobuf_ServiceOptions* google_protobuf_ServiceDescriptorProto_mutable_options(google_protobuf_ServiceDescriptorProto* msg, upb_Arena* arena) {
@@ -7938,6 +8580,7 @@ UPB_INLINE const google_protobuf_MethodOptions* google_protobuf_MethodDescriptor
7938
8580
  const google_protobuf_MethodOptions* default_val = NULL;
7939
8581
  const google_protobuf_MethodOptions* ret;
7940
8582
  const upb_MiniTableField field = {4, UPB_SIZE(12, 64), 67, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
8583
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__MethodOptions_msg_init);
7941
8584
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
7942
8585
  &default_val, &ret);
7943
8586
  return ret;
@@ -7993,6 +8636,7 @@ UPB_INLINE void google_protobuf_MethodDescriptorProto_set_output_type(google_pro
7993
8636
  }
7994
8637
  UPB_INLINE void google_protobuf_MethodDescriptorProto_set_options(google_protobuf_MethodDescriptorProto *msg, google_protobuf_MethodOptions* value) {
7995
8638
  const upb_MiniTableField field = {4, UPB_SIZE(12, 64), 67, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
8639
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__MethodOptions_msg_init);
7996
8640
  upb_Message_SetBaseField((upb_Message *)msg, &field, &value);
7997
8641
  }
7998
8642
  UPB_INLINE struct google_protobuf_MethodOptions* google_protobuf_MethodDescriptorProto_mutable_options(google_protobuf_MethodDescriptorProto* msg, upb_Arena* arena) {
@@ -8360,6 +9004,7 @@ UPB_INLINE const google_protobuf_FeatureSet* google_protobuf_FileOptions_feature
8360
9004
  const google_protobuf_FeatureSet* default_val = NULL;
8361
9005
  const google_protobuf_FeatureSet* ret;
8362
9006
  const upb_MiniTableField field = {50, UPB_SIZE(24, 184), 83, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
9007
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FeatureSet_msg_init);
8363
9008
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
8364
9009
  &default_val, &ret);
8365
9010
  return ret;
@@ -8374,6 +9019,7 @@ UPB_INLINE void google_protobuf_FileOptions_clear_uninterpreted_option(google_pr
8374
9019
  }
8375
9020
  UPB_INLINE const google_protobuf_UninterpretedOption* const* google_protobuf_FileOptions_uninterpreted_option(const google_protobuf_FileOptions* msg, size_t* size) {
8376
9021
  const upb_MiniTableField field = {999, UPB_SIZE(28, 192), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
9022
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
8377
9023
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
8378
9024
  if (arr) {
8379
9025
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -8385,6 +9031,7 @@ UPB_INLINE const google_protobuf_UninterpretedOption* const* google_protobuf_Fil
8385
9031
  }
8386
9032
  UPB_INLINE const upb_Array* _google_protobuf_FileOptions_uninterpreted_option_upb_array(const google_protobuf_FileOptions* msg, size_t* size) {
8387
9033
  const upb_MiniTableField field = {999, UPB_SIZE(28, 192), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
9034
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
8388
9035
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
8389
9036
  if (size) {
8390
9037
  *size = arr ? arr->UPB_PRIVATE(size) : 0;
@@ -8393,6 +9040,7 @@ UPB_INLINE const upb_Array* _google_protobuf_FileOptions_uninterpreted_option_up
8393
9040
  }
8394
9041
  UPB_INLINE upb_Array* _google_protobuf_FileOptions_uninterpreted_option_mutable_upb_array(google_protobuf_FileOptions* msg, size_t* size, upb_Arena* arena) {
8395
9042
  const upb_MiniTableField field = {999, UPB_SIZE(28, 192), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
9043
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
8396
9044
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg),
8397
9045
  &field, arena);
8398
9046
  if (size) {
@@ -8479,6 +9127,7 @@ UPB_INLINE void google_protobuf_FileOptions_set_ruby_package(google_protobuf_Fil
8479
9127
  }
8480
9128
  UPB_INLINE void google_protobuf_FileOptions_set_features(google_protobuf_FileOptions *msg, google_protobuf_FeatureSet* value) {
8481
9129
  const upb_MiniTableField field = {50, UPB_SIZE(24, 184), 83, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
9130
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FeatureSet_msg_init);
8482
9131
  upb_Message_SetBaseField((upb_Message *)msg, &field, &value);
8483
9132
  }
8484
9133
  UPB_INLINE struct google_protobuf_FeatureSet* google_protobuf_FileOptions_mutable_features(google_protobuf_FileOptions* msg, upb_Arena* arena) {
@@ -8491,6 +9140,7 @@ UPB_INLINE struct google_protobuf_FeatureSet* google_protobuf_FileOptions_mutabl
8491
9140
  }
8492
9141
  UPB_INLINE google_protobuf_UninterpretedOption** google_protobuf_FileOptions_mutable_uninterpreted_option(google_protobuf_FileOptions* msg, size_t* size) {
8493
9142
  upb_MiniTableField field = {999, UPB_SIZE(28, 192), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
9143
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
8494
9144
  upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field);
8495
9145
  if (arr) {
8496
9146
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -8507,6 +9157,7 @@ UPB_INLINE google_protobuf_UninterpretedOption** google_protobuf_FileOptions_res
8507
9157
  }
8508
9158
  UPB_INLINE struct google_protobuf_UninterpretedOption* google_protobuf_FileOptions_add_uninterpreted_option(google_protobuf_FileOptions* msg, upb_Arena* arena) {
8509
9159
  upb_MiniTableField field = {999, UPB_SIZE(28, 192), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
9160
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
8510
9161
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(
8511
9162
  UPB_UPCAST(msg), &field, arena);
8512
9163
  if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)(
@@ -8644,6 +9295,7 @@ UPB_INLINE const google_protobuf_FeatureSet* google_protobuf_MessageOptions_feat
8644
9295
  const google_protobuf_FeatureSet* default_val = NULL;
8645
9296
  const google_protobuf_FeatureSet* ret;
8646
9297
  const upb_MiniTableField field = {12, 16, 69, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
9298
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FeatureSet_msg_init);
8647
9299
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
8648
9300
  &default_val, &ret);
8649
9301
  return ret;
@@ -8658,6 +9310,7 @@ UPB_INLINE void google_protobuf_MessageOptions_clear_uninterpreted_option(google
8658
9310
  }
8659
9311
  UPB_INLINE const google_protobuf_UninterpretedOption* const* google_protobuf_MessageOptions_uninterpreted_option(const google_protobuf_MessageOptions* msg, size_t* size) {
8660
9312
  const upb_MiniTableField field = {999, UPB_SIZE(20, 24), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
9313
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
8661
9314
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
8662
9315
  if (arr) {
8663
9316
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -8669,6 +9322,7 @@ UPB_INLINE const google_protobuf_UninterpretedOption* const* google_protobuf_Mes
8669
9322
  }
8670
9323
  UPB_INLINE const upb_Array* _google_protobuf_MessageOptions_uninterpreted_option_upb_array(const google_protobuf_MessageOptions* msg, size_t* size) {
8671
9324
  const upb_MiniTableField field = {999, UPB_SIZE(20, 24), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
9325
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
8672
9326
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
8673
9327
  if (size) {
8674
9328
  *size = arr ? arr->UPB_PRIVATE(size) : 0;
@@ -8677,6 +9331,7 @@ UPB_INLINE const upb_Array* _google_protobuf_MessageOptions_uninterpreted_option
8677
9331
  }
8678
9332
  UPB_INLINE upb_Array* _google_protobuf_MessageOptions_uninterpreted_option_mutable_upb_array(google_protobuf_MessageOptions* msg, size_t* size, upb_Arena* arena) {
8679
9333
  const upb_MiniTableField field = {999, UPB_SIZE(20, 24), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
9334
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
8680
9335
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg),
8681
9336
  &field, arena);
8682
9337
  if (size) {
@@ -8707,6 +9362,7 @@ UPB_INLINE void google_protobuf_MessageOptions_set_deprecated_legacy_json_field_
8707
9362
  }
8708
9363
  UPB_INLINE void google_protobuf_MessageOptions_set_features(google_protobuf_MessageOptions *msg, google_protobuf_FeatureSet* value) {
8709
9364
  const upb_MiniTableField field = {12, 16, 69, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
9365
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FeatureSet_msg_init);
8710
9366
  upb_Message_SetBaseField((upb_Message *)msg, &field, &value);
8711
9367
  }
8712
9368
  UPB_INLINE struct google_protobuf_FeatureSet* google_protobuf_MessageOptions_mutable_features(google_protobuf_MessageOptions* msg, upb_Arena* arena) {
@@ -8719,6 +9375,7 @@ UPB_INLINE struct google_protobuf_FeatureSet* google_protobuf_MessageOptions_mut
8719
9375
  }
8720
9376
  UPB_INLINE google_protobuf_UninterpretedOption** google_protobuf_MessageOptions_mutable_uninterpreted_option(google_protobuf_MessageOptions* msg, size_t* size) {
8721
9377
  upb_MiniTableField field = {999, UPB_SIZE(20, 24), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
9378
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
8722
9379
  upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field);
8723
9380
  if (arr) {
8724
9381
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -8735,6 +9392,7 @@ UPB_INLINE google_protobuf_UninterpretedOption** google_protobuf_MessageOptions_
8735
9392
  }
8736
9393
  UPB_INLINE struct google_protobuf_UninterpretedOption* google_protobuf_MessageOptions_add_uninterpreted_option(google_protobuf_MessageOptions* msg, upb_Arena* arena) {
8737
9394
  upb_MiniTableField field = {999, UPB_SIZE(20, 24), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
9395
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
8738
9396
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(
8739
9397
  UPB_UPCAST(msg), &field, arena);
8740
9398
  if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)(
@@ -8966,6 +9624,7 @@ UPB_INLINE void google_protobuf_FieldOptions_clear_edition_defaults(google_proto
8966
9624
  }
8967
9625
  UPB_INLINE const google_protobuf_FieldOptions_EditionDefault* const* google_protobuf_FieldOptions_edition_defaults(const google_protobuf_FieldOptions* msg, size_t* size) {
8968
9626
  const upb_MiniTableField field = {20, UPB_SIZE(36, 40), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
9627
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FieldOptions__EditionDefault_msg_init);
8969
9628
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
8970
9629
  if (arr) {
8971
9630
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -8977,6 +9636,7 @@ UPB_INLINE const google_protobuf_FieldOptions_EditionDefault* const* google_prot
8977
9636
  }
8978
9637
  UPB_INLINE const upb_Array* _google_protobuf_FieldOptions_edition_defaults_upb_array(const google_protobuf_FieldOptions* msg, size_t* size) {
8979
9638
  const upb_MiniTableField field = {20, UPB_SIZE(36, 40), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
9639
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FieldOptions__EditionDefault_msg_init);
8980
9640
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
8981
9641
  if (size) {
8982
9642
  *size = arr ? arr->UPB_PRIVATE(size) : 0;
@@ -8985,6 +9645,7 @@ UPB_INLINE const upb_Array* _google_protobuf_FieldOptions_edition_defaults_upb_a
8985
9645
  }
8986
9646
  UPB_INLINE upb_Array* _google_protobuf_FieldOptions_edition_defaults_mutable_upb_array(google_protobuf_FieldOptions* msg, size_t* size, upb_Arena* arena) {
8987
9647
  const upb_MiniTableField field = {20, UPB_SIZE(36, 40), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
9648
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FieldOptions__EditionDefault_msg_init);
8988
9649
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg),
8989
9650
  &field, arena);
8990
9651
  if (size) {
@@ -9000,6 +9661,7 @@ UPB_INLINE const google_protobuf_FeatureSet* google_protobuf_FieldOptions_featur
9000
9661
  const google_protobuf_FeatureSet* default_val = NULL;
9001
9662
  const google_protobuf_FeatureSet* ret;
9002
9663
  const upb_MiniTableField field = {21, UPB_SIZE(40, 48), 73, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
9664
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FeatureSet_msg_init);
9003
9665
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
9004
9666
  &default_val, &ret);
9005
9667
  return ret;
@@ -9016,6 +9678,7 @@ UPB_INLINE const google_protobuf_FieldOptions_FeatureSupport* google_protobuf_Fi
9016
9678
  const google_protobuf_FieldOptions_FeatureSupport* default_val = NULL;
9017
9679
  const google_protobuf_FieldOptions_FeatureSupport* ret;
9018
9680
  const upb_MiniTableField field = {22, UPB_SIZE(44, 56), 74, 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
9681
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FieldOptions__FeatureSupport_msg_init);
9019
9682
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
9020
9683
  &default_val, &ret);
9021
9684
  return ret;
@@ -9030,6 +9693,7 @@ UPB_INLINE void google_protobuf_FieldOptions_clear_uninterpreted_option(google_p
9030
9693
  }
9031
9694
  UPB_INLINE const google_protobuf_UninterpretedOption* const* google_protobuf_FieldOptions_uninterpreted_option(const google_protobuf_FieldOptions* msg, size_t* size) {
9032
9695
  const upb_MiniTableField field = {999, UPB_SIZE(48, 64), 0, 3, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
9696
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
9033
9697
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
9034
9698
  if (arr) {
9035
9699
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -9041,6 +9705,7 @@ UPB_INLINE const google_protobuf_UninterpretedOption* const* google_protobuf_Fie
9041
9705
  }
9042
9706
  UPB_INLINE const upb_Array* _google_protobuf_FieldOptions_uninterpreted_option_upb_array(const google_protobuf_FieldOptions* msg, size_t* size) {
9043
9707
  const upb_MiniTableField field = {999, UPB_SIZE(48, 64), 0, 3, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
9708
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
9044
9709
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
9045
9710
  if (size) {
9046
9711
  *size = arr ? arr->UPB_PRIVATE(size) : 0;
@@ -9049,6 +9714,7 @@ UPB_INLINE const upb_Array* _google_protobuf_FieldOptions_uninterpreted_option_u
9049
9714
  }
9050
9715
  UPB_INLINE upb_Array* _google_protobuf_FieldOptions_uninterpreted_option_mutable_upb_array(google_protobuf_FieldOptions* msg, size_t* size, upb_Arena* arena) {
9051
9716
  const upb_MiniTableField field = {999, UPB_SIZE(48, 64), 0, 3, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
9717
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
9052
9718
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg),
9053
9719
  &field, arena);
9054
9720
  if (size) {
@@ -9123,6 +9789,7 @@ UPB_INLINE bool google_protobuf_FieldOptions_add_targets(google_protobuf_FieldOp
9123
9789
  }
9124
9790
  UPB_INLINE google_protobuf_FieldOptions_EditionDefault** google_protobuf_FieldOptions_mutable_edition_defaults(google_protobuf_FieldOptions* msg, size_t* size) {
9125
9791
  upb_MiniTableField field = {20, UPB_SIZE(36, 40), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
9792
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FieldOptions__EditionDefault_msg_init);
9126
9793
  upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field);
9127
9794
  if (arr) {
9128
9795
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -9139,6 +9806,7 @@ UPB_INLINE google_protobuf_FieldOptions_EditionDefault** google_protobuf_FieldOp
9139
9806
  }
9140
9807
  UPB_INLINE struct google_protobuf_FieldOptions_EditionDefault* google_protobuf_FieldOptions_add_edition_defaults(google_protobuf_FieldOptions* msg, upb_Arena* arena) {
9141
9808
  upb_MiniTableField field = {20, UPB_SIZE(36, 40), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
9809
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FieldOptions__EditionDefault_msg_init);
9142
9810
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(
9143
9811
  UPB_UPCAST(msg), &field, arena);
9144
9812
  if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)(
@@ -9153,6 +9821,7 @@ UPB_INLINE struct google_protobuf_FieldOptions_EditionDefault* google_protobuf_F
9153
9821
  }
9154
9822
  UPB_INLINE void google_protobuf_FieldOptions_set_features(google_protobuf_FieldOptions *msg, google_protobuf_FeatureSet* value) {
9155
9823
  const upb_MiniTableField field = {21, UPB_SIZE(40, 48), 73, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
9824
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FeatureSet_msg_init);
9156
9825
  upb_Message_SetBaseField((upb_Message *)msg, &field, &value);
9157
9826
  }
9158
9827
  UPB_INLINE struct google_protobuf_FeatureSet* google_protobuf_FieldOptions_mutable_features(google_protobuf_FieldOptions* msg, upb_Arena* arena) {
@@ -9165,6 +9834,7 @@ UPB_INLINE struct google_protobuf_FeatureSet* google_protobuf_FieldOptions_mutab
9165
9834
  }
9166
9835
  UPB_INLINE void google_protobuf_FieldOptions_set_feature_support(google_protobuf_FieldOptions *msg, google_protobuf_FieldOptions_FeatureSupport* value) {
9167
9836
  const upb_MiniTableField field = {22, UPB_SIZE(44, 56), 74, 2, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
9837
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FieldOptions__FeatureSupport_msg_init);
9168
9838
  upb_Message_SetBaseField((upb_Message *)msg, &field, &value);
9169
9839
  }
9170
9840
  UPB_INLINE struct google_protobuf_FieldOptions_FeatureSupport* google_protobuf_FieldOptions_mutable_feature_support(google_protobuf_FieldOptions* msg, upb_Arena* arena) {
@@ -9177,6 +9847,7 @@ UPB_INLINE struct google_protobuf_FieldOptions_FeatureSupport* google_protobuf_F
9177
9847
  }
9178
9848
  UPB_INLINE google_protobuf_UninterpretedOption** google_protobuf_FieldOptions_mutable_uninterpreted_option(google_protobuf_FieldOptions* msg, size_t* size) {
9179
9849
  upb_MiniTableField field = {999, UPB_SIZE(48, 64), 0, 3, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
9850
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
9180
9851
  upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field);
9181
9852
  if (arr) {
9182
9853
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -9193,6 +9864,7 @@ UPB_INLINE google_protobuf_UninterpretedOption** google_protobuf_FieldOptions_re
9193
9864
  }
9194
9865
  UPB_INLINE struct google_protobuf_UninterpretedOption* google_protobuf_FieldOptions_add_uninterpreted_option(google_protobuf_FieldOptions* msg, upb_Arena* arena) {
9195
9866
  upb_MiniTableField field = {999, UPB_SIZE(48, 64), 0, 3, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
9867
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
9196
9868
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(
9197
9869
  UPB_UPCAST(msg), &field, arena);
9198
9870
  if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)(
@@ -9446,6 +10118,7 @@ UPB_INLINE const google_protobuf_FeatureSet* google_protobuf_OneofOptions_featur
9446
10118
  const google_protobuf_FeatureSet* default_val = NULL;
9447
10119
  const google_protobuf_FeatureSet* ret;
9448
10120
  const upb_MiniTableField field = {1, UPB_SIZE(12, 16), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
10121
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FeatureSet_msg_init);
9449
10122
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
9450
10123
  &default_val, &ret);
9451
10124
  return ret;
@@ -9460,6 +10133,7 @@ UPB_INLINE void google_protobuf_OneofOptions_clear_uninterpreted_option(google_p
9460
10133
  }
9461
10134
  UPB_INLINE const google_protobuf_UninterpretedOption* const* google_protobuf_OneofOptions_uninterpreted_option(const google_protobuf_OneofOptions* msg, size_t* size) {
9462
10135
  const upb_MiniTableField field = {999, UPB_SIZE(16, 24), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
10136
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
9463
10137
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
9464
10138
  if (arr) {
9465
10139
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -9471,6 +10145,7 @@ UPB_INLINE const google_protobuf_UninterpretedOption* const* google_protobuf_One
9471
10145
  }
9472
10146
  UPB_INLINE const upb_Array* _google_protobuf_OneofOptions_uninterpreted_option_upb_array(const google_protobuf_OneofOptions* msg, size_t* size) {
9473
10147
  const upb_MiniTableField field = {999, UPB_SIZE(16, 24), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
10148
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
9474
10149
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
9475
10150
  if (size) {
9476
10151
  *size = arr ? arr->UPB_PRIVATE(size) : 0;
@@ -9479,6 +10154,7 @@ UPB_INLINE const upb_Array* _google_protobuf_OneofOptions_uninterpreted_option_u
9479
10154
  }
9480
10155
  UPB_INLINE upb_Array* _google_protobuf_OneofOptions_uninterpreted_option_mutable_upb_array(google_protobuf_OneofOptions* msg, size_t* size, upb_Arena* arena) {
9481
10156
  const upb_MiniTableField field = {999, UPB_SIZE(16, 24), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
10157
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
9482
10158
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg),
9483
10159
  &field, arena);
9484
10160
  if (size) {
@@ -9489,6 +10165,7 @@ UPB_INLINE upb_Array* _google_protobuf_OneofOptions_uninterpreted_option_mutable
9489
10165
 
9490
10166
  UPB_INLINE void google_protobuf_OneofOptions_set_features(google_protobuf_OneofOptions *msg, google_protobuf_FeatureSet* value) {
9491
10167
  const upb_MiniTableField field = {1, UPB_SIZE(12, 16), 64, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
10168
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FeatureSet_msg_init);
9492
10169
  upb_Message_SetBaseField((upb_Message *)msg, &field, &value);
9493
10170
  }
9494
10171
  UPB_INLINE struct google_protobuf_FeatureSet* google_protobuf_OneofOptions_mutable_features(google_protobuf_OneofOptions* msg, upb_Arena* arena) {
@@ -9501,6 +10178,7 @@ UPB_INLINE struct google_protobuf_FeatureSet* google_protobuf_OneofOptions_mutab
9501
10178
  }
9502
10179
  UPB_INLINE google_protobuf_UninterpretedOption** google_protobuf_OneofOptions_mutable_uninterpreted_option(google_protobuf_OneofOptions* msg, size_t* size) {
9503
10180
  upb_MiniTableField field = {999, UPB_SIZE(16, 24), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
10181
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
9504
10182
  upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field);
9505
10183
  if (arr) {
9506
10184
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -9517,6 +10195,7 @@ UPB_INLINE google_protobuf_UninterpretedOption** google_protobuf_OneofOptions_re
9517
10195
  }
9518
10196
  UPB_INLINE struct google_protobuf_UninterpretedOption* google_protobuf_OneofOptions_add_uninterpreted_option(google_protobuf_OneofOptions* msg, upb_Arena* arena) {
9519
10197
  upb_MiniTableField field = {999, UPB_SIZE(16, 24), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
10198
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
9520
10199
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(
9521
10200
  UPB_UPCAST(msg), &field, arena);
9522
10201
  if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)(
@@ -9622,6 +10301,7 @@ UPB_INLINE const google_protobuf_FeatureSet* google_protobuf_EnumOptions_feature
9622
10301
  const google_protobuf_FeatureSet* default_val = NULL;
9623
10302
  const google_protobuf_FeatureSet* ret;
9624
10303
  const upb_MiniTableField field = {7, UPB_SIZE(12, 16), 67, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
10304
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FeatureSet_msg_init);
9625
10305
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
9626
10306
  &default_val, &ret);
9627
10307
  return ret;
@@ -9636,6 +10316,7 @@ UPB_INLINE void google_protobuf_EnumOptions_clear_uninterpreted_option(google_pr
9636
10316
  }
9637
10317
  UPB_INLINE const google_protobuf_UninterpretedOption* const* google_protobuf_EnumOptions_uninterpreted_option(const google_protobuf_EnumOptions* msg, size_t* size) {
9638
10318
  const upb_MiniTableField field = {999, UPB_SIZE(16, 24), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
10319
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
9639
10320
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
9640
10321
  if (arr) {
9641
10322
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -9647,6 +10328,7 @@ UPB_INLINE const google_protobuf_UninterpretedOption* const* google_protobuf_Enu
9647
10328
  }
9648
10329
  UPB_INLINE const upb_Array* _google_protobuf_EnumOptions_uninterpreted_option_upb_array(const google_protobuf_EnumOptions* msg, size_t* size) {
9649
10330
  const upb_MiniTableField field = {999, UPB_SIZE(16, 24), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
10331
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
9650
10332
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
9651
10333
  if (size) {
9652
10334
  *size = arr ? arr->UPB_PRIVATE(size) : 0;
@@ -9655,6 +10337,7 @@ UPB_INLINE const upb_Array* _google_protobuf_EnumOptions_uninterpreted_option_up
9655
10337
  }
9656
10338
  UPB_INLINE upb_Array* _google_protobuf_EnumOptions_uninterpreted_option_mutable_upb_array(google_protobuf_EnumOptions* msg, size_t* size, upb_Arena* arena) {
9657
10339
  const upb_MiniTableField field = {999, UPB_SIZE(16, 24), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
10340
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
9658
10341
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg),
9659
10342
  &field, arena);
9660
10343
  if (size) {
@@ -9677,6 +10360,7 @@ UPB_INLINE void google_protobuf_EnumOptions_set_deprecated_legacy_json_field_con
9677
10360
  }
9678
10361
  UPB_INLINE void google_protobuf_EnumOptions_set_features(google_protobuf_EnumOptions *msg, google_protobuf_FeatureSet* value) {
9679
10362
  const upb_MiniTableField field = {7, UPB_SIZE(12, 16), 67, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
10363
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FeatureSet_msg_init);
9680
10364
  upb_Message_SetBaseField((upb_Message *)msg, &field, &value);
9681
10365
  }
9682
10366
  UPB_INLINE struct google_protobuf_FeatureSet* google_protobuf_EnumOptions_mutable_features(google_protobuf_EnumOptions* msg, upb_Arena* arena) {
@@ -9689,6 +10373,7 @@ UPB_INLINE struct google_protobuf_FeatureSet* google_protobuf_EnumOptions_mutabl
9689
10373
  }
9690
10374
  UPB_INLINE google_protobuf_UninterpretedOption** google_protobuf_EnumOptions_mutable_uninterpreted_option(google_protobuf_EnumOptions* msg, size_t* size) {
9691
10375
  upb_MiniTableField field = {999, UPB_SIZE(16, 24), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
10376
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
9692
10377
  upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field);
9693
10378
  if (arr) {
9694
10379
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -9705,6 +10390,7 @@ UPB_INLINE google_protobuf_UninterpretedOption** google_protobuf_EnumOptions_res
9705
10390
  }
9706
10391
  UPB_INLINE struct google_protobuf_UninterpretedOption* google_protobuf_EnumOptions_add_uninterpreted_option(google_protobuf_EnumOptions* msg, upb_Arena* arena) {
9707
10392
  upb_MiniTableField field = {999, UPB_SIZE(16, 24), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
10393
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
9708
10394
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(
9709
10395
  UPB_UPCAST(msg), &field, arena);
9710
10396
  if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)(
@@ -9778,6 +10464,7 @@ UPB_INLINE const google_protobuf_FeatureSet* google_protobuf_EnumValueOptions_fe
9778
10464
  const google_protobuf_FeatureSet* default_val = NULL;
9779
10465
  const google_protobuf_FeatureSet* ret;
9780
10466
  const upb_MiniTableField field = {2, UPB_SIZE(12, 16), 65, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
10467
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FeatureSet_msg_init);
9781
10468
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
9782
10469
  &default_val, &ret);
9783
10470
  return ret;
@@ -9810,6 +10497,7 @@ UPB_INLINE const google_protobuf_FieldOptions_FeatureSupport* google_protobuf_En
9810
10497
  const google_protobuf_FieldOptions_FeatureSupport* default_val = NULL;
9811
10498
  const google_protobuf_FieldOptions_FeatureSupport* ret;
9812
10499
  const upb_MiniTableField field = {4, UPB_SIZE(20, 24), 67, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
10500
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FieldOptions__FeatureSupport_msg_init);
9813
10501
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
9814
10502
  &default_val, &ret);
9815
10503
  return ret;
@@ -9824,6 +10512,7 @@ UPB_INLINE void google_protobuf_EnumValueOptions_clear_uninterpreted_option(goog
9824
10512
  }
9825
10513
  UPB_INLINE const google_protobuf_UninterpretedOption* const* google_protobuf_EnumValueOptions_uninterpreted_option(const google_protobuf_EnumValueOptions* msg, size_t* size) {
9826
10514
  const upb_MiniTableField field = {999, UPB_SIZE(24, 32), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
10515
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
9827
10516
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
9828
10517
  if (arr) {
9829
10518
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -9835,6 +10524,7 @@ UPB_INLINE const google_protobuf_UninterpretedOption* const* google_protobuf_Enu
9835
10524
  }
9836
10525
  UPB_INLINE const upb_Array* _google_protobuf_EnumValueOptions_uninterpreted_option_upb_array(const google_protobuf_EnumValueOptions* msg, size_t* size) {
9837
10526
  const upb_MiniTableField field = {999, UPB_SIZE(24, 32), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
10527
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
9838
10528
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
9839
10529
  if (size) {
9840
10530
  *size = arr ? arr->UPB_PRIVATE(size) : 0;
@@ -9843,6 +10533,7 @@ UPB_INLINE const upb_Array* _google_protobuf_EnumValueOptions_uninterpreted_opti
9843
10533
  }
9844
10534
  UPB_INLINE upb_Array* _google_protobuf_EnumValueOptions_uninterpreted_option_mutable_upb_array(google_protobuf_EnumValueOptions* msg, size_t* size, upb_Arena* arena) {
9845
10535
  const upb_MiniTableField field = {999, UPB_SIZE(24, 32), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
10536
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
9846
10537
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg),
9847
10538
  &field, arena);
9848
10539
  if (size) {
@@ -9857,6 +10548,7 @@ UPB_INLINE void google_protobuf_EnumValueOptions_set_deprecated(google_protobuf_
9857
10548
  }
9858
10549
  UPB_INLINE void google_protobuf_EnumValueOptions_set_features(google_protobuf_EnumValueOptions *msg, google_protobuf_FeatureSet* value) {
9859
10550
  const upb_MiniTableField field = {2, UPB_SIZE(12, 16), 65, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
10551
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FeatureSet_msg_init);
9860
10552
  upb_Message_SetBaseField((upb_Message *)msg, &field, &value);
9861
10553
  }
9862
10554
  UPB_INLINE struct google_protobuf_FeatureSet* google_protobuf_EnumValueOptions_mutable_features(google_protobuf_EnumValueOptions* msg, upb_Arena* arena) {
@@ -9873,6 +10565,7 @@ UPB_INLINE void google_protobuf_EnumValueOptions_set_debug_redact(google_protobu
9873
10565
  }
9874
10566
  UPB_INLINE void google_protobuf_EnumValueOptions_set_feature_support(google_protobuf_EnumValueOptions *msg, google_protobuf_FieldOptions_FeatureSupport* value) {
9875
10567
  const upb_MiniTableField field = {4, UPB_SIZE(20, 24), 67, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
10568
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FieldOptions__FeatureSupport_msg_init);
9876
10569
  upb_Message_SetBaseField((upb_Message *)msg, &field, &value);
9877
10570
  }
9878
10571
  UPB_INLINE struct google_protobuf_FieldOptions_FeatureSupport* google_protobuf_EnumValueOptions_mutable_feature_support(google_protobuf_EnumValueOptions* msg, upb_Arena* arena) {
@@ -9885,6 +10578,7 @@ UPB_INLINE struct google_protobuf_FieldOptions_FeatureSupport* google_protobuf_E
9885
10578
  }
9886
10579
  UPB_INLINE google_protobuf_UninterpretedOption** google_protobuf_EnumValueOptions_mutable_uninterpreted_option(google_protobuf_EnumValueOptions* msg, size_t* size) {
9887
10580
  upb_MiniTableField field = {999, UPB_SIZE(24, 32), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
10581
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
9888
10582
  upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field);
9889
10583
  if (arr) {
9890
10584
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -9901,6 +10595,7 @@ UPB_INLINE google_protobuf_UninterpretedOption** google_protobuf_EnumValueOption
9901
10595
  }
9902
10596
  UPB_INLINE struct google_protobuf_UninterpretedOption* google_protobuf_EnumValueOptions_add_uninterpreted_option(google_protobuf_EnumValueOptions* msg, upb_Arena* arena) {
9903
10597
  upb_MiniTableField field = {999, UPB_SIZE(24, 32), 0, 2, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
10598
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
9904
10599
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(
9905
10600
  UPB_UPCAST(msg), &field, arena);
9906
10601
  if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)(
@@ -9974,6 +10669,7 @@ UPB_INLINE const google_protobuf_FeatureSet* google_protobuf_ServiceOptions_feat
9974
10669
  const google_protobuf_FeatureSet* default_val = NULL;
9975
10670
  const google_protobuf_FeatureSet* ret;
9976
10671
  const upb_MiniTableField field = {34, UPB_SIZE(12, 16), 65, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
10672
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FeatureSet_msg_init);
9977
10673
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
9978
10674
  &default_val, &ret);
9979
10675
  return ret;
@@ -9988,6 +10684,7 @@ UPB_INLINE void google_protobuf_ServiceOptions_clear_uninterpreted_option(google
9988
10684
  }
9989
10685
  UPB_INLINE const google_protobuf_UninterpretedOption* const* google_protobuf_ServiceOptions_uninterpreted_option(const google_protobuf_ServiceOptions* msg, size_t* size) {
9990
10686
  const upb_MiniTableField field = {999, UPB_SIZE(16, 24), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
10687
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
9991
10688
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
9992
10689
  if (arr) {
9993
10690
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -9999,6 +10696,7 @@ UPB_INLINE const google_protobuf_UninterpretedOption* const* google_protobuf_Ser
9999
10696
  }
10000
10697
  UPB_INLINE const upb_Array* _google_protobuf_ServiceOptions_uninterpreted_option_upb_array(const google_protobuf_ServiceOptions* msg, size_t* size) {
10001
10698
  const upb_MiniTableField field = {999, UPB_SIZE(16, 24), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
10699
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
10002
10700
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
10003
10701
  if (size) {
10004
10702
  *size = arr ? arr->UPB_PRIVATE(size) : 0;
@@ -10007,6 +10705,7 @@ UPB_INLINE const upb_Array* _google_protobuf_ServiceOptions_uninterpreted_option
10007
10705
  }
10008
10706
  UPB_INLINE upb_Array* _google_protobuf_ServiceOptions_uninterpreted_option_mutable_upb_array(google_protobuf_ServiceOptions* msg, size_t* size, upb_Arena* arena) {
10009
10707
  const upb_MiniTableField field = {999, UPB_SIZE(16, 24), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
10708
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
10010
10709
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg),
10011
10710
  &field, arena);
10012
10711
  if (size) {
@@ -10021,6 +10720,7 @@ UPB_INLINE void google_protobuf_ServiceOptions_set_deprecated(google_protobuf_Se
10021
10720
  }
10022
10721
  UPB_INLINE void google_protobuf_ServiceOptions_set_features(google_protobuf_ServiceOptions *msg, google_protobuf_FeatureSet* value) {
10023
10722
  const upb_MiniTableField field = {34, UPB_SIZE(12, 16), 65, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
10723
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FeatureSet_msg_init);
10024
10724
  upb_Message_SetBaseField((upb_Message *)msg, &field, &value);
10025
10725
  }
10026
10726
  UPB_INLINE struct google_protobuf_FeatureSet* google_protobuf_ServiceOptions_mutable_features(google_protobuf_ServiceOptions* msg, upb_Arena* arena) {
@@ -10033,6 +10733,7 @@ UPB_INLINE struct google_protobuf_FeatureSet* google_protobuf_ServiceOptions_mut
10033
10733
  }
10034
10734
  UPB_INLINE google_protobuf_UninterpretedOption** google_protobuf_ServiceOptions_mutable_uninterpreted_option(google_protobuf_ServiceOptions* msg, size_t* size) {
10035
10735
  upb_MiniTableField field = {999, UPB_SIZE(16, 24), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
10736
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
10036
10737
  upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field);
10037
10738
  if (arr) {
10038
10739
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -10049,6 +10750,7 @@ UPB_INLINE google_protobuf_UninterpretedOption** google_protobuf_ServiceOptions_
10049
10750
  }
10050
10751
  UPB_INLINE struct google_protobuf_UninterpretedOption* google_protobuf_ServiceOptions_add_uninterpreted_option(google_protobuf_ServiceOptions* msg, upb_Arena* arena) {
10051
10752
  upb_MiniTableField field = {999, UPB_SIZE(16, 24), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
10753
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
10052
10754
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(
10053
10755
  UPB_UPCAST(msg), &field, arena);
10054
10756
  if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)(
@@ -10138,6 +10840,7 @@ UPB_INLINE const google_protobuf_FeatureSet* google_protobuf_MethodOptions_featu
10138
10840
  const google_protobuf_FeatureSet* default_val = NULL;
10139
10841
  const google_protobuf_FeatureSet* ret;
10140
10842
  const upb_MiniTableField field = {35, 16, 66, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
10843
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FeatureSet_msg_init);
10141
10844
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
10142
10845
  &default_val, &ret);
10143
10846
  return ret;
@@ -10152,6 +10855,7 @@ UPB_INLINE void google_protobuf_MethodOptions_clear_uninterpreted_option(google_
10152
10855
  }
10153
10856
  UPB_INLINE const google_protobuf_UninterpretedOption* const* google_protobuf_MethodOptions_uninterpreted_option(const google_protobuf_MethodOptions* msg, size_t* size) {
10154
10857
  const upb_MiniTableField field = {999, UPB_SIZE(20, 24), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
10858
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
10155
10859
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
10156
10860
  if (arr) {
10157
10861
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -10163,6 +10867,7 @@ UPB_INLINE const google_protobuf_UninterpretedOption* const* google_protobuf_Met
10163
10867
  }
10164
10868
  UPB_INLINE const upb_Array* _google_protobuf_MethodOptions_uninterpreted_option_upb_array(const google_protobuf_MethodOptions* msg, size_t* size) {
10165
10869
  const upb_MiniTableField field = {999, UPB_SIZE(20, 24), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
10870
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
10166
10871
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
10167
10872
  if (size) {
10168
10873
  *size = arr ? arr->UPB_PRIVATE(size) : 0;
@@ -10171,6 +10876,7 @@ UPB_INLINE const upb_Array* _google_protobuf_MethodOptions_uninterpreted_option_
10171
10876
  }
10172
10877
  UPB_INLINE upb_Array* _google_protobuf_MethodOptions_uninterpreted_option_mutable_upb_array(google_protobuf_MethodOptions* msg, size_t* size, upb_Arena* arena) {
10173
10878
  const upb_MiniTableField field = {999, UPB_SIZE(20, 24), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
10879
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
10174
10880
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg),
10175
10881
  &field, arena);
10176
10882
  if (size) {
@@ -10189,6 +10895,7 @@ UPB_INLINE void google_protobuf_MethodOptions_set_idempotency_level(google_proto
10189
10895
  }
10190
10896
  UPB_INLINE void google_protobuf_MethodOptions_set_features(google_protobuf_MethodOptions *msg, google_protobuf_FeatureSet* value) {
10191
10897
  const upb_MiniTableField field = {35, 16, 66, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
10898
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FeatureSet_msg_init);
10192
10899
  upb_Message_SetBaseField((upb_Message *)msg, &field, &value);
10193
10900
  }
10194
10901
  UPB_INLINE struct google_protobuf_FeatureSet* google_protobuf_MethodOptions_mutable_features(google_protobuf_MethodOptions* msg, upb_Arena* arena) {
@@ -10201,6 +10908,7 @@ UPB_INLINE struct google_protobuf_FeatureSet* google_protobuf_MethodOptions_muta
10201
10908
  }
10202
10909
  UPB_INLINE google_protobuf_UninterpretedOption** google_protobuf_MethodOptions_mutable_uninterpreted_option(google_protobuf_MethodOptions* msg, size_t* size) {
10203
10910
  upb_MiniTableField field = {999, UPB_SIZE(20, 24), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
10911
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
10204
10912
  upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field);
10205
10913
  if (arr) {
10206
10914
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -10217,6 +10925,7 @@ UPB_INLINE google_protobuf_UninterpretedOption** google_protobuf_MethodOptions_r
10217
10925
  }
10218
10926
  UPB_INLINE struct google_protobuf_UninterpretedOption* google_protobuf_MethodOptions_add_uninterpreted_option(google_protobuf_MethodOptions* msg, upb_Arena* arena) {
10219
10927
  upb_MiniTableField field = {999, UPB_SIZE(20, 24), 0, 1, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
10928
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption_msg_init);
10220
10929
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(
10221
10930
  UPB_UPCAST(msg), &field, arena);
10222
10931
  if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)(
@@ -10272,6 +10981,7 @@ UPB_INLINE void google_protobuf_UninterpretedOption_clear_name(google_protobuf_U
10272
10981
  }
10273
10982
  UPB_INLINE const google_protobuf_UninterpretedOption_NamePart* const* google_protobuf_UninterpretedOption_name(const google_protobuf_UninterpretedOption* msg, size_t* size) {
10274
10983
  const upb_MiniTableField field = {2, UPB_SIZE(12, 16), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
10984
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption__NamePart_msg_init);
10275
10985
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
10276
10986
  if (arr) {
10277
10987
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -10283,6 +10993,7 @@ UPB_INLINE const google_protobuf_UninterpretedOption_NamePart* const* google_pro
10283
10993
  }
10284
10994
  UPB_INLINE const upb_Array* _google_protobuf_UninterpretedOption_name_upb_array(const google_protobuf_UninterpretedOption* msg, size_t* size) {
10285
10995
  const upb_MiniTableField field = {2, UPB_SIZE(12, 16), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
10996
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption__NamePart_msg_init);
10286
10997
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
10287
10998
  if (size) {
10288
10999
  *size = arr ? arr->UPB_PRIVATE(size) : 0;
@@ -10291,6 +11002,7 @@ UPB_INLINE const upb_Array* _google_protobuf_UninterpretedOption_name_upb_array(
10291
11002
  }
10292
11003
  UPB_INLINE upb_Array* _google_protobuf_UninterpretedOption_name_mutable_upb_array(google_protobuf_UninterpretedOption* msg, size_t* size, upb_Arena* arena) {
10293
11004
  const upb_MiniTableField field = {2, UPB_SIZE(12, 16), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
11005
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption__NamePart_msg_init);
10294
11006
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg),
10295
11007
  &field, arena);
10296
11008
  if (size) {
@@ -10397,6 +11109,7 @@ UPB_INLINE bool google_protobuf_UninterpretedOption_has_aggregate_value(const go
10397
11109
 
10398
11110
  UPB_INLINE google_protobuf_UninterpretedOption_NamePart** google_protobuf_UninterpretedOption_mutable_name(google_protobuf_UninterpretedOption* msg, size_t* size) {
10399
11111
  upb_MiniTableField field = {2, UPB_SIZE(12, 16), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
11112
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption__NamePart_msg_init);
10400
11113
  upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field);
10401
11114
  if (arr) {
10402
11115
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -10413,6 +11126,7 @@ UPB_INLINE google_protobuf_UninterpretedOption_NamePart** google_protobuf_Uninte
10413
11126
  }
10414
11127
  UPB_INLINE struct google_protobuf_UninterpretedOption_NamePart* google_protobuf_UninterpretedOption_add_name(google_protobuf_UninterpretedOption* msg, upb_Arena* arena) {
10415
11128
  upb_MiniTableField field = {2, UPB_SIZE(12, 16), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
11129
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__UninterpretedOption__NamePart_msg_init);
10416
11130
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(
10417
11131
  UPB_UPCAST(msg), &field, arena);
10418
11132
  if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)(
@@ -10728,6 +11442,7 @@ UPB_INLINE void google_protobuf_FeatureSetDefaults_clear_defaults(google_protobu
10728
11442
  }
10729
11443
  UPB_INLINE const google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault* const* google_protobuf_FeatureSetDefaults_defaults(const google_protobuf_FeatureSetDefaults* msg, size_t* size) {
10730
11444
  const upb_MiniTableField field = {1, UPB_SIZE(12, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
11445
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FeatureSetDefaults__FeatureSetEditionDefault_msg_init);
10731
11446
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
10732
11447
  if (arr) {
10733
11448
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -10739,6 +11454,7 @@ UPB_INLINE const google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault* co
10739
11454
  }
10740
11455
  UPB_INLINE const upb_Array* _google_protobuf_FeatureSetDefaults_defaults_upb_array(const google_protobuf_FeatureSetDefaults* msg, size_t* size) {
10741
11456
  const upb_MiniTableField field = {1, UPB_SIZE(12, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
11457
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FeatureSetDefaults__FeatureSetEditionDefault_msg_init);
10742
11458
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
10743
11459
  if (size) {
10744
11460
  *size = arr ? arr->UPB_PRIVATE(size) : 0;
@@ -10747,6 +11463,7 @@ UPB_INLINE const upb_Array* _google_protobuf_FeatureSetDefaults_defaults_upb_arr
10747
11463
  }
10748
11464
  UPB_INLINE upb_Array* _google_protobuf_FeatureSetDefaults_defaults_mutable_upb_array(google_protobuf_FeatureSetDefaults* msg, size_t* size, upb_Arena* arena) {
10749
11465
  const upb_MiniTableField field = {1, UPB_SIZE(12, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
11466
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FeatureSetDefaults__FeatureSetEditionDefault_msg_init);
10750
11467
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg),
10751
11468
  &field, arena);
10752
11469
  if (size) {
@@ -10789,6 +11506,7 @@ UPB_INLINE bool google_protobuf_FeatureSetDefaults_has_maximum_edition(const goo
10789
11506
 
10790
11507
  UPB_INLINE google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault** google_protobuf_FeatureSetDefaults_mutable_defaults(google_protobuf_FeatureSetDefaults* msg, size_t* size) {
10791
11508
  upb_MiniTableField field = {1, UPB_SIZE(12, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
11509
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FeatureSetDefaults__FeatureSetEditionDefault_msg_init);
10792
11510
  upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field);
10793
11511
  if (arr) {
10794
11512
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -10805,6 +11523,7 @@ UPB_INLINE google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault** google_
10805
11523
  }
10806
11524
  UPB_INLINE struct google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault* google_protobuf_FeatureSetDefaults_add_defaults(google_protobuf_FeatureSetDefaults* msg, upb_Arena* arena) {
10807
11525
  upb_MiniTableField field = {1, UPB_SIZE(12, 24), 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
11526
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FeatureSetDefaults__FeatureSetEditionDefault_msg_init);
10808
11527
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(
10809
11528
  UPB_UPCAST(msg), &field, arena);
10810
11529
  if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)(
@@ -10886,6 +11605,7 @@ UPB_INLINE const google_protobuf_FeatureSet* google_protobuf_FeatureSetDefaults_
10886
11605
  const google_protobuf_FeatureSet* default_val = NULL;
10887
11606
  const google_protobuf_FeatureSet* ret;
10888
11607
  const upb_MiniTableField field = {4, 16, 65, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
11608
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FeatureSet_msg_init);
10889
11609
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
10890
11610
  &default_val, &ret);
10891
11611
  return ret;
@@ -10902,6 +11622,7 @@ UPB_INLINE const google_protobuf_FeatureSet* google_protobuf_FeatureSetDefaults_
10902
11622
  const google_protobuf_FeatureSet* default_val = NULL;
10903
11623
  const google_protobuf_FeatureSet* ret;
10904
11624
  const upb_MiniTableField field = {5, UPB_SIZE(20, 24), 66, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
11625
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FeatureSet_msg_init);
10905
11626
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
10906
11627
  &default_val, &ret);
10907
11628
  return ret;
@@ -10917,6 +11638,7 @@ UPB_INLINE void google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault_set_
10917
11638
  }
10918
11639
  UPB_INLINE void google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault_set_overridable_features(google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault *msg, google_protobuf_FeatureSet* value) {
10919
11640
  const upb_MiniTableField field = {4, 16, 65, 0, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
11641
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FeatureSet_msg_init);
10920
11642
  upb_Message_SetBaseField((upb_Message *)msg, &field, &value);
10921
11643
  }
10922
11644
  UPB_INLINE struct google_protobuf_FeatureSet* google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault_mutable_overridable_features(google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault* msg, upb_Arena* arena) {
@@ -10929,6 +11651,7 @@ UPB_INLINE struct google_protobuf_FeatureSet* google_protobuf_FeatureSetDefaults
10929
11651
  }
10930
11652
  UPB_INLINE void google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault_set_fixed_features(google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault *msg, google_protobuf_FeatureSet* value) {
10931
11653
  const upb_MiniTableField field = {5, UPB_SIZE(20, 24), 66, 1, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
11654
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__FeatureSet_msg_init);
10932
11655
  upb_Message_SetBaseField((upb_Message *)msg, &field, &value);
10933
11656
  }
10934
11657
  UPB_INLINE struct google_protobuf_FeatureSet* google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault_mutable_fixed_features(google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault* msg, upb_Arena* arena) {
@@ -10982,6 +11705,7 @@ UPB_INLINE void google_protobuf_SourceCodeInfo_clear_location(google_protobuf_So
10982
11705
  }
10983
11706
  UPB_INLINE const google_protobuf_SourceCodeInfo_Location* const* google_protobuf_SourceCodeInfo_location(const google_protobuf_SourceCodeInfo* msg, size_t* size) {
10984
11707
  const upb_MiniTableField field = {1, 8, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
11708
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__SourceCodeInfo__Location_msg_init);
10985
11709
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
10986
11710
  if (arr) {
10987
11711
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -10993,6 +11717,7 @@ UPB_INLINE const google_protobuf_SourceCodeInfo_Location* const* google_protobuf
10993
11717
  }
10994
11718
  UPB_INLINE const upb_Array* _google_protobuf_SourceCodeInfo_location_upb_array(const google_protobuf_SourceCodeInfo* msg, size_t* size) {
10995
11719
  const upb_MiniTableField field = {1, 8, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
11720
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__SourceCodeInfo__Location_msg_init);
10996
11721
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
10997
11722
  if (size) {
10998
11723
  *size = arr ? arr->UPB_PRIVATE(size) : 0;
@@ -11001,6 +11726,7 @@ UPB_INLINE const upb_Array* _google_protobuf_SourceCodeInfo_location_upb_array(c
11001
11726
  }
11002
11727
  UPB_INLINE upb_Array* _google_protobuf_SourceCodeInfo_location_mutable_upb_array(google_protobuf_SourceCodeInfo* msg, size_t* size, upb_Arena* arena) {
11003
11728
  const upb_MiniTableField field = {1, 8, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
11729
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__SourceCodeInfo__Location_msg_init);
11004
11730
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg),
11005
11731
  &field, arena);
11006
11732
  if (size) {
@@ -11011,6 +11737,7 @@ UPB_INLINE upb_Array* _google_protobuf_SourceCodeInfo_location_mutable_upb_array
11011
11737
 
11012
11738
  UPB_INLINE google_protobuf_SourceCodeInfo_Location** google_protobuf_SourceCodeInfo_mutable_location(google_protobuf_SourceCodeInfo* msg, size_t* size) {
11013
11739
  upb_MiniTableField field = {1, 8, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
11740
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__SourceCodeInfo__Location_msg_init);
11014
11741
  upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field);
11015
11742
  if (arr) {
11016
11743
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -11027,6 +11754,7 @@ UPB_INLINE google_protobuf_SourceCodeInfo_Location** google_protobuf_SourceCodeI
11027
11754
  }
11028
11755
  UPB_INLINE struct google_protobuf_SourceCodeInfo_Location* google_protobuf_SourceCodeInfo_add_location(google_protobuf_SourceCodeInfo* msg, upb_Arena* arena) {
11029
11756
  upb_MiniTableField field = {1, 8, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
11757
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__SourceCodeInfo__Location_msg_init);
11030
11758
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(
11031
11759
  UPB_UPCAST(msg), &field, arena);
11032
11760
  if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)(
@@ -11340,6 +12068,7 @@ UPB_INLINE void google_protobuf_GeneratedCodeInfo_clear_annotation(google_protob
11340
12068
  }
11341
12069
  UPB_INLINE const google_protobuf_GeneratedCodeInfo_Annotation* const* google_protobuf_GeneratedCodeInfo_annotation(const google_protobuf_GeneratedCodeInfo* msg, size_t* size) {
11342
12070
  const upb_MiniTableField field = {1, 8, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
12071
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__GeneratedCodeInfo__Annotation_msg_init);
11343
12072
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
11344
12073
  if (arr) {
11345
12074
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -11351,6 +12080,7 @@ UPB_INLINE const google_protobuf_GeneratedCodeInfo_Annotation* const* google_pro
11351
12080
  }
11352
12081
  UPB_INLINE const upb_Array* _google_protobuf_GeneratedCodeInfo_annotation_upb_array(const google_protobuf_GeneratedCodeInfo* msg, size_t* size) {
11353
12082
  const upb_MiniTableField field = {1, 8, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
12083
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__GeneratedCodeInfo__Annotation_msg_init);
11354
12084
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
11355
12085
  if (size) {
11356
12086
  *size = arr ? arr->UPB_PRIVATE(size) : 0;
@@ -11359,6 +12089,7 @@ UPB_INLINE const upb_Array* _google_protobuf_GeneratedCodeInfo_annotation_upb_ar
11359
12089
  }
11360
12090
  UPB_INLINE upb_Array* _google_protobuf_GeneratedCodeInfo_annotation_mutable_upb_array(google_protobuf_GeneratedCodeInfo* msg, size_t* size, upb_Arena* arena) {
11361
12091
  const upb_MiniTableField field = {1, 8, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
12092
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__GeneratedCodeInfo__Annotation_msg_init);
11362
12093
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg),
11363
12094
  &field, arena);
11364
12095
  if (size) {
@@ -11369,6 +12100,7 @@ UPB_INLINE upb_Array* _google_protobuf_GeneratedCodeInfo_annotation_mutable_upb_
11369
12100
 
11370
12101
  UPB_INLINE google_protobuf_GeneratedCodeInfo_Annotation** google_protobuf_GeneratedCodeInfo_mutable_annotation(google_protobuf_GeneratedCodeInfo* msg, size_t* size) {
11371
12102
  upb_MiniTableField field = {1, 8, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
12103
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__GeneratedCodeInfo__Annotation_msg_init);
11372
12104
  upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field);
11373
12105
  if (arr) {
11374
12106
  if (size) *size = arr->UPB_PRIVATE(size);
@@ -11385,6 +12117,7 @@ UPB_INLINE google_protobuf_GeneratedCodeInfo_Annotation** google_protobuf_Genera
11385
12117
  }
11386
12118
  UPB_INLINE struct google_protobuf_GeneratedCodeInfo_Annotation* google_protobuf_GeneratedCodeInfo_add_annotation(google_protobuf_GeneratedCodeInfo* msg, upb_Arena* arena) {
11387
12119
  upb_MiniTableField field = {1, 8, 0, 0, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
12120
+ UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__GeneratedCodeInfo__Annotation_msg_init);
11388
12121
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(
11389
12122
  UPB_UPCAST(msg), &field, arena);
11390
12123
  if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)(
@@ -11885,6 +12618,7 @@ bool upb_FieldDef_HasOptions(const upb_FieldDef* f);
11885
12618
  UPB_API bool upb_FieldDef_HasPresence(const upb_FieldDef* f);
11886
12619
  bool upb_FieldDef_HasSubDef(const upb_FieldDef* f);
11887
12620
  uint32_t upb_FieldDef_Index(const upb_FieldDef* f);
12621
+ UPB_API bool upb_FieldDef_IsEnum(const upb_FieldDef* f);
11888
12622
  bool upb_FieldDef_IsExtension(const upb_FieldDef* f);
11889
12623
  UPB_API bool upb_FieldDef_IsMap(const upb_FieldDef* f);
11890
12624
  bool upb_FieldDef_IsOptional(const upb_FieldDef* f);
@@ -12353,8 +13087,8 @@ UPB_API upb_MutableMessageValue upb_Message_Mutable(upb_Message* msg,
12353
13087
  upb_Arena* a);
12354
13088
 
12355
13089
  // Returns the field that is set in the oneof, or NULL if none are set.
12356
- UPB_API const upb_FieldDef* upb_Message_WhichOneof(const upb_Message* msg,
12357
- const upb_OneofDef* o);
13090
+ UPB_API const upb_FieldDef* upb_Message_WhichOneofByDef(const upb_Message* msg,
13091
+ const upb_OneofDef* o);
12358
13092
 
12359
13093
  // Clear all data and unknown fields.
12360
13094
  void upb_Message_ClearByDef(upb_Message* msg, const upb_MessageDef* m);
@@ -12853,6 +13587,29 @@ upb_UnknownCompareResult UPB_PRIVATE(_upb_Message_UnknownFieldsAreEqual)(
12853
13587
 
12854
13588
  #endif /* UPB_MESSAGE_INTERNAL_COMPARE_UNKNOWN_H_ */
12855
13589
 
13590
+ #ifndef THIRD_PARTY_UPB_UPB_MESSAGE_INTERNAL_ITERATOR_H_
13591
+ #define THIRD_PARTY_UPB_UPB_MESSAGE_INTERNAL_ITERATOR_H_
13592
+
13593
+ #include <stddef.h>
13594
+
13595
+
13596
+ // Must be last.
13597
+
13598
+ #define kUpb_BaseField_Begin ((size_t)-1)
13599
+ #define kUpb_Extension_Begin ((size_t)-1)
13600
+
13601
+ bool UPB_PRIVATE(_upb_Message_NextBaseField)(const upb_Message* msg,
13602
+ const upb_MiniTable* m,
13603
+ const upb_MiniTableField** out_f,
13604
+ upb_MessageValue* out_v,
13605
+ size_t* iter);
13606
+
13607
+ bool UPB_PRIVATE(_upb_Message_NextExtension)(
13608
+ const upb_Message* msg, const upb_MiniTable* m,
13609
+ const upb_MiniTableExtension** out_e, upb_MessageValue* out_v,
13610
+ size_t* iter);
13611
+ #endif // THIRD_PARTY_UPB_UPB_MESSAGE_INTERNAL_ITERATOR_H_
13612
+
12856
13613
  #ifndef UPB_MESSAGE_COPY_H_
12857
13614
  #define UPB_MESSAGE_COPY_H_
12858
13615
 
@@ -12895,6 +13652,26 @@ void upb_Message_ShallowCopy(upb_Message* dst, const upb_Message* src,
12895
13652
 
12896
13653
 
12897
13654
  #endif // UPB_MESSAGE_COPY_H_
13655
+ #ifndef THIRD_PARTY_UPB_UPB_MESSAGE_MERGE_H_
13656
+ #define THIRD_PARTY_UPB_UPB_MESSAGE_MERGE_H_
13657
+
13658
+
13659
+ // Must be last.
13660
+
13661
+ #ifdef __cplusplus
13662
+ extern "C" {
13663
+ #endif
13664
+
13665
+ UPB_API bool upb_Message_MergeFrom(upb_Message* dst, const upb_Message* src,
13666
+ const upb_MiniTable* mt,
13667
+ const upb_ExtensionRegistry* extreg,
13668
+ upb_Arena* arena);
13669
+
13670
+ #ifdef __cplusplus
13671
+ } /* extern "C" */
13672
+ #endif
13673
+
13674
+ #endif // THIRD_PARTY_UPB_UPB_MESSAGE_MERGE_H_
12898
13675
 
12899
13676
  #ifndef UPB_MINI_DESCRIPTOR_INTERNAL_BASE92_H_
12900
13677
  #define UPB_MINI_DESCRIPTOR_INTERNAL_BASE92_H_
@@ -14056,7 +14833,7 @@ upb_ServiceDef* _upb_ServiceDefs_New(upb_DefBuilder* ctx, int n,
14056
14833
  // features. This is used for feature resolution under Editions.
14057
14834
  // NOLINTBEGIN
14058
14835
  // clang-format off
14059
- #define UPB_INTERNAL_UPB_EDITION_DEFAULTS "\n\023\030\346\007\"\000*\014\010\001\020\002\030\002 \003(\0010\002\n\023\030\347\007\"\000*\014\010\002\020\001\030\001 \002(\0010\001\n\023\030\350\007\"\014\010\001\020\001\030\001 \002(\0010\001*\000 \346\007(\350\007"
14836
+ #define UPB_INTERNAL_UPB_EDITION_DEFAULTS "\n\023\030\204\007\"\000*\014\010\001\020\002\030\002 \003(\0010\002\n\023\030\347\007\"\000*\014\010\002\020\001\030\001 \002(\0010\001\n\023\030\350\007\"\014\010\001\020\001\030\001 \002(\0010\001*\000 \346\007(\350\007"
14060
14837
  // clang-format on
14061
14838
  // NOLINTEND
14062
14839
 
@@ -14347,3 +15124,7 @@ upb_MethodDef* _upb_MethodDefs_New(upb_DefBuilder* ctx, int n,
14347
15124
  #undef UPB_USE_C11_ATOMICS
14348
15125
  #undef UPB_PRIVATE
14349
15126
  #undef UPB_ONLYBITS
15127
+ #undef UPB_LINKARR_DECLARE
15128
+ #undef UPB_LINKARR_APPEND
15129
+ #undef UPB_LINKARR_START
15130
+ #undef UPB_LINKARR_STOP