upb: upb_MiniTable_FindUnknown() -> upb_Message_FindUnknown()

PiperOrigin-RevId: 588120426
pull/14947/head
Eric Salo 1 year ago committed by Copybara-Service
parent 1c5c396a80
commit a8c3eb7fa5
  1. 2
      protos/protos.cc
  2. 27
      upb/message/promote.c
  3. 6
      upb/message/promote.h
  4. 11
      upb/message/promote_test.cc

@ -115,7 +115,7 @@ bool HasExtensionOrUnknown(const upb_Message* msg,
const upb_MiniTableExtension* eid) {
MessageLock msg_lock(msg);
return _upb_Message_Getext(msg, eid) != nullptr ||
upb_MiniTable_FindUnknown(msg, upb_MiniTableExtension_Number(eid), 0)
upb_Message_FindUnknown(msg, upb_MiniTableExtension_Number(eid), 0)
.status == kUpb_FindUnknown_Ok;
}

@ -24,7 +24,6 @@
#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/message.h"
#include "upb/mini_table/sub.h"
#include "upb/wire/decode.h"
@ -79,7 +78,7 @@ upb_GetExtension_Status upb_MiniTable_GetOrPromoteExtension(
// Check unknown fields, if available promote.
int field_number = upb_MiniTableExtension_Number(ext_table);
upb_FindUnknownRet result = upb_MiniTable_FindUnknown(msg, field_number, 0);
upb_FindUnknownRet result = upb_Message_FindUnknown(msg, field_number, 0);
if (result.status != kUpb_FindUnknown_Ok) {
return kUpb_GetExtension_NotPresent;
}
@ -119,9 +118,9 @@ static upb_FindUnknownRet upb_FindUnknownRet_ParseError(void) {
return (upb_FindUnknownRet){.status = kUpb_FindUnknown_ParseError};
}
upb_FindUnknownRet upb_MiniTable_FindUnknown(const upb_Message* msg,
uint32_t field_number,
int depth_limit) {
upb_FindUnknownRet upb_Message_FindUnknown(const upb_Message* msg,
uint32_t field_number,
int depth_limit) {
depth_limit = depth_limit ? depth_limit : kUpb_WireFormat_DefaultDepthLimit;
size_t size;
@ -249,9 +248,9 @@ upb_UnknownToMessageRet upb_MiniTable_PromoteUnknownToMessage(
upb_UnknownToMessageRet ret;
ret.status = kUpb_UnknownToMessage_Ok;
do {
unknown = upb_MiniTable_FindUnknown(
msg, upb_MiniTableField_Number(field),
upb_DecodeOptions_GetMaxDepth(decode_options));
unknown =
upb_Message_FindUnknown(msg, upb_MiniTableField_Number(field),
upb_DecodeOptions_GetMaxDepth(decode_options));
switch (unknown.status) {
case kUpb_FindUnknown_Ok: {
const char* unknown_data = unknown.ptr;
@ -297,9 +296,9 @@ upb_UnknownToMessage_Status upb_MiniTable_PromoteUnknownToMessageArray(
// Find all unknowns with given field number and parse.
upb_FindUnknownRet unknown;
do {
unknown = upb_MiniTable_FindUnknown(
msg, upb_MiniTableField_Number(field),
upb_DecodeOptions_GetMaxDepth(decode_options));
unknown =
upb_Message_FindUnknown(msg, upb_MiniTableField_Number(field),
upb_DecodeOptions_GetMaxDepth(decode_options));
if (unknown.status == kUpb_FindUnknown_Ok) {
upb_UnknownToMessageRet ret = upb_MiniTable_ParseUnknownMessage(
unknown.ptr, unknown.len, mini_table,
@ -338,9 +337,9 @@ upb_UnknownToMessage_Status upb_MiniTable_PromoteUnknownToMap(
// Find all unknowns with given field number and parse.
upb_FindUnknownRet unknown;
while (1) {
unknown = upb_MiniTable_FindUnknown(
msg, upb_MiniTableField_Number(field),
upb_DecodeOptions_GetMaxDepth(decode_options));
unknown =
upb_Message_FindUnknown(msg, upb_MiniTableField_Number(field),
upb_DecodeOptions_GetMaxDepth(decode_options));
if (unknown.status != kUpb_FindUnknown_Ok) break;
upb_UnknownToMessageRet ret = upb_MiniTable_ParseUnknownMessage(
unknown.ptr, unknown.len, map_entry_mini_table,

@ -59,9 +59,9 @@ typedef struct {
// Finds first occurrence of unknown data by tag id in message.
// A depth_limit of zero means to just use the upb default depth limit.
upb_FindUnknownRet upb_MiniTable_FindUnknown(const upb_Message* msg,
uint32_t field_number,
int depth_limit);
upb_FindUnknownRet upb_Message_FindUnknown(const upb_Message* msg,
uint32_t field_number,
int depth_limit);
typedef enum {
kUpb_UnknownToMessage_Ok,

@ -40,7 +40,6 @@
#include "upb/mini_table/extension.h"
#include "upb/mini_table/field.h"
#include "upb/mini_table/message.h"
#include "upb/mini_table/sub.h"
#include "upb/test/test.upb.h"
#include "upb/test/test.upb_minitable.h"
#include "upb/wire/decode.h"
@ -69,13 +68,13 @@ TEST(GeneratedCode, FindUnknown) {
upb_test_EmptyMessageWithExtensions_parse(serialized, serialized_size,
arena);
upb_FindUnknownRet result = upb_MiniTable_FindUnknown(
upb_FindUnknownRet result = upb_Message_FindUnknown(
base_msg,
upb_MiniTableExtension_Number(&upb_test_ModelExtension1_model_ext_ext),
0);
EXPECT_EQ(kUpb_FindUnknown_Ok, result.status);
result = upb_MiniTable_FindUnknown(
result = upb_Message_FindUnknown(
base_msg,
upb_MiniTableExtension_Number(&upb_test_ModelExtension2_model_ext_ext),
0);
@ -708,7 +707,7 @@ TEST(GeneratedCode, PromoteUnknownMessageOld) {
int32_t val = upb_Message_GetInt32(
msg, upb_MiniTable_FindFieldByNumber(mini_table, 4), 0);
EXPECT_EQ(val, 11);
upb_FindUnknownRet unknown = upb_MiniTable_FindUnknown(msg, 5, 0);
upb_FindUnknownRet unknown = upb_Message_FindUnknown(msg, 5, 0);
EXPECT_EQ(unknown.status, kUpb_FindUnknown_Ok);
// Update mini table and promote unknown to a message.
EXPECT_TRUE(upb_MiniTable_SetSubMessage(
@ -757,7 +756,7 @@ TEST(GeneratedCode, PromoteUnknownRepeatedMessageOld) {
EXPECT_EQ(val, 123);
// Check that we have repeated field data in an unknown.
upb_FindUnknownRet unknown = upb_MiniTable_FindUnknown(msg, 6, 0);
upb_FindUnknownRet unknown = upb_Message_FindUnknown(msg, 6, 0);
EXPECT_EQ(unknown.status, kUpb_FindUnknown_Ok);
// Update mini table and promote unknown to a message.
@ -817,7 +816,7 @@ TEST(GeneratedCode, PromoteUnknownToMapOld) {
EXPECT_EQ(val, 123);
// Check that we have map data in an unknown.
upb_FindUnknownRet unknown = upb_MiniTable_FindUnknown(msg, 3, 0);
upb_FindUnknownRet unknown = upb_Message_FindUnknown(msg, 3, 0);
EXPECT_EQ(unknown.status, kUpb_FindUnknown_Ok);
// Update mini table and promote unknown to a message.

Loading…
Cancel
Save