Automated rollback of commit 3c75c331d392f9699959bcd57875d79ecaca4785.

PiperOrigin-RevId: 588239901
diff --git a/upb/message/accessors.h b/upb/message/accessors.h
index 8324659..4d4ee36 100644
--- a/upb/message/accessors.h
+++ b/upb/message/accessors.h
@@ -369,7 +369,7 @@
     const upb_MiniTable* sub_mini_table = upb_MiniTableSub_Message(
         mini_table->UPB_PRIVATE(subs)[field->UPB_PRIVATE(submsg_index)]);
     UPB_ASSERT(sub_mini_table);
-    sub_message = upb_Message_New(sub_mini_table, arena);
+    sub_message = _upb_Message_New(sub_mini_table, arena);
     *UPB_PTR_AT(msg, field->offset, upb_Message*) = sub_message;
     UPB_PRIVATE(_upb_Message_SetPresence)(msg, field);
   }
diff --git a/upb/message/copy.c b/upb/message/copy.c
index 11dff7b..a47ab65 100644
--- a/upb/message/copy.c
+++ b/upb/message/copy.c
@@ -19,12 +19,14 @@
 #include "upb/message/internal/array.h"
 #include "upb/message/internal/extension.h"
 #include "upb/message/internal/map.h"
+#include "upb/message/internal/message.h"
 #include "upb/message/map.h"
 #include "upb/message/message.h"
 #include "upb/message/tagged_ptr.h"
 #include "upb/mini_table/extension.h"
 #include "upb/mini_table/field.h"
 #include "upb/mini_table/internal/field.h"
+#include "upb/mini_table/internal/message.h"
 #include "upb/mini_table/internal/size_log2.h"
 #include "upb/mini_table/message.h"
 #include "upb/mini_table/sub.h"
@@ -286,7 +288,7 @@
   if (unknown_size != 0) {
     UPB_ASSERT(ptr);
     // Make a copy into destination arena.
-    if (!upb_Message_AddUnknown(dst, ptr, unknown_size, arena)) {
+    if (!_upb_Message_AddUnknown(dst, ptr, unknown_size, arena)) {
       return NULL;
     }
   }
diff --git a/upb/message/copy_test.cc b/upb/message/copy_test.cc
index 81ebe42..ad50f66 100644
--- a/upb/message/copy_test.cc
+++ b/upb/message/copy_test.cc
@@ -25,6 +25,7 @@
 #include "upb/base/string_view.h"
 #include "upb/mem/arena.h"
 #include "upb/message/accessors.h"
+#include "upb/message/internal/message.h"
 #include "upb/message/map.h"
 #include "upb/message/message.h"
 #include "upb/mini_table/field.h"
@@ -300,7 +301,7 @@
   ASSERT_EQ(status, kUpb_EncodeStatus_Ok);
   std::string unknown_data(data, len);
   // Add unknown data.
-  upb_Message_AddUnknown(msg, data, len, source_arena);
+  _upb_Message_AddUnknown(msg, data, len, source_arena);
   // Create clone.
   upb_Arena* clone_arena = upb_Arena_New();
   protobuf_test_messages_proto2_TestAllTypesProto2* clone =
diff --git a/upb/message/internal/extension.h b/upb/message/internal/extension.h
index c9b8f81..799b32a 100644
--- a/upb/message/internal/extension.h
+++ b/upb/message/internal/extension.h
@@ -8,11 +8,9 @@
 #ifndef UPB_MESSAGE_INTERNAL_EXTENSION_H_
 #define UPB_MESSAGE_INTERNAL_EXTENSION_H_
 
-#include <stddef.h>
-
 #include "upb/base/string_view.h"
 #include "upb/mem/arena.h"
-#include "upb/message/types.h"
+#include "upb/message/message.h"
 #include "upb/mini_table/extension.h"
 
 // Must be last.
diff --git a/upb/message/internal/message.h b/upb/message/internal/message.h
index 47f6c91..216dc01 100644
--- a/upb/message/internal/message.h
+++ b/upb/message/internal/message.h
@@ -67,8 +67,9 @@
   return m->UPB_PRIVATE(size) + sizeof(upb_Message_Internal);
 }
 
