upb: lock down upb_MiniTableExtension
PiperOrigin-RevId: 585817227
diff --git a/protos/protos.cc b/protos/protos.cc
index 6ee9f8d..4cd3d1e 100644
--- a/protos/protos.cc
+++ b/protos/protos.cc
@@ -115,8 +115,8 @@
const upb_MiniTableExtension* eid) {
MessageLock msg_lock(msg);
return _upb_Message_Getext(msg, eid) != nullptr ||
- upb_MiniTable_FindUnknown(msg, eid->field.number, 0).status ==
- kUpb_FindUnknown_Ok;
+ upb_MiniTable_FindUnknown(msg, upb_MiniTableExtension_Number(eid), 0)
+ .status == kUpb_FindUnknown_Ok;
}
const upb_Message_Extension* GetOrPromoteExtension(
@@ -170,8 +170,9 @@
if (message_arena != extension_arena) {
// Try fuse, if fusing is not allowed or fails, create copy of extension.
if (!upb_Arena_Fuse(message_arena, extension_arena)) {
- msg_ext->data.ptr =
- DeepClone(extension, msg_ext->ext->sub.submsg, message_arena);
+ msg_ext->data.ptr = DeepClone(
+ extension, upb_MiniTableExtension_GetSubMessage(msg_ext->ext),
+ message_arena);
return absl::OkStatus();
}
}
@@ -189,7 +190,8 @@
}
// Clone extension into target message arena.
msg_ext->data.ptr =
- DeepClone(extension, msg_ext->ext->sub.submsg, message_arena);
+ DeepClone(extension, upb_MiniTableExtension_GetSubMessage(msg_ext->ext),
+ message_arena);
return absl::OkStatus();
}