-UPB_INLINE upb_Message* UPB_PRIVATE(_upb_Message_New)(
-    const upb_MiniTable* mini_table, upb_Arena* arena) {
+// Inline version upb_Message_New(), for internal use.
+UPB_INLINE upb_Message* _upb_Message_New(const upb_MiniTable* mini_table,
+                                         upb_Arena* arena) {
   size_t size = upb_msg_sizeof(mini_table);
   void* mem = upb_Arena_Malloc(arena, size + sizeof(upb_Message_Internal));
   if (UPB_UNLIKELY(!mem)) return NULL;
@@ -86,6 +87,11 @@
 // Discards the unknown fields for this message only.
 void _upb_Message_DiscardUnknown_shallow(upb_Message* msg);
 
+// Adds unknown data (serialized protobuf data) to the given message.
+// The data is copied into the message instance.
+bool _upb_Message_AddUnknown(upb_Message* msg, const char* data, size_t len,
+                             upb_Arena* arena);
+
 bool UPB_PRIVATE(_upb_Message_Realloc)(upb_Message* msg, size_t need,
                                        upb_Arena* arena);
 
diff --git a/upb/message/message.c b/upb/message/message.c
index 4a8631e..01a8814 100644
--- a/upb/message/message.c
+++ b/upb/message/message.c
@@ -15,8 +15,13 @@
 
 static const size_t message_overhead = sizeof(upb_Message_InternalData);
 
-bool upb_Message_AddUnknown(upb_Message* msg, const char* data, size_t len,
-                            upb_Arena* arena) {
+upb_Message* upb_Message_New(const upb_MiniTable* mini_table,
+                             upb_Arena* arena) {
+  return _upb_Message_New(mini_table, arena);
+}
+
+bool _upb_Message_AddUnknown(upb_Message* msg, const char* data, size_t len,
+                             upb_Arena* arena) {
   if (!UPB_PRIVATE(_upb_Message_Realloc)(msg, len, arena)) return false;
   upb_Message_Internal* in = upb_Message_Getinternal(msg);
   memcpy(UPB_PTR_AT(in->internal, in->internal->unknown_end, char), data, len);
diff --git a/upb/message/message.h b/upb/message/message.h
index e3520de..80d0796 100644
--- a/upb/message/message.h
+++ b/upb/message/message.h
@@ -15,7 +15,6 @@
 #include <stddef.h>
 
 #include "upb/mem/arena.h"
-#include "upb/message/internal/message.h"
 #include "upb/message/types.h"  // IWYU pragma: export
 #include "upb/mini_table/message.h"
 
@@ -27,15 +26,8 @@
 #endif
 
 // Creates a new message with the given mini_table on the given arena.
-UPB_API_INLINE upb_Message* upb_Message_New(const upb_MiniTable* mini_table,
-                                            upb_Arena* arena) {
-  return UPB_PRIVATE(_upb_Message_New)(mini_table, arena);
-}
-
-// Adds unknown data (serialized protobuf data) to the given message.
-// The data is copied into the message instance.
-bool upb_Message_AddUnknown(upb_Message* msg, const char* data, size_t len,
-                            upb_Arena* arena);
+UPB_API upb_Message* upb_Message_New(const upb_MiniTable* mini_table,
+                                     upb_Arena* arena);
 
 // Returns a reference to the message's unknown data.
 const char* upb_Message_GetUnknown(const upb_Message* msg, size_t* len);
diff --git a/upb/message/promote.c b/upb/message/promote.c
index acfe0e4e..e33af5b 100644
--- a/upb/message/promote.c
+++ b/upb/message/promote.c
@@ -18,6 +18,7 @@
 #include "upb/message/internal/accessors.h"
 #include "upb/message/internal/array.h"
 #include "upb/message/internal/extension.h"
+#include "upb/message/internal/message.h"
 #include "upb/message/map.h"
 #include "upb/message/message.h"
 #include "upb/message/tagged_ptr.h"
@@ -41,7 +42,7 @@
     int decode_options, upb_Arena* arena) {
   upb_UnknownToMessageRet ret;
   ret.message =
-      base_message ? base_message : upb_Message_New(mini_table, arena);
+      base_message ? base_message : _upb_Message_New(mini_table, arena);
   if (!ret.message) {
     ret.status = kUpb_UnknownToMessage_OutOfMemory;
     return ret;
diff --git a/upb/message/promote_test.cc b/upb/message/promote_test.cc
index e0f38a1..ee4750d 100644
--- a/upb/message/promote_test.cc
+++ b/upb/message/promote_test.cc
@@ -29,6 +29,7 @@
 #include "upb/message/array.h"
 #include "upb/message/copy.h"
 #include "upb/message/internal/extension.h"
+#include "upb/message/internal/message.h"
 #include "upb/message/map.h"
 #include "upb/message/message.h"
 #include "upb/message/tagged_ptr.h"
@@ -324,7 +325,7 @@
   // If we parse without allowing unlinked objects, the parse will fail.
   // TODO: re-enable this test once the old method of tree shaking is
   // removed
-  // upb_Message* fail_msg = upb_Message_New(mini_table, arena.ptr());
+  // upb_Message* fail_msg = _upb_Message_New(mini_table, arena.ptr());
   // decode_status =
   //     upb_Decode(serialized, serialized_size, fail_msg, mini_table, nullptr,
   //     0,
@@ -332,7 +333,7 @@
   // EXPECT_EQ(decode_status, kUpb_DecodeStatus_UnlinkedSubMessage);
 
   // if we parse while allowing unlinked objects, the parse will succeed.
-  upb_Message* msg = upb_Message_New(mini_table, arena.ptr());
+  upb_Message* msg = _upb_Message_New(mini_table, arena.ptr());
   decode_status =
       upb_Decode(serialized, serialized_size, msg, mini_table, nullptr,
                  kUpb_DecodeOption_ExperimentalAllowUnlinked, arena.ptr());
@@ -398,7 +399,7 @@
   upb_MiniTable* mini_table = CreateMiniTableWithEmptySubTables(arena.ptr());
 
   // Parse twice without linking the MiniTable.
-  upb_Message* msg = upb_Message_New(mini_table, arena.ptr());
+  upb_Message* msg = _upb_Message_New(mini_table, arena.ptr());
   upb_DecodeStatus decode_status =
       upb_Decode(serialized, serialized_size, msg, mini_table, nullptr,
                  kUpb_DecodeOption_ExperimentalAllowUnlinked, arena.ptr());
@@ -453,7 +454,7 @@
   upb_MiniTable* mini_table = CreateMiniTableWithEmptySubTables(arena.ptr());
 
   // Parse once without linking the MiniTable.
-  upb_Message* msg = upb_Message_New(mini_table, arena.ptr());
+  upb_Message* msg = _upb_Message_New(mini_table, arena.ptr());
   upb_DecodeStatus decode_status =
       upb_Decode(serialized, serialized_size, msg, mini_table, nullptr,
                  kUpb_DecodeOption_ExperimentalAllowUnlinked, arena.ptr());
@@ -511,7 +512,7 @@
   // If we parse without allowing unlinked objects, the parse will fail.
   // TODO: re-enable this test once the old method of tree shaking is
   // removed
-  // upb_Message* fail_msg = upb_Message_New(mini_table, arena.ptr());
+  // upb_Message* fail_msg = _upb_Message_New(mini_table, arena.ptr());
   // decode_status =
   //     upb_Decode(serialized, serialized_size, fail_msg, mini_table, nullptr,
   //     0,
@@ -519,7 +520,7 @@
   // EXPECT_EQ(decode_status, kUpb_DecodeStatus_UnlinkedSubMessage);
 
   // if we parse while allowing unlinked objects, the parse will succeed.
-  upb_Message* msg = upb_Message_New(mini_table, arena.ptr());
+  upb_Message* msg = _upb_Message_New(mini_table, arena.ptr());
   decode_status =
       upb_Decode(serialized, serialized_size, msg, mini_table, nullptr,
                  kUpb_DecodeOption_ExperimentalAllowUnlinked, arena.ptr());
@@ -585,14 +586,14 @@
       CreateMiniTableWithEmptySubTablesForMaps(arena.ptr());
 
   // If we parse without allowing unlinked objects, the parse will fail.
-  upb_Message* fail_msg1 = upb_Message_New(mini_table, arena.ptr());
+  upb_Message* fail_msg1 = _upb_Message_New(mini_table, arena.ptr());
   upb_DecodeStatus decode_status =
       upb_Decode(serialized, serialized_size, fail_msg1, mini_table, nullptr, 0,
                  arena.ptr());
   EXPECT_EQ(decode_status, kUpb_DecodeStatus_UnlinkedSubMessage);
 
   // if we parse while allowing unlinked objects, the parse will succeed.
-  upb_Message* msg = upb_Message_New(mini_table, arena.ptr());
+  upb_Message* msg = _upb_Message_New(mini_table, arena.ptr());
   decode_status =
       upb_Decode(serialized, serialized_size, msg, mini_table, nullptr,
                  kUpb_DecodeOption_ExperimentalAllowUnlinked, arena.ptr());
@@ -699,7 +700,7 @@
                                                              &serialized_size);
 
   upb_MiniTable* mini_table = CreateMiniTableWithEmptySubTablesOld(arena);
-  upb_Message* msg = upb_Message_New(mini_table, arena);
+  upb_Message* msg = _upb_Message_New(mini_table, arena);
   upb_DecodeStatus decode_status = upb_Decode(serialized, serialized_size, msg,
                                               mini_table, nullptr, 0, arena);
   EXPECT_EQ(decode_status, kUpb_DecodeStatus_Ok);
@@ -746,7 +747,7 @@
                                                              &serialized_size);
 
   upb_MiniTable* mini_table = CreateMiniTableWithEmptySubTablesOld(arena);
-  upb_Message* msg = upb_Message_New(mini_table, arena);
+  upb_Message* msg = _upb_Message_New(mini_table, arena);
   upb_DecodeStatus decode_status = upb_Decode(serialized, serialized_size, msg,
                                               mini_table, nullptr, 0, arena);
   EXPECT_EQ(decode_status, kUpb_DecodeStatus_Ok);
@@ -804,7 +805,7 @@
   upb_MiniTable* mini_table =
       CreateMiniTableWithEmptySubTablesForMapsOld(arena);
   upb_MiniTable* map_entry_mini_table = CreateMapEntryMiniTableOld(arena);
-  upb_Message* msg = upb_Message_New(mini_table, arena);
+  upb_Message* msg = _upb_Message_New(mini_table, arena);
   const int decode_options = upb_DecodeOptions_MaxDepth(0);
   upb_DecodeStatus decode_status =
       upb_Decode(serialized, serialized_size, msg, mini_table, nullptr,
diff --git a/upb/reflection/stage0/google/protobuf/descriptor.upb.h b/upb/reflection/stage0/google/protobuf/descriptor.upb.h
index d262e4a..9e3bc66 100644
--- a/upb/reflection/stage0/google/protobuf/descriptor.upb.h
+++ b/upb/reflection/stage0/google/protobuf/descriptor.upb.h
@@ -236,7 +236,7 @@
 /* google.protobuf.FileDescriptorSet */
 
 UPB_INLINE google_protobuf_FileDescriptorSet* google_protobuf_FileDescriptorSet_new(upb_Arena* arena) {
-  return (google_protobuf_FileDescriptorSet*)upb_Message_New(google__protobuf__FileDescriptorSet_msg_init(), arena);
+  return (google_protobuf_FileDescriptorSet*)_upb_Message_New(google__protobuf__FileDescriptorSet_msg_init(), arena);
 }
 UPB_INLINE google_protobuf_FileDescriptorSet* google_protobuf_FileDescriptorSet_parse(const char* buf, size_t size, upb_Arena* arena) {
   google_protobuf_FileDescriptorSet* ret = google_protobuf_FileDescriptorSet_new(arena);
@@ -327,7 +327,7 @@
   if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
     return NULL;
   }
-  struct google_protobuf_FileDescriptorProto* sub = (struct google_protobuf_FileDescriptorProto*)upb_Message_New(google__protobuf__FileDescriptorProto_msg_init(), arena);
+  struct google_protobuf_FileDescriptorProto* sub = (struct google_protobuf_FileDescriptorProto*)_upb_Message_New(google__protobuf__FileDescriptorProto_msg_init(), arena);
   if (!arr || !sub) return NULL;
   UPB_PRIVATE(_upb_Array_Set)(arr, arr->size - 1, &sub, sizeof(sub));
   return sub;
@@ -336,7 +336,7 @@
 /* google.protobuf.FileDescriptorProto */
 
 UPB_INLINE google_protobuf_FileDescriptorProto* google_protobuf_FileDescriptorProto_new(upb_Arena* arena) {
-  return (google_protobuf_FileDescriptorProto*)upb_Message_New(google__protobuf__FileDescriptorProto_msg_init(), arena);
+  return (google_protobuf_FileDescriptorProto*)_upb_Message_New(google__protobuf__FileDescriptorProto_msg_init(), arena);
 }
 UPB_INLINE google_protobuf_FileDescriptorProto* google_protobuf_FileDescriptorProto_parse(const char* buf, size_t size, upb_Arena* arena) {
   google_protobuf_FileDescriptorProto* ret = google_protobuf_FileDescriptorProto_new(arena);
@@ -771,7 +771,7 @@
   if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
     return NULL;
   }
-  struct google_protobuf_DescriptorProto* sub = (struct google_protobuf_DescriptorProto*)upb_Message_New(google__protobuf__DescriptorProto_msg_init(), arena);
+  struct google_protobuf_DescriptorProto* sub = (struct google_protobuf_DescriptorProto*)_upb_Message_New(google__protobuf__DescriptorProto_msg_init(), arena);
   if (!arr || !sub) return NULL;
   UPB_PRIVATE(_upb_Array_Set)(arr, arr->size - 1, &sub, sizeof(sub));
   return sub;
@@ -797,7 +797,7 @@
   if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
     return NULL;
   }
-  struct google_protobuf_EnumDescriptorProto* sub = (struct google_protobuf_EnumDescriptorProto*)upb_Message_New(google__protobuf__EnumDescriptorProto_msg_init(), arena);
+  struct google_protobuf_EnumDescriptorProto* sub = (struct google_protobuf_EnumDescriptorProto*)_upb_Message_New(google__protobuf__EnumDescriptorProto_msg_init(), arena);
   if (!arr || !sub) return NULL;
   UPB_PRIVATE(_upb_Array_Set)(arr, arr->size - 1, &sub, sizeof(sub));
   return sub;
@@ -823,7 +823,7 @@
   if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
     return NULL;
   }
-  struct google_protobuf_ServiceDescriptorProto* sub = (struct google_protobuf_ServiceDescriptorProto*)upb_Message_New(google__protobuf__ServiceDescriptorProto_msg_init(), arena);
+  struct google_protobuf_ServiceDescriptorProto* sub = (struct google_protobuf_ServiceDescriptorProto*)_upb_Message_New(google__protobuf__ServiceDescriptorProto_msg_init(), arena);
   if (!arr || !sub) return NULL;
   UPB_PRIVATE(_upb_Array_Set)(arr, arr->size - 1, &sub, sizeof(sub));
   return sub;
@@ -849,7 +849,7 @@
   if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
     return NULL;
   }
-  struct google_protobuf_FieldDescriptorProto* sub = (struct google_protobuf_FieldDescriptorProto*)upb_Message_New(google__protobuf__FieldDescriptorProto_msg_init(), arena);
+  struct google_protobuf_FieldDescriptorProto* sub = (struct google_protobuf_FieldDescriptorProto*)_upb_Message_New(google__protobuf__FieldDescriptorProto_msg_init(), arena);
   if (!arr || !sub) return NULL;
   UPB_PRIVATE(_upb_Array_Set)(arr, arr->size - 1, &sub, sizeof(sub));
   return sub;
@@ -861,7 +861,7 @@
 UPB_INLINE struct google_protobuf_FileOptions* google_protobuf_FileDescriptorProto_mutable_options(google_protobuf_FileDescriptorProto* msg, upb_Arena* arena) {
   struct google_protobuf_FileOptions* sub = (struct google_protobuf_FileOptions*)google_protobuf_FileDescriptorProto_options(msg);
   if (sub == NULL) {
-    sub = (struct google_protobuf_FileOptions*)upb_Message_New(google__protobuf__FileOptions_msg_init(), arena);
+    sub = (struct google_protobuf_FileOptions*)_upb_Message_New(google__protobuf__FileOptions_msg_init(), arena);
     if (sub) google_protobuf_FileDescriptorProto_set_options(msg, sub);
   }
   return sub;
@@ -873,7 +873,7 @@
 UPB_INLINE struct google_protobuf_SourceCodeInfo* google_protobuf_FileDescriptorProto_mutable_source_code_info(google_protobuf_FileDescriptorProto* msg, upb_Arena* arena) {
   struct google_protobuf_SourceCodeInfo* sub = (struct google_protobuf_SourceCodeInfo*)google_protobuf_FileDescriptorProto_source_code_info(msg);
   if (sub == NULL) {
-    sub = (struct google_protobuf_SourceCodeInfo*)upb_Message_New(google__protobuf__SourceCodeInfo_msg_init(), arena);
+    sub = (struct google_protobuf_SourceCodeInfo*)_upb_Message_New(google__protobuf__SourceCodeInfo_msg_init(), arena);
     if (sub) google_protobuf_FileDescriptorProto_set_source_code_info(msg, sub);
   }
   return sub;
@@ -938,7 +938,7 @@
 /* google.protobuf.DescriptorProto */
 
 UPB_INLINE google_protobuf_DescriptorProto* google_protobuf_DescriptorProto_new(upb_Arena* arena) {
-  return (google_protobuf_DescriptorProto*)upb_Message_New(google__protobuf__DescriptorProto_msg_init(), arena);
+  return (google_protobuf_DescriptorProto*)_upb_Message_New(google__protobuf__DescriptorProto_msg_init(), arena);
 }
 UPB_INLINE google_protobuf_DescriptorProto* google_protobuf_DescriptorProto_parse(const char* buf, size_t size, upb_Arena* arena) {
   google_protobuf_DescriptorProto* ret = google_protobuf_DescriptorProto_new(arena);
@@ -1322,7 +1322,7 @@
   if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
     return NULL;
   }
-  struct google_protobuf_FieldDescriptorProto* sub = (struct google_protobuf_FieldDescriptorProto*)upb_Message_New(google__protobuf__FieldDescriptorProto_msg_init(), arena);
+  struct google_protobuf_FieldDescriptorProto* sub = (struct google_protobuf_FieldDescriptorProto*)_upb_Message_New(google__protobuf__FieldDescriptorProto_msg_init(), arena);
   if (!arr || !sub) return NULL;
   UPB_PRIVATE(_upb_Array_Set)(arr, arr->size - 1, &sub, sizeof(sub));
   return sub;
@@ -1348,7 +1348,7 @@
   if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
     return NULL;
   }
-  struct google_protobuf_DescriptorProto* sub = (struct google_protobuf_DescriptorProto*)upb_Message_New(google__protobuf__DescriptorProto_msg_init(), arena);
+  struct google_protobuf_DescriptorProto* sub = (struct google_protobuf_DescriptorProto*)_upb_Message_New(google__protobuf__DescriptorProto_msg_init(), arena);
   if (!arr || !sub) return NULL;
   UPB_PRIVATE(_upb_Array_Set)(arr, arr->size - 1, &sub, sizeof(sub));
   return sub;
@@ -1374,7 +1374,7 @@
   if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
     return NULL;
   }
-  struct google_protobuf_EnumDescriptorProto* sub = (struct google_protobuf_EnumDescriptorProto*)upb_Message_New(google__protobuf__EnumDescriptorProto_msg_init(), arena);
+  struct google_protobuf_EnumDescriptorProto* sub = (struct google_protobuf_EnumDescriptorProto*)_upb_Message_New(google__protobuf__EnumDescriptorProto_msg_init(), arena);
   if (!arr || !sub) return NULL;
   UPB_PRIVATE(_upb_Array_Set)(arr, arr->size - 1, &sub, sizeof(sub));
   return sub;
@@ -1400,7 +1400,7 @@
   if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
     return NULL;
   }
-  struct google_protobuf_DescriptorProto_ExtensionRange* sub = (struct google_protobuf_DescriptorProto_ExtensionRange*)upb_Message_New(google__protobuf__DescriptorProto__ExtensionRange_msg_init(), arena);
+  struct google_protobuf_DescriptorProto_ExtensionRange* sub = (struct google_protobuf_DescriptorProto_ExtensionRange*)_upb_Message_New(google__protobuf__DescriptorProto__ExtensionRange_msg_init(), arena);
   if (!arr || !sub) return NULL;
   UPB_PRIVATE(_upb_Array_Set)(arr, arr->size - 1, &sub, sizeof(sub));
   return sub;
@@ -1426,7 +1426,7 @@
   if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
     return NULL;
   }
-  struct google_protobuf_FieldDescriptorProto* sub = (struct google_protobuf_FieldDescriptorProto*)upb_Message_New(google__protobuf__FieldDescriptorProto_msg_init(), arena);
+  struct google_protobuf_FieldDescriptorProto* sub = (struct google_protobuf_FieldDescriptorProto*)_upb_Message_New(google__protobuf__FieldDescriptorProto_msg_init(), arena);
   if (!arr || !sub) return NULL;
   UPB_PRIVATE(_upb_Array_Set)(arr, arr->size - 1, &sub, sizeof(sub));
   return sub;
@@ -1438,7 +1438,7 @@
 UPB_INLINE struct google_protobuf_MessageOptions* google_protobuf_DescriptorProto_mutable_options(google_protobuf_DescriptorProto* msg, upb_Arena* arena) {
   struct google_protobuf_MessageOptions* sub = (struct google_protobuf_MessageOptions*)google_protobuf_DescriptorProto_options(msg);
   if (sub == NULL) {
-    sub = (struct google_protobuf_MessageOptions*)upb_Message_New(google__protobuf__MessageOptions_msg_init(), arena);
+    sub = (struct google_protobuf_MessageOptions*)_upb_Message_New(google__protobuf__MessageOptions_msg_init(), arena);
     if (sub) google_protobuf_DescriptorProto_set_options(msg, sub);
   }
   return sub;
@@ -1464,7 +1464,7 @@
   if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
     return NULL;
   }
-  struct google_protobuf_OneofDescriptorProto* sub = (struct google_protobuf_OneofDescriptorProto*)upb_Message_New(google__protobuf__OneofDescriptorProto_msg_init(), arena);
+  struct google_protobuf_OneofDescriptorProto* sub = (struct google_protobuf_OneofDescriptorProto*)_upb_Message_New(google__protobuf__OneofDescriptorProto_msg_init(), arena);
   if (!arr || !sub) return NULL;
   UPB_PRIVATE(_upb_Array_Set)(arr, arr->size - 1, &sub, sizeof(sub));
   return sub;
@@ -1490,7 +1490,7 @@
   if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
     return NULL;
   }
-  struct google_protobuf_DescriptorProto_ReservedRange* sub = (struct google_protobuf_DescriptorProto_ReservedRange*)upb_Message_New(google__protobuf__DescriptorProto__ReservedRange_msg_init(), arena);
+  struct google_protobuf_DescriptorProto_ReservedRange* sub = (struct google_protobuf_DescriptorProto_ReservedRange*)_upb_Message_New(google__protobuf__DescriptorProto__ReservedRange_msg_init(), arena);
   if (!arr || !sub) return NULL;
   UPB_PRIVATE(_upb_Array_Set)(arr, arr->size - 1, &sub, sizeof(sub));
   return sub;
@@ -1523,7 +1523,7 @@
 /* google.protobuf.DescriptorProto.ExtensionRange */
 
 UPB_INLINE google_protobuf_DescriptorProto_ExtensionRange* google_protobuf_DescriptorProto_ExtensionRange_new(upb_Arena* arena) {
-  return (google_protobuf_DescriptorProto_ExtensionRange*)upb_Message_New(google__protobuf__DescriptorProto__ExtensionRange_msg_init(), arena);
+  return (google_protobuf_DescriptorProto_ExtensionRange*)_upb_Message_New(google__protobuf__DescriptorProto__ExtensionRange_msg_init(), arena);
 }
 UPB_INLINE google_protobuf_DescriptorProto_ExtensionRange* google_protobuf_DescriptorProto_ExtensionRange_parse(const char* buf, size_t size, upb_Arena* arena) {
   google_protobuf_DescriptorProto_ExtensionRange* ret = google_protobuf_DescriptorProto_ExtensionRange_new(arena);
@@ -1616,7 +1616,7 @@
 UPB_INLINE struct google_protobuf_ExtensionRangeOptions* google_protobuf_DescriptorProto_ExtensionRange_mutable_options(google_protobuf_DescriptorProto_ExtensionRange* msg, upb_Arena* arena) {
   struct google_protobuf_ExtensionRangeOptions* sub = (struct google_protobuf_ExtensionRangeOptions*)google_protobuf_DescriptorProto_ExtensionRange_options(msg);
   if (sub == NULL) {
-    sub = (struct google_protobuf_ExtensionRangeOptions*)upb_Message_New(google__protobuf__ExtensionRangeOptions_msg_init(), arena);
+    sub = (struct google_protobuf_ExtensionRangeOptions*)_upb_Message_New(google__protobuf__ExtensionRangeOptions_msg_init(), arena);
     if (sub) google_protobuf_DescriptorProto_ExtensionRange_set_options(msg, sub);
   }
   return sub;
@@ -1625,7 +1625,7 @@
 /* google.protobuf.DescriptorProto.ReservedRange */
 
 UPB_INLINE google_protobuf_DescriptorProto_ReservedRange* google_protobuf_DescriptorProto_ReservedRange_new(upb_Arena* arena) {
-  return (google_protobuf_DescriptorProto_ReservedRange*)upb_Message_New(google__protobuf__DescriptorProto__ReservedRange_msg_init(), arena);
+  return (google_protobuf_DescriptorProto_ReservedRange*)_upb_Message_New(google__protobuf__DescriptorProto__ReservedRange_msg_init(), arena);
 }
 UPB_INLINE google_protobuf_DescriptorProto_ReservedRange* google_protobuf_DescriptorProto_ReservedRange_parse(const char* buf, size_t size, upb_Arena* arena) {
   google_protobuf_DescriptorProto_ReservedRange* ret = google_protobuf_DescriptorProto_ReservedRange_new(arena);
@@ -1700,7 +1700,7 @@
 /* google.protobuf.ExtensionRangeOptions */
 
 UPB_INLINE google_protobuf_ExtensionRangeOptions* google_protobuf_ExtensionRangeOptions_new(upb_Arena* arena) {
-  return (google_protobuf_ExtensionRangeOptions*)upb_Message_New(google__protobuf__ExtensionRangeOptions_msg_init(), arena);
+  return (google_protobuf_ExtensionRangeOptions*)_upb_Message_New(google__protobuf__ExtensionRangeOptions_msg_init(), arena);
 }
 UPB_INLINE google_protobuf_ExtensionRangeOptions* google_protobuf_ExtensionRangeOptions_parse(const char* buf, size_t size, upb_Arena* arena) {
   google_protobuf_ExtensionRangeOptions* ret = google_protobuf_ExtensionRangeOptions_new(arena);
@@ -1858,7 +1858,7 @@
   if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
     return NULL;
   }
-  struct google_protobuf_ExtensionRangeOptions_Declaration* sub = (struct google_protobuf_ExtensionRangeOptions_Declaration*)upb_Message_New(google__protobuf__ExtensionRangeOptions__Declaration_msg_init(), arena);
+  struct google_protobuf_ExtensionRangeOptions_Declaration* sub = (struct google_protobuf_ExtensionRangeOptions_Declaration*)_upb_Message_New(google__protobuf__ExtensionRangeOptions__Declaration_msg_init(), arena);
   if (!arr || !sub) return NULL;
   UPB_PRIVATE(_upb_Array_Set)(arr, arr->size - 1, &sub, sizeof(sub));
   return sub;
@@ -1874,7 +1874,7 @@
 UPB_INLINE struct google_protobuf_FeatureSet* google_protobuf_ExtensionRangeOptions_mutable_features(google_protobuf_ExtensionRangeOptions* msg, upb_Arena* arena) {
   struct google_protobuf_FeatureSet* sub = (struct google_protobuf_FeatureSet*)google_protobuf_ExtensionRangeOptions_features(msg);
   if (sub == NULL) {
-    sub = (struct google_protobuf_FeatureSet*)upb_Message_New(google__protobuf__FeatureSet_msg_init(), arena);
+    sub = (struct google_protobuf_FeatureSet*)_upb_Message_New(google__protobuf__FeatureSet_msg_init(), arena);
     if (sub) google_protobuf_ExtensionRangeOptions_set_features(msg, sub);
   }
   return sub;
@@ -1900,7 +1900,7 @@
   if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
     return NULL;
   }
-  struct google_protobuf_UninterpretedOption* sub = (struct google_protobuf_UninterpretedOption*)upb_Message_New(google__protobuf__UninterpretedOption_msg_init(), arena);
+  struct google_protobuf_UninterpretedOption* sub = (struct google_protobuf_UninterpretedOption*)_upb_Message_New(google__protobuf__UninterpretedOption_msg_init(), arena);
   if (!arr || !sub) return NULL;
   UPB_PRIVATE(_upb_Array_Set)(arr, arr->size - 1, &sub, sizeof(sub));
   return sub;
@@ -1909,7 +1909,7 @@
 /* google.protobuf.ExtensionRangeOptions.Declaration */
 
 UPB_INLINE google_protobuf_ExtensionRangeOptions_Declaration* google_protobuf_ExtensionRangeOptions_Declaration_new(upb_Arena* arena) {
-  return (google_protobuf_ExtensionRangeOptions_Declaration*)upb_Message_New(google__protobuf__ExtensionRangeOptions__Declaration_msg_init(), arena);
+  return (google_protobuf_ExtensionRangeOptions_Declaration*)_upb_Message_New(google__protobuf__ExtensionRangeOptions__Declaration_msg_init(), arena);
 }
 UPB_INLINE google_protobuf_ExtensionRangeOptions_Declaration* google_protobuf_ExtensionRangeOptions_Declaration_parse(const char* buf, size_t size, upb_Arena* arena) {
   google_protobuf_ExtensionRangeOptions_Declaration* ret = google_protobuf_ExtensionRangeOptions_Declaration_new(arena);
@@ -2041,7 +2041,7 @@
 /* google.protobuf.FieldDescriptorProto */
 
 UPB_INLINE google_protobuf_FieldDescriptorProto* google_protobuf_FieldDescriptorProto_new(upb_Arena* arena) {
-  return (google_protobuf_FieldDescriptorProto*)upb_Message_New(google__protobuf__FieldDescriptorProto_msg_init(), arena);
+  return (google_protobuf_FieldDescriptorProto*)_upb_Message_New(google__protobuf__FieldDescriptorProto_msg_init(), arena);
 }
 UPB_INLINE google_protobuf_FieldDescriptorProto* google_protobuf_FieldDescriptorProto_parse(const char* buf, size_t size, upb_Arena* arena) {
   google_protobuf_FieldDescriptorProto* ret = google_protobuf_FieldDescriptorProto_new(arena);
@@ -2274,7 +2274,7 @@
 UPB_INLINE struct google_protobuf_FieldOptions* google_protobuf_FieldDescriptorProto_mutable_options(google_protobuf_FieldDescriptorProto* msg, upb_Arena* arena) {
   struct google_protobuf_FieldOptions* sub = (struct google_protobuf_FieldOptions*)google_protobuf_FieldDescriptorProto_options(msg);
   if (sub == NULL) {
-    sub = (struct google_protobuf_FieldOptions*)upb_Message_New(google__protobuf__FieldOptions_msg_init(), arena);
+    sub = (struct google_protobuf_FieldOptions*)_upb_Message_New(google__protobuf__FieldOptions_msg_init(), arena);
     if (sub) google_protobuf_FieldDescriptorProto_set_options(msg, sub);
   }
   return sub;
@@ -2295,7 +2295,7 @@
 /* google.protobuf.OneofDescriptorProto */
 
 UPB_INLINE google_protobuf_OneofDescriptorProto* google_protobuf_OneofDescriptorProto_new(upb_Arena* arena) {
-  return (google_protobuf_OneofDescriptorProto*)upb_Message_New(google__protobuf__OneofDescriptorProto_msg_init(), arena);
+  return (google_protobuf_OneofDescriptorProto*)_upb_Message_New(google__protobuf__OneofDescriptorProto_msg_init(), arena);
 }
 UPB_INLINE google_protobuf_OneofDescriptorProto* google_protobuf_OneofDescriptorProto_parse(const char* buf, size_t size, upb_Arena* arena) {
   google_protobuf_OneofDescriptorProto* ret = google_protobuf_OneofDescriptorProto_new(arena);
@@ -2369,7 +2369,7 @@
 UPB_INLINE struct google_protobuf_OneofOptions* google_protobuf_OneofDescriptorProto_mutable_options(google_protobuf_OneofDescriptorProto* msg, upb_Arena* arena) {
   struct google_protobuf_OneofOptions* sub = (struct google_protobuf_OneofOptions*)google_protobuf_OneofDescriptorProto_options(msg);
   if (sub == NULL) {
-    sub = (struct google_protobuf_OneofOptions*)upb_Message_New(google__protobuf__OneofOptions_msg_init(), arena);
+    sub = (struct google_protobuf_OneofOptions*)_upb_Message_New(google__protobuf__OneofOptions_msg_init(), arena);
     if (sub) google_protobuf_OneofDescriptorProto_set_options(msg, sub);
   }
   return sub;
@@ -2378,7 +2378,7 @@
 /* google.protobuf.EnumDescriptorProto */
 
 UPB_INLINE google_protobuf_EnumDescriptorProto* google_protobuf_EnumDescriptorProto_new(upb_Arena* arena) {
-  return (google_protobuf_EnumDescriptorProto*)upb_Message_New(google__protobuf__EnumDescriptorProto_msg_init(), arena);
+  return (google_protobuf_EnumDescriptorProto*)_upb_Message_New(google__protobuf__EnumDescriptorProto_msg_init(), arena);
 }
 UPB_INLINE google_protobuf_EnumDescriptorProto* google_protobuf_EnumDescriptorProto_parse(const char* buf, size_t size, upb_Arena* arena) {
   google_protobuf_EnumDescriptorProto* ret = google_protobuf_EnumDescriptorProto_new(arena);
@@ -2577,7 +2577,7 @@
   if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
     return NULL;
   }
-  struct google_protobuf_EnumValueDescriptorProto* sub = (struct google_protobuf_EnumValueDescriptorProto*)upb_Message_New(google__protobuf__EnumValueDescriptorProto_msg_init(), arena);
+  struct google_protobuf_EnumValueDescriptorProto* sub = (struct google_protobuf_EnumValueDescriptorProto*)_upb_Message_New(google__protobuf__EnumValueDescriptorProto_msg_init(), arena);
   if (!arr || !sub) return NULL;
   UPB_PRIVATE(_upb_Array_Set)(arr, arr->size - 1, &sub, sizeof(sub));
   return sub;
@@ -2589,7 +2589,7 @@
 UPB_INLINE struct google_protobuf_EnumOptions* google_protobuf_EnumDescriptorProto_mutable_options(google_protobuf_EnumDescriptorProto* msg, upb_Arena* arena) {
   struct google_protobuf_EnumOptions* sub = (struct google_protobuf_EnumOptions*)google_protobuf_EnumDescriptorProto_options(msg);
   if (sub == NULL) {
-    sub = (struct google_protobuf_EnumOptions*)upb_Message_New(google__protobuf__EnumOptions_msg_init(), arena);
+    sub = (struct google_protobuf_EnumOptions*)_upb_Message_New(google__protobuf__EnumOptions_msg_init(), arena);
     if (sub) google_protobuf_EnumDescriptorProto_set_options(msg, sub);
   }
   return sub;
@@ -2615,7 +2615,7 @@
   if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
     return NULL;
   }
-  struct google_protobuf_EnumDescriptorProto_EnumReservedRange* sub = (struct google_protobuf_EnumDescriptorProto_EnumReservedRange*)upb_Message_New(google__protobuf__EnumDescriptorProto__EnumReservedRange_msg_init(), arena);
+  struct google_protobuf_EnumDescriptorProto_EnumReservedRange* sub = (struct google_protobuf_EnumDescriptorProto_EnumReservedRange*)_upb_Message_New(google__protobuf__EnumDescriptorProto__EnumReservedRange_msg_init(), arena);
   if (!arr || !sub) return NULL;
   UPB_PRIVATE(_upb_Array_Set)(arr, arr->size - 1, &sub, sizeof(sub));
   return sub;
@@ -2648,7 +2648,7 @@
 /* google.protobuf.EnumDescriptorProto.EnumReservedRange */
 
 UPB_INLINE google_protobuf_EnumDescriptorProto_EnumReservedRange* google_protobuf_EnumDescriptorProto_EnumReservedRange_new(upb_Arena* arena) {
-  return (google_protobuf_EnumDescriptorProto_EnumReservedRange*)upb_Message_New(google__protobuf__EnumDescriptorProto__EnumReservedRange_msg_init(), arena);
+  return (google_protobuf_EnumDescriptorProto_EnumReservedRange*)_upb_Message_New(google__protobuf__EnumDescriptorProto__EnumReservedRange_msg_init(), arena);
 }
 UPB_INLINE google_protobuf_EnumDescriptorProto_EnumReservedRange* google_protobuf_EnumDescriptorProto_EnumReservedRange_parse(const char* buf, size_t size, upb_Arena* arena) {
   google_protobuf_EnumDescriptorProto_EnumReservedRange* ret = google_protobuf_EnumDescriptorProto_EnumReservedRange_new(arena);
@@ -2723,7 +2723,7 @@
 /* google.protobuf.EnumValueDescriptorProto */
 
 UPB_INLINE google_protobuf_EnumValueDescriptorProto* google_protobuf_EnumValueDescriptorProto_new(upb_Arena* arena) {
-  return (google_protobuf_EnumValueDescriptorProto*)upb_Message_New(google__protobuf__EnumValueDescriptorProto_msg_init(), arena);
+  return (google_protobuf_EnumValueDescriptorProto*)_upb_Message_New(google__protobuf__EnumValueDescriptorProto_msg_init(), arena);
 }
 UPB_INLINE google_protobuf_EnumValueDescriptorProto* google_protobuf_EnumValueDescriptorProto_parse(const char* buf, size_t size, upb_Arena* arena) {
   google_protobuf_EnumValueDescriptorProto* ret = google_protobuf_EnumValueDescriptorProto_new(arena);
@@ -2816,7 +2816,7 @@
 UPB_INLINE struct google_protobuf_EnumValueOptions* google_protobuf_EnumValueDescriptorProto_mutable_options(google_protobuf_EnumValueDescriptorProto* msg, upb_Arena* arena) {
   struct google_protobuf_EnumValueOptions* sub = (struct google_protobuf_EnumValueOptions*)google_protobuf_EnumValueDescriptorProto_options(msg);
   if (sub == NULL) {
-    sub = (struct google_protobuf_EnumValueOptions*)upb_Message_New(google__protobuf__EnumValueOptions_msg_init(), arena);
+    sub = (struct google_protobuf_EnumValueOptions*)_upb_Message_New(google__protobuf__EnumValueOptions_msg_init(), arena);
     if (sub) google_protobuf_EnumValueDescriptorProto_set_options(msg, sub);
   }
   return sub;
@@ -2825,7 +2825,7 @@
 /* google.protobuf.ServiceDescriptorProto */
 
 UPB_INLINE google_protobuf_ServiceDescriptorProto* google_protobuf_ServiceDescriptorProto_new(upb_Arena* arena) {
-  return (google_protobuf_ServiceDescriptorProto*)upb_Message_New(google__protobuf__ServiceDescriptorProto_msg_init(), arena);
+  return (google_protobuf_ServiceDescriptorProto*)_upb_Message_New(google__protobuf__ServiceDescriptorProto_msg_init(), arena);
 }
 UPB_INLINE google_protobuf_ServiceDescriptorProto* google_protobuf_ServiceDescriptorProto_parse(const char* buf, size_t size, upb_Arena* arena) {
   google_protobuf_ServiceDescriptorProto* ret = google_protobuf_ServiceDescriptorProto_new(arena);
@@ -2950,7 +2950,7 @@
   if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
     return NULL;
   }
-  struct google_protobuf_MethodDescriptorProto* sub = (struct google_protobuf_MethodDescriptorProto*)upb_Message_New(google__protobuf__MethodDescriptorProto_msg_init(), arena);
+  struct google_protobuf_MethodDescriptorProto* sub = (struct google_protobuf_MethodDescriptorProto*)_upb_Message_New(google__protobuf__MethodDescriptorProto_msg_init(), arena);
   if (!arr || !sub) return NULL;
   UPB_PRIVATE(_upb_Array_Set)(arr, arr->size - 1, &sub, sizeof(sub));
   return sub;
@@ -2962,7 +2962,7 @@
 UPB_INLINE struct google_protobuf_ServiceOptions* google_protobuf_ServiceDescriptorProto_mutable_options(google_protobuf_ServiceDescriptorProto* msg, upb_Arena* arena) {
   struct google_protobuf_ServiceOptions* sub = (struct google_protobuf_ServiceOptions*)google_protobuf_ServiceDescriptorProto_options(msg);
   if (sub == NULL) {
-    sub = (struct google_protobuf_ServiceOptions*)upb_Message_New(google__protobuf__ServiceOptions_msg_init(), arena);
+    sub = (struct google_protobuf_ServiceOptions*)_upb_Message_New(google__protobuf__ServiceOptions_msg_init(), arena);
     if (sub) google_protobuf_ServiceDescriptorProto_set_options(msg, sub);
   }
   return sub;
@@ -2971,7 +2971,7 @@
 /* google.protobuf.MethodDescriptorProto */
 
 UPB_INLINE google_protobuf_MethodDescriptorProto* google_protobuf_MethodDescriptorProto_new(upb_Arena* arena) {
-  return (google_protobuf_MethodDescriptorProto*)upb_Message_New(google__protobuf__MethodDescriptorProto_msg_init(), arena);
+  return (google_protobuf_MethodDescriptorProto*)_upb_Message_New(google__protobuf__MethodDescriptorProto_msg_init(), arena);
 }
 UPB_INLINE google_protobuf_MethodDescriptorProto* google_protobuf_MethodDescriptorProto_parse(const char* buf, size_t size, upb_Arena* arena) {
   google_protobuf_MethodDescriptorProto* ret = google_protobuf_MethodDescriptorProto_new(arena);
@@ -3113,7 +3113,7 @@
 UPB_INLINE struct google_protobuf_MethodOptions* google_protobuf_MethodDescriptorProto_mutable_options(google_protobuf_MethodDescriptorProto* msg, upb_Arena* arena) {
   struct google_protobuf_MethodOptions* sub = (struct google_protobuf_MethodOptions*)google_protobuf_MethodDescriptorProto_options(msg);
   if (sub == NULL) {
-    sub = (struct google_protobuf_MethodOptions*)upb_Message_New(google__protobuf__MethodOptions_msg_init(), arena);
+    sub = (struct google_protobuf_MethodOptions*)_upb_Message_New(google__protobuf__MethodOptions_msg_init(), arena);
     if (sub) google_protobuf_MethodDescriptorProto_set_options(msg, sub);
   }
   return sub;
@@ -3130,7 +3130,7 @@
 /* google.protobuf.FileOptions */
 
 UPB_INLINE google_protobuf_FileOptions* google_protobuf_FileOptions_new(upb_Arena* arena) {
-  return (google_protobuf_FileOptions*)upb_Message_New(google__protobuf__FileOptions_msg_init(), arena);
+  return (google_protobuf_FileOptions*)_upb_Message_New(google__protobuf__FileOptions_msg_init(), arena);
 }
 UPB_INLINE google_protobuf_FileOptions* google_protobuf_FileOptions_parse(const char* buf, size_t size, upb_Arena* arena) {
   google_protobuf_FileOptions* ret = google_protobuf_FileOptions_new(arena);
@@ -3602,7 +3602,7 @@
 UPB_INLINE struct google_protobuf_FeatureSet* google_protobuf_FileOptions_mutable_features(google_protobuf_FileOptions* msg, upb_Arena* arena) {
   struct google_protobuf_FeatureSet* sub = (struct google_protobuf_FeatureSet*)google_protobuf_FileOptions_features(msg);
   if (sub == NULL) {
-    sub = (struct google_protobuf_FeatureSet*)upb_Message_New(google__protobuf__FeatureSet_msg_init(), arena);
+    sub = (struct google_protobuf_FeatureSet*)_upb_Message_New(google__protobuf__FeatureSet_msg_init(), arena);
     if (sub) google_protobuf_FileOptions_set_features(msg, sub);
   }
   return sub;
@@ -3628,7 +3628,7 @@
   if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
     return NULL;
   }
-  struct google_protobuf_UninterpretedOption* sub = (struct google_protobuf_UninterpretedOption*)upb_Message_New(google__protobuf__UninterpretedOption_msg_init(), arena);
+  struct google_protobuf_UninterpretedOption* sub = (struct google_protobuf_UninterpretedOption*)_upb_Message_New(google__protobuf__UninterpretedOption_msg_init(), arena);
   if (!arr || !sub) return NULL;
   UPB_PRIVATE(_upb_Array_Set)(arr, arr->size - 1, &sub, sizeof(sub));
   return sub;
@@ -3637,7 +3637,7 @@
 /* google.protobuf.MessageOptions */
 
 UPB_INLINE google_protobuf_MessageOptions* google_protobuf_MessageOptions_new(upb_Arena* arena) {
-  return (google_protobuf_MessageOptions*)upb_Message_New(google__protobuf__MessageOptions_msg_init(), arena);
+  return (google_protobuf_MessageOptions*)_upb_Message_New(google__protobuf__MessageOptions_msg_init(), arena);
 }
 UPB_INLINE google_protobuf_MessageOptions* google_protobuf_MessageOptions_parse(const char* buf, size_t size, upb_Arena* arena) {
   google_protobuf_MessageOptions* ret = google_protobuf_MessageOptions_new(arena);
@@ -3824,7 +3824,7 @@
 UPB_INLINE struct google_protobuf_FeatureSet* google_protobuf_MessageOptions_mutable_features(google_protobuf_MessageOptions* msg, upb_Arena* arena) {
   struct google_protobuf_FeatureSet* sub = (struct google_protobuf_FeatureSet*)google_protobuf_MessageOptions_features(msg);
   if (sub == NULL) {
-    sub = (struct google_protobuf_FeatureSet*)upb_Message_New(google__protobuf__FeatureSet_msg_init(), arena);
+    sub = (struct google_protobuf_FeatureSet*)_upb_Message_New(google__protobuf__FeatureSet_msg_init(), arena);
     if (sub) google_protobuf_MessageOptions_set_features(msg, sub);
   }
   return sub;
@@ -3850,7 +3850,7 @@
   if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
     return NULL;
   }
-  struct google_protobuf_UninterpretedOption* sub = (struct google_protobuf_UninterpretedOption*)upb_Message_New(google__protobuf__UninterpretedOption_msg_init(), arena);
+  struct google_protobuf_UninterpretedOption* sub = (struct google_protobuf_UninterpretedOption*)_upb_Message_New(google__protobuf__UninterpretedOption_msg_init(), arena);
   if (!arr || !sub) return NULL;
   UPB_PRIVATE(_upb_Array_Set)(arr, arr->size - 1, &sub, sizeof(sub));
   return sub;
@@ -3859,7 +3859,7 @@
 /* google.protobuf.FieldOptions */
 
 UPB_INLINE google_protobuf_FieldOptions* google_protobuf_FieldOptions_new(upb_Arena* arena) {
-  return (google_protobuf_FieldOptions*)upb_Message_New(google__protobuf__FieldOptions_msg_init(), arena);
+  return (google_protobuf_FieldOptions*)_upb_Message_New(google__protobuf__FieldOptions_msg_init(), arena);
 }
 UPB_INLINE google_protobuf_FieldOptions* google_protobuf_FieldOptions_parse(const char* buf, size_t size, upb_Arena* arena) {
   google_protobuf_FieldOptions* ret = google_protobuf_FieldOptions_new(arena);
@@ -4234,7 +4234,7 @@
   if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
     return NULL;
   }
-  struct google_protobuf_FieldOptions_EditionDefault* sub = (struct google_protobuf_FieldOptions_EditionDefault*)upb_Message_New(google__protobuf__FieldOptions__EditionDefault_msg_init(), arena);
+  struct google_protobuf_FieldOptions_EditionDefault* sub = (struct google_protobuf_FieldOptions_EditionDefault*)_upb_Message_New(google__protobuf__FieldOptions__EditionDefault_msg_init(), arena);
   if (!arr || !sub) return NULL;
   UPB_PRIVATE(_upb_Array_Set)(arr, arr->size - 1, &sub, sizeof(sub));
   return sub;
@@ -4246,7 +4246,7 @@
 UPB_INLINE struct google_protobuf_FeatureSet* google_protobuf_FieldOptions_mutable_features(google_protobuf_FieldOptions* msg, upb_Arena* arena) {
   struct google_protobuf_FeatureSet* sub = (struct google_protobuf_FeatureSet*)google_protobuf_FieldOptions_features(msg);
   if (sub == NULL) {
-    sub = (struct google_protobuf_FeatureSet*)upb_Message_New(google__protobuf__FeatureSet_msg_init(), arena);
+    sub = (struct google_protobuf_FeatureSet*)_upb_Message_New(google__protobuf__FeatureSet_msg_init(), arena);
     if (sub) google_protobuf_FieldOptions_set_features(msg, sub);
   }
   return sub;
@@ -4272,7 +4272,7 @@
   if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
     return NULL;
   }
-  struct google_protobuf_UninterpretedOption* sub = (struct google_protobuf_UninterpretedOption*)upb_Message_New(google__protobuf__UninterpretedOption_msg_init(), arena);
+  struct google_protobuf_UninterpretedOption* sub = (struct google_protobuf_UninterpretedOption*)_upb_Message_New(google__protobuf__UninterpretedOption_msg_init(), arena);
   if (!arr || !sub) return NULL;
   UPB_PRIVATE(_upb_Array_Set)(arr, arr->size - 1, &sub, sizeof(sub));
   return sub;
@@ -4281,7 +4281,7 @@
 /* google.protobuf.FieldOptions.EditionDefault */
 
 UPB_INLINE google_protobuf_FieldOptions_EditionDefault* google_protobuf_FieldOptions_EditionDefault_new(upb_Arena* arena) {
-  return (google_protobuf_FieldOptions_EditionDefault*)upb_Message_New(google__protobuf__FieldOptions__EditionDefault_msg_init(), arena);
+  return (google_protobuf_FieldOptions_EditionDefault*)_upb_Message_New(google__protobuf__FieldOptions__EditionDefault_msg_init(), arena);
 }
 UPB_INLINE google_protobuf_FieldOptions_EditionDefault* google_protobuf_FieldOptions_EditionDefault_parse(const char* buf, size_t size, upb_Arena* arena) {
   google_protobuf_FieldOptions_EditionDefault* ret = google_protobuf_FieldOptions_EditionDefault_new(arena);
@@ -4356,7 +4356,7 @@
 /* google.protobuf.OneofOptions */
 
 UPB_INLINE google_protobuf_OneofOptions* google_protobuf_OneofOptions_new(upb_Arena* arena) {
-  return (google_protobuf_OneofOptions*)upb_Message_New(google__protobuf__OneofOptions_msg_init(), arena);
+  return (google_protobuf_OneofOptions*)_upb_Message_New(google__protobuf__OneofOptions_msg_init(), arena);
 }
 UPB_INLINE google_protobuf_OneofOptions* google_protobuf_OneofOptions_parse(const char* buf, size_t size, upb_Arena* arena) {
   google_protobuf_OneofOptions* ret = google_protobuf_OneofOptions_new(arena);
@@ -4448,7 +4448,7 @@
 UPB_INLINE struct google_protobuf_FeatureSet* google_protobuf_OneofOptions_mutable_features(google_protobuf_OneofOptions* msg, upb_Arena* arena) {
   struct google_protobuf_FeatureSet* sub = (struct google_protobuf_FeatureSet*)google_protobuf_OneofOptions_features(msg);
   if (sub == NULL) {
-    sub = (struct google_protobuf_FeatureSet*)upb_Message_New(google__protobuf__FeatureSet_msg_init(), arena);
+    sub = (struct google_protobuf_FeatureSet*)_upb_Message_New(google__protobuf__FeatureSet_msg_init(), arena);
     if (sub) google_protobuf_OneofOptions_set_features(msg, sub);
   }
   return sub;
@@ -4474,7 +4474,7 @@
   if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
     return NULL;
   }
-  struct google_protobuf_UninterpretedOption* sub = (struct google_protobuf_UninterpretedOption*)upb_Message_New(google__protobuf__UninterpretedOption_msg_init(), arena);
+  struct google_protobuf_UninterpretedOption* sub = (struct google_protobuf_UninterpretedOption*)_upb_Message_New(google__protobuf__UninterpretedOption_msg_init(), arena);
   if (!arr || !sub) return NULL;
   UPB_PRIVATE(_upb_Array_Set)(arr, arr->size - 1, &sub, sizeof(sub));
   return sub;
@@ -4483,7 +4483,7 @@
 /* google.protobuf.EnumOptions */
 
 UPB_INLINE google_protobuf_EnumOptions* google_protobuf_EnumOptions_new(upb_Arena* arena) {
-  return (google_protobuf_EnumOptions*)upb_Message_New(google__protobuf__EnumOptions_msg_init(), arena);
+  return (google_protobuf_EnumOptions*)_upb_Message_New(google__protobuf__EnumOptions_msg_init(), arena);
 }
 UPB_INLINE google_protobuf_EnumOptions* google_protobuf_EnumOptions_parse(const char* buf, size_t size, upb_Arena* arena) {
   google_protobuf_EnumOptions* ret = google_protobuf_EnumOptions_new(arena);
@@ -4632,7 +4632,7 @@
 UPB_INLINE struct google_protobuf_FeatureSet* google_protobuf_EnumOptions_mutable_features(google_protobuf_EnumOptions* msg, upb_Arena* arena) {
   struct google_protobuf_FeatureSet* sub = (struct google_protobuf_FeatureSet*)google_protobuf_EnumOptions_features(msg);
   if (sub == NULL) {
-    sub = (struct google_protobuf_FeatureSet*)upb_Message_New(google__protobuf__FeatureSet_msg_init(), arena);
+    sub = (struct google_protobuf_FeatureSet*)_upb_Message_New(google__protobuf__FeatureSet_msg_init(), arena);
     if (sub) google_protobuf_EnumOptions_set_features(msg, sub);
   }
   return sub;
@@ -4658,7 +4658,7 @@
   if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
     return NULL;
   }
-  struct google_protobuf_UninterpretedOption* sub = (struct google_protobuf_UninterpretedOption*)upb_Message_New(google__protobuf__UninterpretedOption_msg_init(), arena);
+  struct google_protobuf_UninterpretedOption* sub = (struct google_protobuf_UninterpretedOption*)_upb_Message_New(google__protobuf__UninterpretedOption_msg_init(), arena);
   if (!arr || !sub) return NULL;
   UPB_PRIVATE(_upb_Array_Set)(arr, arr->size - 1, &sub, sizeof(sub));
   return sub;
@@ -4667,7 +4667,7 @@
 /* google.protobuf.EnumValueOptions */
 
 UPB_INLINE google_protobuf_EnumValueOptions* google_protobuf_EnumValueOptions_new(upb_Arena* arena) {
-  return (google_protobuf_EnumValueOptions*)upb_Message_New(google__protobuf__EnumValueOptions_msg_init(), arena);
+  return (google_protobuf_EnumValueOptions*)_upb_Message_New(google__protobuf__EnumValueOptions_msg_init(), arena);
 }
 UPB_INLINE google_protobuf_EnumValueOptions* google_protobuf_EnumValueOptions_parse(const char* buf, size_t size, upb_Arena* arena) {
   google_protobuf_EnumValueOptions* ret = google_protobuf_EnumValueOptions_new(arena);
@@ -4793,7 +4793,7 @@
 UPB_INLINE struct google_protobuf_FeatureSet* google_protobuf_EnumValueOptions_mutable_features(google_protobuf_EnumValueOptions* msg, upb_Arena* arena) {
   struct google_protobuf_FeatureSet* sub = (struct google_protobuf_FeatureSet*)google_protobuf_EnumValueOptions_features(msg);
   if (sub == NULL) {
-    sub = (struct google_protobuf_FeatureSet*)upb_Message_New(google__protobuf__FeatureSet_msg_init(), arena);
+    sub = (struct google_protobuf_FeatureSet*)_upb_Message_New(google__protobuf__FeatureSet_msg_init(), arena);
     if (sub) google_protobuf_EnumValueOptions_set_features(msg, sub);
   }
   return sub;
@@ -4823,7 +4823,7 @@
   if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
     return NULL;
   }
-  struct google_protobuf_UninterpretedOption* sub = (struct google_protobuf_UninterpretedOption*)upb_Message_New(google__protobuf__UninterpretedOption_msg_init(), arena);
+  struct google_protobuf_UninterpretedOption* sub = (struct google_protobuf_UninterpretedOption*)_upb_Message_New(google__protobuf__UninterpretedOption_msg_init(), arena);
   if (!arr || !sub) return NULL;
   UPB_PRIVATE(_upb_Array_Set)(arr, arr->size - 1, &sub, sizeof(sub));
   return sub;
@@ -4832,7 +4832,7 @@
 /* google.protobuf.ServiceOptions */
 
 UPB_INLINE google_protobuf_ServiceOptions* google_protobuf_ServiceOptions_new(upb_Arena* arena) {
-  return (google_protobuf_ServiceOptions*)upb_Message_New(google__protobuf__ServiceOptions_msg_init(), arena);
+  return (google_protobuf_ServiceOptions*)_upb_Message_New(google__protobuf__ServiceOptions_msg_init(), arena);
 }
 UPB_INLINE google_protobuf_ServiceOptions* google_protobuf_ServiceOptions_parse(const char* buf, size_t size, upb_Arena* arena) {
   google_protobuf_ServiceOptions* ret = google_protobuf_ServiceOptions_new(arena);
@@ -4943,7 +4943,7 @@
 UPB_INLINE struct google_protobuf_FeatureSet* google_protobuf_ServiceOptions_mutable_features(google_protobuf_ServiceOptions* msg, upb_Arena* arena) {
   struct google_protobuf_FeatureSet* sub = (struct google_protobuf_FeatureSet*)google_protobuf_ServiceOptions_features(msg);
   if (sub == NULL) {
-    sub = (struct google_protobuf_FeatureSet*)upb_Message_New(google__protobuf__FeatureSet_msg_init(), arena);
+    sub = (struct google_protobuf_FeatureSet*)_upb_Message_New(google__protobuf__FeatureSet_msg_init(), arena);
     if (sub) google_protobuf_ServiceOptions_set_features(msg, sub);
   }
   return sub;
@@ -4969,7 +4969,7 @@
   if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
     return NULL;
   }
-  struct google_protobuf_UninterpretedOption* sub = (struct google_protobuf_UninterpretedOption*)upb_Message_New(google__protobuf__UninterpretedOption_msg_init(), arena);
+  struct google_protobuf_UninterpretedOption* sub = (struct google_protobuf_UninterpretedOption*)_upb_Message_New(google__protobuf__UninterpretedOption_msg_init(), arena);
   if (!arr || !sub) return NULL;
   UPB_PRIVATE(_upb_Array_Set)(arr, arr->size - 1, &sub, sizeof(sub));
   return sub;
@@ -4978,7 +4978,7 @@
 /* google.protobuf.MethodOptions */
 
 UPB_INLINE google_protobuf_MethodOptions* google_protobuf_MethodOptions_new(upb_Arena* arena) {
-  return (google_protobuf_MethodOptions*)upb_Message_New(google__protobuf__MethodOptions_msg_init(), arena);
+  return (google_protobuf_MethodOptions*)_upb_Message_New(google__protobuf__MethodOptions_msg_init(), arena);
 }
 UPB_INLINE google_protobuf_MethodOptions* google_protobuf_MethodOptions_parse(const char* buf, size_t size, upb_Arena* arena) {
   google_protobuf_MethodOptions* ret = google_protobuf_MethodOptions_new(arena);
@@ -5108,7 +5108,7 @@
 UPB_INLINE struct google_protobuf_FeatureSet* google_protobuf_MethodOptions_mutable_features(google_protobuf_MethodOptions* msg, upb_Arena* arena) {
   struct google_protobuf_FeatureSet* sub = (struct google_protobuf_FeatureSet*)google_protobuf_MethodOptions_features(msg);
   if (sub == NULL) {
-    sub = (struct google_protobuf_FeatureSet*)upb_Message_New(google__protobuf__FeatureSet_msg_init(), arena);
+    sub = (struct google_protobuf_FeatureSet*)_upb_Message_New(google__protobuf__FeatureSet_msg_init(), arena);
     if (sub) google_protobuf_MethodOptions_set_features(msg, sub);
   }
   return sub;
@@ -5134,7 +5134,7 @@
   if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
     return NULL;
   }
-  struct google_protobuf_UninterpretedOption* sub = (struct google_protobuf_UninterpretedOption*)upb_Message_New(google__protobuf__UninterpretedOption_msg_init(), arena);
+  struct google_protobuf_UninterpretedOption* sub = (struct google_protobuf_UninterpretedOption*)_upb_Message_New(google__protobuf__UninterpretedOption_msg_init(), arena);
   if (!arr || !sub) return NULL;
   UPB_PRIVATE(_upb_Array_Set)(arr, arr->size - 1, &sub, sizeof(sub));
   return sub;
@@ -5143,7 +5143,7 @@
 /* google.protobuf.UninterpretedOption */
 
 UPB_INLINE google_protobuf_UninterpretedOption* google_protobuf_UninterpretedOption_new(upb_Arena* arena) {
-  return (google_protobuf_UninterpretedOption*)upb_Message_New(google__protobuf__UninterpretedOption_msg_init(), arena);
+  return (google_protobuf_UninterpretedOption*)_upb_Message_New(google__protobuf__UninterpretedOption_msg_init(), arena);
 }
 UPB_INLINE google_protobuf_UninterpretedOption* google_protobuf_UninterpretedOption_parse(const char* buf, size_t size, upb_Arena* arena) {
   google_protobuf_UninterpretedOption* ret = google_protobuf_UninterpretedOption_new(arena);
@@ -5324,7 +5324,7 @@
   if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
     return NULL;
   }
-  struct google_protobuf_UninterpretedOption_NamePart* sub = (struct google_protobuf_UninterpretedOption_NamePart*)upb_Message_New(google__protobuf__UninterpretedOption__NamePart_msg_init(), arena);
+  struct google_protobuf_UninterpretedOption_NamePart* sub = (struct google_protobuf_UninterpretedOption_NamePart*)_upb_Message_New(google__protobuf__UninterpretedOption__NamePart_msg_init(), arena);
   if (!arr || !sub) return NULL;
   UPB_PRIVATE(_upb_Array_Set)(arr, arr->size - 1, &sub, sizeof(sub));
   return sub;
@@ -5357,7 +5357,7 @@
 /* google.protobuf.UninterpretedOption.NamePart */
 
 UPB_INLINE google_protobuf_UninterpretedOption_NamePart* google_protobuf_UninterpretedOption_NamePart_new(upb_Arena* arena) {
-  return (google_protobuf_UninterpretedOption_NamePart*)upb_Message_New(google__protobuf__UninterpretedOption__NamePart_msg_init(), arena);
+  return (google_protobuf_UninterpretedOption_NamePart*)_upb_Message_New(google__protobuf__UninterpretedOption__NamePart_msg_init(), arena);
 }
 UPB_INLINE google_protobuf_UninterpretedOption_NamePart* google_protobuf_UninterpretedOption_NamePart_parse(const char* buf, size_t size, upb_Arena* arena) {
   google_protobuf_UninterpretedOption_NamePart* ret = google_protobuf_UninterpretedOption_NamePart_new(arena);
@@ -5432,7 +5432,7 @@
 /* google.protobuf.FeatureSet */
 
 UPB_INLINE google_protobuf_FeatureSet* google_protobuf_FeatureSet_new(upb_Arena* arena) {
-  return (google_protobuf_FeatureSet*)upb_Message_New(google__protobuf__FeatureSet_msg_init(), arena);
+  return (google_protobuf_FeatureSet*)_upb_Message_New(google__protobuf__FeatureSet_msg_init(), arena);
 }
 UPB_INLINE google_protobuf_FeatureSet* google_protobuf_FeatureSet_parse(const char* buf, size_t size, upb_Arena* arena) {
   google_protobuf_FeatureSet* ret = google_protobuf_FeatureSet_new(arena);
@@ -5583,7 +5583,7 @@
 /* google.protobuf.FeatureSetDefaults */
 
 UPB_INLINE google_protobuf_FeatureSetDefaults* google_protobuf_FeatureSetDefaults_new(upb_Arena* arena) {
-  return (google_protobuf_FeatureSetDefaults*)upb_Message_New(google__protobuf__FeatureSetDefaults_msg_init(), arena);
+  return (google_protobuf_FeatureSetDefaults*)_upb_Message_New(google__protobuf__FeatureSetDefaults_msg_init(), arena);
 }
 UPB_INLINE google_protobuf_FeatureSetDefaults* google_protobuf_FeatureSetDefaults_parse(const char* buf, size_t size, upb_Arena* arena) {
   google_protobuf_FeatureSetDefaults* ret = google_protobuf_FeatureSetDefaults_new(arena);
@@ -5704,7 +5704,7 @@
   if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
     return NULL;
   }
-  struct google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault* sub = (struct google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault*)upb_Message_New(google__protobuf__FeatureSetDefaults__FeatureSetEditionDefault_msg_init(), arena);
+  struct google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault* sub = (struct google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault*)_upb_Message_New(google__protobuf__FeatureSetDefaults__FeatureSetEditionDefault_msg_init(), arena);
   if (!arr || !sub) return NULL;
   UPB_PRIVATE(_upb_Array_Set)(arr, arr->size - 1, &sub, sizeof(sub));
   return sub;
@@ -5721,7 +5721,7 @@
 /* google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault */
 
 UPB_INLINE google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault* google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault_new(upb_Arena* arena) {
-  return (google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault*)upb_Message_New(google__protobuf__FeatureSetDefaults__FeatureSetEditionDefault_msg_init(), arena);
+  return (google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault*)_upb_Message_New(google__protobuf__FeatureSetDefaults__FeatureSetEditionDefault_msg_init(), arena);
 }
 UPB_INLINE google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault* google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault_parse(const char* buf, size_t size, upb_Arena* arena) {
   google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault* ret = google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault_new(arena);
@@ -5791,7 +5791,7 @@
 UPB_INLINE struct google_protobuf_FeatureSet* google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault_mutable_features(google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault* msg, upb_Arena* arena) {
   struct google_protobuf_FeatureSet* sub = (struct google_protobuf_FeatureSet*)google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault_features(msg);
   if (sub == NULL) {
-    sub = (struct google_protobuf_FeatureSet*)upb_Message_New(google__protobuf__FeatureSet_msg_init(), arena);
+    sub = (struct google_protobuf_FeatureSet*)_upb_Message_New(google__protobuf__FeatureSet_msg_init(), arena);
     if (sub) google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault_set_features(msg, sub);
   }
   return sub;
@@ -5804,7 +5804,7 @@
 /* google.protobuf.SourceCodeInfo */
 
 UPB_INLINE google_protobuf_SourceCodeInfo* google_protobuf_SourceCodeInfo_new(upb_Arena* arena) {
-  return (google_protobuf_SourceCodeInfo*)upb_Message_New(google__protobuf__SourceCodeInfo_msg_init(), arena);
+  return (google_protobuf_SourceCodeInfo*)_upb_Message_New(google__protobuf__SourceCodeInfo_msg_init(), arena);
 }
 UPB_INLINE google_protobuf_SourceCodeInfo* google_protobuf_SourceCodeInfo_parse(const char* buf, size_t size, upb_Arena* arena) {
   google_protobuf_SourceCodeInfo* ret = google_protobuf_SourceCodeInfo_new(arena);
@@ -5895,7 +5895,7 @@
   if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
     return NULL;
   }
-  struct google_protobuf_SourceCodeInfo_Location* sub = (struct google_protobuf_SourceCodeInfo_Location*)upb_Message_New(google__protobuf__SourceCodeInfo__Location_msg_init(), arena);
+  struct google_protobuf_SourceCodeInfo_Location* sub = (struct google_protobuf_SourceCodeInfo_Location*)_upb_Message_New(google__protobuf__SourceCodeInfo__Location_msg_init(), arena);
   if (!arr || !sub) return NULL;
   UPB_PRIVATE(_upb_Array_Set)(arr, arr->size - 1, &sub, sizeof(sub));
   return sub;
@@ -5904,7 +5904,7 @@
 /* google.protobuf.SourceCodeInfo.Location */
 
 UPB_INLINE google_protobuf_SourceCodeInfo_Location* google_protobuf_SourceCodeInfo_Location_new(upb_Arena* arena) {
-  return (google_protobuf_SourceCodeInfo_Location*)upb_Message_New(google__protobuf__SourceCodeInfo__Location_msg_init(), arena);
+  return (google_protobuf_SourceCodeInfo_Location*)_upb_Message_New(google__protobuf__SourceCodeInfo__Location_msg_init(), arena);
 }
 UPB_INLINE google_protobuf_SourceCodeInfo_Location* google_protobuf_SourceCodeInfo_Location_parse(const char* buf, size_t size, upb_Arena* arena) {
   google_protobuf_SourceCodeInfo_Location* ret = google_protobuf_SourceCodeInfo_Location_new(arena);
@@ -6162,7 +6162,7 @@
 /* google.protobuf.GeneratedCodeInfo */
 
 UPB_INLINE google_protobuf_GeneratedCodeInfo* google_protobuf_GeneratedCodeInfo_new(upb_Arena* arena) {
-  return (google_protobuf_GeneratedCodeInfo*)upb_Message_New(google__protobuf__GeneratedCodeInfo_msg_init(), arena);
+  return (google_protobuf_GeneratedCodeInfo*)_upb_Message_New(google__protobuf__GeneratedCodeInfo_msg_init(), arena);
 }
 UPB_INLINE google_protobuf_GeneratedCodeInfo* google_protobuf_GeneratedCodeInfo_parse(const char* buf, size_t size, upb_Arena* arena) {
   google_protobuf_GeneratedCodeInfo* ret = google_protobuf_GeneratedCodeInfo_new(arena);
@@ -6253,7 +6253,7 @@
   if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
     return NULL;
   }
-  struct google_protobuf_GeneratedCodeInfo_Annotation* sub = (struct google_protobuf_GeneratedCodeInfo_Annotation*)upb_Message_New(google__protobuf__GeneratedCodeInfo__Annotation_msg_init(), arena);
+  struct google_protobuf_GeneratedCodeInfo_Annotation* sub = (struct google_protobuf_GeneratedCodeInfo_Annotation*)_upb_Message_New(google__protobuf__GeneratedCodeInfo__Annotation_msg_init(), arena);
   if (!arr || !sub) return NULL;
   UPB_PRIVATE(_upb_Array_Set)(arr, arr->size - 1, &sub, sizeof(sub));
   return sub;
@@ -6262,7 +6262,7 @@
 /* google.protobuf.GeneratedCodeInfo.Annotation */
 
 UPB_INLINE google_protobuf_GeneratedCodeInfo_Annotation* google_protobuf_GeneratedCodeInfo_Annotation_new(upb_Arena* arena) {
-  return (google_protobuf_GeneratedCodeInfo_Annotation*)upb_Message_New(google__protobuf__GeneratedCodeInfo__Annotation_msg_init(), arena);
+  return (google_protobuf_GeneratedCodeInfo_Annotation*)_upb_Message_New(google__protobuf__GeneratedCodeInfo__Annotation_msg_init(), arena);
 }
 UPB_INLINE google_protobuf_GeneratedCodeInfo_Annotation* google_protobuf_GeneratedCodeInfo_Annotation_parse(const char* buf, size_t size, upb_Arena* arena) {
   google_protobuf_GeneratedCodeInfo_Annotation* ret = google_protobuf_GeneratedCodeInfo_Annotation_new(arena);
diff --git a/upb/wire/decode.c b/upb/wire/decode.c
index 90191de..390d31f 100644
--- a/upb/wire/decode.c
+++ b/upb/wire/decode.c
@@ -24,6 +24,7 @@
 #include "upb/message/internal/extension.h"
 #include "upb/message/internal/map.h"
 #include "upb/message/internal/map_entry.h"
+#include "upb/message/internal/message.h"
 #include "upb/message/map.h"
 #include "upb/message/message.h"
 #include "upb/message/tagged_ptr.h"
@@ -245,7 +246,7 @@
                                                upb_TaggedMessagePtr* target) {
   const upb_MiniTable* subl = _upb_MiniTableSubs_MessageByField(subs, field);
   UPB_ASSERT(subl);
-  upb_Message* msg = upb_Message_New(subl, &d->arena);
+  upb_Message* msg = _upb_Message_New(subl, &d->arena);
   if (!msg) _upb_Decoder_ErrorJmp(d, kUpb_DecodeStatus_OutOfMemory);
 
   // Extensions should not be unlinked. A message extension should not be
@@ -373,7 +374,7 @@
   end = upb_Decoder_EncodeVarint32(val1, end);
   end = upb_Decoder_EncodeVarint32(val2, end);
 
-  if (!upb_Message_AddUnknown(msg, buf, end - buf, &d->arena)) {
+  if (!_upb_Message_AddUnknown(msg, buf, end - buf, &d->arena)) {
     _upb_Decoder_ErrorJmp(d, kUpb_DecodeStatus_OutOfMemory);
   }
 }
@@ -659,7 +660,7 @@
       _upb_Decoder_ErrorJmp(d, kUpb_DecodeStatus_OutOfMemory);
     }
     _upb_Decoder_AddUnknownVarints(d, msg, tag, size);
-    if (!upb_Message_AddUnknown(msg, buf, size, &d->arena)) {
+    if (!_upb_Message_AddUnknown(msg, buf, size, &d->arena)) {
       _upb_Decoder_ErrorJmp(d, kUpb_DecodeStatus_OutOfMemory);
     }
   } else {
@@ -837,9 +838,9 @@
   ptr = upb_Decoder_EncodeVarint32(kEndItemTag, ptr);
   char* end = ptr;
 
-  if (!upb_Message_AddUnknown(msg, buf, split - buf, &d->arena) ||
-      !upb_Message_AddUnknown(msg, message_data, message_size, &d->arena) ||
-      !upb_Message_AddUnknown(msg, split, end - split, &d->arena)) {
+  if (!_upb_Message_AddUnknown(msg, buf, split - buf, &d->arena) ||
+      !_upb_Message_AddUnknown(msg, message_data, message_size, &d->arena) ||
+      !_upb_Message_AddUnknown(msg, split, end - split, &d->arena)) {
     _upb_Decoder_ErrorJmp(d, kUpb_DecodeStatus_OutOfMemory);
   }
 }
@@ -1224,7 +1225,7 @@
       start = d->unknown;
       d->unknown = NULL;
     }
-    if (!upb_Message_AddUnknown(msg, start, ptr - start, &d->arena)) {
+    if (!_upb_Message_AddUnknown(msg, start, ptr - start, &d->arena)) {
       _upb_Decoder_ErrorJmp(d, kUpb_DecodeStatus_OutOfMemory);
     }
   } else if (wire_type == kUpb_WireType_StartGroup) {
diff --git a/upb/wire/internal/decode.h b/upb/wire/internal/decode.h
index b383874..3b907b4 100644
--- a/upb/wire/internal/decode.h
+++ b/upb/wire/internal/decode.h
@@ -14,7 +14,7 @@
 #define UPB_WIRE_INTERNAL_DECODE_H_
 
 #include "upb/mem/internal/arena.h"
-#include "upb/message/message.h"
+#include "upb/message/internal/message.h"
 #include "upb/wire/decode.h"
 #include "upb/wire/eps_copy_input_stream.h"
 #include "utf8_range.h"
@@ -106,8 +106,8 @@
   if (!old_end) _upb_FastDecoder_ErrorJmp(d, kUpb_DecodeStatus_Malformed);
 
   if (d->unknown) {
-    if (!upb_Message_AddUnknown(d->unknown_msg, d->unknown,
-                                old_end - d->unknown, &d->arena)) {
+    if (!_upb_Message_AddUnknown(d->unknown_msg, d->unknown,
+                                 old_end - d->unknown, &d->arena)) {
       _upb_FastDecoder_ErrorJmp(d, kUpb_DecodeStatus_OutOfMemory);
     }
     d->unknown = new_start;
diff --git a/upb_generator/BUILD b/upb_generator/BUILD
index 21256ac..860ca10 100644
--- a/upb_generator/BUILD
+++ b/upb_generator/BUILD
@@ -267,11 +267,9 @@
     deps = [
         "//upb:base",
         "//upb:mem",
-        "//upb:mini_table",
         "//upb:mini_table_internal",
         "//upb:port",
         "//upb:wire_types",
-        "@com_google_absl//absl/base:core_headers",
         "@com_google_absl//absl/container:flat_hash_map",
         "@com_google_absl//absl/container:flat_hash_set",
         "@com_google_absl//absl/log:absl_check",
diff --git a/upb_generator/protoc-gen-upb.cc b/upb_generator/protoc-gen-upb.cc
index 99d7ac0..4fcfdabc 100644
--- a/upb_generator/protoc-gen-upb.cc
+++ b/upb_generator/protoc-gen-upb.cc
@@ -13,24 +13,23 @@
 #include <cstdlib>
 #include <limits>
 #include <map>
+#include <memory>
 #include <string>
 #include <utility>
 #include <vector>
 
-#include "google/protobuf/stubs/common.h"
+#include "absl/container/flat_hash_map.h"
+#include "absl/container/flat_hash_set.h"
 #include "absl/log/absl_check.h"
 #include "absl/log/absl_log.h"
 #include "absl/strings/escaping.h"
-#include "absl/strings/match.h"
-#include "absl/strings/str_cat.h"
 #include "absl/strings/str_replace.h"
 #include "absl/strings/string_view.h"
 #include "absl/strings/substitute.h"
 #include "upb/base/descriptor_constants.h"
-#include "upb/base/status.hpp"
 #include "upb/base/string_view.h"
-#include "upb/mini_table/field.h"
 #include "upb/reflection/def.hpp"
+#include "upb/wire/types.h"
 #include "upb_generator/common.h"
 #include "upb_generator/file_layout.h"
 #include "upb_generator/names.h"
@@ -74,7 +73,7 @@
 }
 
 std::string ExtensionIdentBase(upb::FieldDefPtr ext) {
-  UPB_ASSERT(ext.is_extension());
+  assert(ext.is_extension());
   if (ext.extension_scope()) {
     return MessageName(ext.extension_scope());
   } else {
@@ -319,7 +318,7 @@
   output(
       R"cc(
         UPB_INLINE $0* $0_new(upb_Arena* arena) {
-          return ($0*)upb_Message_New($1, arena);
+          return ($0*)_upb_Message_New($1, arena);
         }
         UPB_INLINE $0* $0_parse(const char* buf, size_t size, upb_Arena* arena) {
           $0* ret = $0_new(arena);
@@ -691,7 +690,7 @@
             if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
               return NULL;
             }
-            struct $0* sub = (struct $0*)upb_Message_New($3, arena);
+            struct $0* sub = (struct $0*)_upb_Message_New($3, arena);
             if (!arr || !sub) return NULL;
             UPB_PRIVATE(_upb_Array_Set)(arr, arr->size - 1, &sub, sizeof(sub));
             return sub;
@@ -759,7 +758,7 @@
           UPB_INLINE struct $0* $1_mutable_$2($1* msg, upb_Arena* arena) {
             struct $0* sub = (struct $0*)$1_$2(msg);
             if (sub == NULL) {
-              sub = (struct $0*)upb_Message_New($3, arena);
+              sub = (struct $0*)_upb_Message_New($3, arena);
               if (sub) $1_set_$2(msg, sub);
             }
             return sub;
diff --git a/upb_generator/stage0/google/protobuf/compiler/plugin.upb.h b/upb_generator/stage0/google/protobuf/compiler/plugin.upb.h
index 4e91794..6fef25f 100644
--- a/upb_generator/stage0/google/protobuf/compiler/plugin.upb.h
+++ b/upb_generator/stage0/google/protobuf/compiler/plugin.upb.h
@@ -43,7 +43,7 @@
 /* google.protobuf.compiler.Version */
 
 UPB_INLINE google_protobuf_compiler_Version* google_protobuf_compiler_Version_new(upb_Arena* arena) {
-  return (google_protobuf_compiler_Version*)upb_Message_New(google__protobuf__compiler__Version_msg_init(), arena);
+  return (google_protobuf_compiler_Version*)_upb_Message_New(google__protobuf__compiler__Version_msg_init(), arena);
 }
 UPB_INLINE google_protobuf_compiler_Version* google_protobuf_compiler_Version_parse(const char* buf, size_t size, upb_Arena* arena) {
   google_protobuf_compiler_Version* ret = google_protobuf_compiler_Version_new(arena);
@@ -156,7 +156,7 @@
 /* google.protobuf.compiler.CodeGeneratorRequest */
 
 UPB_INLINE google_protobuf_compiler_CodeGeneratorRequest* google_protobuf_compiler_CodeGeneratorRequest_new(upb_Arena* arena) {
-  return (google_protobuf_compiler_CodeGeneratorRequest*)upb_Message_New(google__protobuf__compiler__CodeGeneratorRequest_msg_init(), arena);
+  return (google_protobuf_compiler_CodeGeneratorRequest*)_upb_Message_New(google__protobuf__compiler__CodeGeneratorRequest_msg_init(), arena);
 }
 UPB_INLINE google_protobuf_compiler_CodeGeneratorRequest* google_protobuf_compiler_CodeGeneratorRequest_parse(const char* buf, size_t size, upb_Arena* arena) {
   google_protobuf_compiler_CodeGeneratorRequest* ret = google_protobuf_compiler_CodeGeneratorRequest_new(arena);
@@ -365,7 +365,7 @@
 UPB_INLINE struct google_protobuf_compiler_Version* google_protobuf_compiler_CodeGeneratorRequest_mutable_compiler_version(google_protobuf_compiler_CodeGeneratorRequest* msg, upb_Arena* arena) {
   struct google_protobuf_compiler_Version* sub = (struct google_protobuf_compiler_Version*)google_protobuf_compiler_CodeGeneratorRequest_compiler_version(msg);
   if (sub == NULL) {
-    sub = (struct google_protobuf_compiler_Version*)upb_Message_New(google__protobuf__compiler__Version_msg_init(), arena);
+    sub = (struct google_protobuf_compiler_Version*)_upb_Message_New(google__protobuf__compiler__Version_msg_init(), arena);
     if (sub) google_protobuf_compiler_CodeGeneratorRequest_set_compiler_version(msg, sub);
   }
   return sub;
@@ -391,7 +391,7 @@
   if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
     return NULL;
   }
-  struct google_protobuf_FileDescriptorProto* sub = (struct google_protobuf_FileDescriptorProto*)upb_Message_New(google__protobuf__FileDescriptorProto_msg_init(), arena);
+  struct google_protobuf_FileDescriptorProto* sub = (struct google_protobuf_FileDescriptorProto*)_upb_Message_New(google__protobuf__FileDescriptorProto_msg_init(), arena);
   if (!arr || !sub) return NULL;
   UPB_PRIVATE(_upb_Array_Set)(arr, arr->size - 1, &sub, sizeof(sub));
   return sub;
@@ -417,7 +417,7 @@
   if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
     return NULL;
   }
-  struct google_protobuf_FileDescriptorProto* sub = (struct google_protobuf_FileDescriptorProto*)upb_Message_New(google__protobuf__FileDescriptorProto_msg_init(), arena);
+  struct google_protobuf_FileDescriptorProto* sub = (struct google_protobuf_FileDescriptorProto*)_upb_Message_New(google__protobuf__FileDescriptorProto_msg_init(), arena);
   if (!arr || !sub) return NULL;
   UPB_PRIVATE(_upb_Array_Set)(arr, arr->size - 1, &sub, sizeof(sub));
   return sub;
@@ -426,7 +426,7 @@
 /* google.protobuf.compiler.CodeGeneratorResponse */
 
 UPB_INLINE google_protobuf_compiler_CodeGeneratorResponse* google_protobuf_compiler_CodeGeneratorResponse_new(upb_Arena* arena) {
-  return (google_protobuf_compiler_CodeGeneratorResponse*)upb_Message_New(google__protobuf__compiler__CodeGeneratorResponse_msg_init(), arena);
+  return (google_protobuf_compiler_CodeGeneratorResponse*)_upb_Message_New(google__protobuf__compiler__CodeGeneratorResponse_msg_init(), arena);
 }
 UPB_INLINE google_protobuf_compiler_CodeGeneratorResponse* google_protobuf_compiler_CodeGeneratorResponse_parse(const char* buf, size_t size, upb_Arena* arena) {
   google_protobuf_compiler_CodeGeneratorResponse* ret = google_protobuf_compiler_CodeGeneratorResponse_new(arena);
@@ -593,7 +593,7 @@
   if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
     return NULL;
   }
-  struct google_protobuf_compiler_CodeGeneratorResponse_File* sub = (struct google_protobuf_compiler_CodeGeneratorResponse_File*)upb_Message_New(google__protobuf__compiler__CodeGeneratorResponse__File_msg_init(), arena);
+  struct google_protobuf_compiler_CodeGeneratorResponse_File* sub = (struct google_protobuf_compiler_CodeGeneratorResponse_File*)_upb_Message_New(google__protobuf__compiler__CodeGeneratorResponse__File_msg_init(), arena);
   if (!arr || !sub) return NULL;
   UPB_PRIVATE(_upb_Array_Set)(arr, arr->size - 1, &sub, sizeof(sub));
   return sub;
@@ -602,7 +602,7 @@
 /* google.protobuf.compiler.CodeGeneratorResponse.File */
 
 UPB_INLINE google_protobuf_compiler_CodeGeneratorResponse_File* google_protobuf_compiler_CodeGeneratorResponse_File_new(upb_Arena* arena) {
-  return (google_protobuf_compiler_CodeGeneratorResponse_File*)upb_Message_New(google__protobuf__compiler__CodeGeneratorResponse__File_msg_init(), arena);
+  return (google_protobuf_compiler_CodeGeneratorResponse_File*)_upb_Message_New(google__protobuf__compiler__CodeGeneratorResponse__File_msg_init(), arena);
 }
 UPB_INLINE google_protobuf_compiler_CodeGeneratorResponse_File* google_protobuf_compiler_CodeGeneratorResponse_File_parse(const char* buf, size_t size, upb_Arena* arena) {
   google_protobuf_compiler_CodeGeneratorResponse_File* ret = google_protobuf_compiler_CodeGeneratorResponse_File_new(arena);
@@ -714,7 +714,7 @@
 UPB_INLINE struct google_protobuf_GeneratedCodeInfo* google_protobuf_compiler_CodeGeneratorResponse_File_mutable_generated_code_info(google_protobuf_compiler_CodeGeneratorResponse_File* msg, upb_Arena* arena) {
   struct google_protobuf_GeneratedCodeInfo* sub = (struct google_protobuf_GeneratedCodeInfo*)google_protobuf_compiler_CodeGeneratorResponse_File_generated_code_info(msg);
   if (sub == NULL) {
-    sub = (struct google_protobuf_GeneratedCodeInfo*)upb_Message_New(google__protobuf__GeneratedCodeInfo_msg_init(), arena);
+    sub = (struct google_protobuf_GeneratedCodeInfo*)_upb_Message_New(google__protobuf__GeneratedCodeInfo_msg_init(), arena);
     if (sub) google_protobuf_compiler_CodeGeneratorResponse_File_set_generated_code_info(msg, sub);
   }
   return sub;