Skip to content
This repository was archived by the owner on Dec 9, 2025. It is now read-only.

Commit b747edb

Browse files
ericsalocopybara-github
authored andcommitted
append "ByDef" to names of message accessors that use reflection
PiperOrigin-RevId: 493018484
1 parent a3e49f9 commit b747edb

File tree

11 files changed

+131
-101
lines changed

11 files changed

+131
-101
lines changed

lua/msg.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -825,7 +825,7 @@ static int lupb_msg_index(lua_State* L) {
825825
}
826826
} else {
827827
/* Value type, just push value and return .*/
828-
upb_MessageValue val = upb_Message_Get(msg, f);
828+
upb_MessageValue val = upb_Message_GetFieldByDef(msg, f);
829829
lupb_pushmsgval(L, 0, upb_FieldDef_CType(f), val);
830830
}
831831

@@ -882,7 +882,7 @@ static int lupb_Message_Newindex(lua_State* L) {
882882
lupb_Arena_Fuseobjs(L, 1, 3);
883883
}
884884

885-
upb_Message_Set(msg, f, msgval, lupb_Arenaget(L, 1));
885+
upb_Message_SetFieldByDef(msg, f, msgval, lupb_Arenaget(L, 1));
886886

887887
/* Return the new value for chained assignments. */
888888
lua_pushvalue(L, 3);

python/convert.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -397,7 +397,7 @@ bool upb_Message_IsEqual(const upb_Message* msg1, const upb_Message* msg2,
397397
// using upb_Message_Next(msg2). If the two messages have the same set
398398
// of fields, this will yield the same field.
399399
// 3. For extension fields, we have to actually search for the corresponding
400-
// field, which we do with upb_Message_Get(msg2, ext_f1).
400+
// field, which we do with upb_Message_GetFieldByDef(msg2, ext_f1).
401401
// 4. Once iteration over msg1 is complete, we call upb_Message_Next(msg2)
402402
// one
403403
// final time to verify that we have visited all of msg2's regular fields
@@ -413,7 +413,7 @@ bool upb_Message_IsEqual(const upb_Message* msg1, const upb_Message* msg2,
413413
size_t iter2 = kUpb_Message_Begin;
414414
while (upb_Message_Next(msg1, m, symtab, &f1, &val1, &iter1)) {
415415
if (upb_FieldDef_IsExtension(f1)) {
416-
val2 = upb_Message_Get(msg2, f1);
416+
val2 = upb_Message_GetFieldByDef(msg2, f1);
417417
} else {
418418
if (!upb_Message_Next(msg2, m, NULL, &f2, &val2, &iter2) || f1 != f2) {
419419
return false;

python/extension_dict.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,10 +113,10 @@ static int PyUpb_ExtensionDict_Contains(PyObject* _self, PyObject* key) {
113113
upb_Message* msg = PyUpb_Message_GetIfReified(self->msg);
114114
if (!msg) return 0;
115115
if (upb_FieldDef_IsRepeated(f)) {
116-
upb_MessageValue val = upb_Message_Get(msg, f);
116+
upb_MessageValue val = upb_Message_GetFieldByDef(msg, f);
117117
return upb_Array_Size(val.array_val) > 0;
118118
} else {
119-
return upb_Message_Has(msg, f);
119+
return upb_Message_HasFieldByDef(msg, f);
120120
}
121121
}
122122

python/message.c

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -477,7 +477,7 @@ static bool PyUpb_Message_InitScalarAttribute(upb_Message* msg,
477477
upb_MessageValue msgval;
478478
assert(!PyErr_Occurred());
479479
if (!PyUpb_PyToUpb(value, f, &msgval, arena)) return false;
480-
upb_Message_Set(msg, f, msgval, arena);
480+
upb_Message_SetFieldByDef(msg, f, msgval, arena);
481481
return true;
482482
}
483483

@@ -607,7 +607,7 @@ static const upb_FieldDef* PyUpb_Message_InitAsMsg(PyUpb_Message* m,
607607
static void PyUpb_Message_SetField(PyUpb_Message* parent, const upb_FieldDef* f,
608608
PyUpb_Message* child, upb_Arena* arena) {
609609
upb_MessageValue msgval = {.msg_val = PyUpb_Message_GetMsg(child)};
610-
upb_Message_Set(PyUpb_Message_GetMsg(parent), f, msgval, arena);
610+
upb_Message_SetFieldByDef(PyUpb_Message_GetMsg(parent), f, msgval, arena);
611611
PyUpb_WeakMap_Delete(parent->unset_subobj_map, f);
612612
// Releases a ref previously owned by child->ptr.parent of our child.
613613
Py_DECREF(child);
@@ -719,8 +719,9 @@ static void PyUpb_Message_SyncSubobjs(PyUpb_Message* self) {
719719

720720
while (PyUpb_WeakMap_Next(subobj_map, &key, &obj, &iter)) {
721721
const upb_FieldDef* f = key;
722-
if (upb_FieldDef_HasPresence(f) && !upb_Message_Has(msg, f)) continue;
723-
upb_MessageValue msgval = upb_Message_Get(msg, f);
722+
if (upb_FieldDef_HasPresence(f) && !upb_Message_HasFieldByDef(msg, f))
723+
continue;
724+
upb_MessageValue msgval = upb_Message_GetFieldByDef(msg, f);
724725
PyUpb_WeakMap_DeleteIter(subobj_map, &iter);
725726
if (upb_FieldDef_IsMap(f)) {
726727
if (!msgval.map_val) continue;
@@ -785,7 +786,8 @@ void PyUpb_Message_SetConcreteSubobj(PyObject* _self, const upb_FieldDef* f,
785786
PyUpb_Message* self = (void*)_self;
786787
PyUpb_Message_EnsureReified(self);
787788
PyUpb_Message_CacheDelete(_self, f);
788-
upb_Message_Set(self->ptr.msg, f, subobj, PyUpb_Arena_Get(self->arena));
789+
upb_Message_SetFieldByDef(self->ptr.msg, f, subobj,
790+
PyUpb_Arena_Get(self->arena));
789791
}
790792

791793
static void PyUpb_Message_Dealloc(PyObject* _self) {
@@ -905,7 +907,7 @@ PyObject* PyUpb_Message_GetScalarValue(PyUpb_Message* self,
905907
// Unset message always returns default values.
906908
val = upb_FieldDef_Default(field);
907909
} else {
908-
val = upb_Message_Get(self->ptr.msg, field);
910+
val = upb_Message_GetFieldByDef(self->ptr.msg, field);
909911
}
910912
return PyUpb_UpbToPy(val, field, self->arena);
911913
}
@@ -929,7 +931,7 @@ PyObject* PyUpb_Message_GetFieldValue(PyObject* _self,
929931
bool seq = upb_FieldDef_IsRepeated(field);
930932

931933
if ((PyUpb_Message_IsStub(self) && (submsg || seq)) ||
932-
(submsg && !seq && !upb_Message_Has(self->ptr.msg, field))) {
934+
(submsg && !seq && !upb_Message_HasFieldByDef(self->ptr.msg, field))) {
933935
return PyUpb_Message_GetStub(self, field);
934936
} else if (seq) {
935937
return PyUpb_Message_GetPresentWrapper(self, field);
@@ -959,7 +961,7 @@ int PyUpb_Message_SetFieldValue(PyObject* _self, const upb_FieldDef* field,
959961
return -1;
960962
}
961963

962-
upb_Message_Set(self->ptr.msg, field, val, arena);
964+
upb_Message_SetFieldByDef(self->ptr.msg, field, val, arena);
963965
return 0;
964966
}
965967

@@ -1041,7 +1043,7 @@ static PyObject* PyUpb_Message_HasField(PyObject* _self, PyObject* arg) {
10411043

10421044
if (PyUpb_Message_IsStub(self)) Py_RETURN_FALSE;
10431045

1044-
return PyBool_FromLong(field ? upb_Message_Has(self->ptr.msg, field)
1046+
return PyBool_FromLong(field ? upb_Message_HasFieldByDef(self->ptr.msg, field)
10451047
: upb_Message_WhichOneof(self->ptr.msg, oneof) !=
10461048
NULL);
10471049
}
@@ -1288,21 +1290,21 @@ static PyObject* PyUpb_Message_Clear(PyUpb_Message* self, PyObject* args) {
12881290
const upb_FieldDef* f = key;
12891291
PyUpb_WeakMap_DeleteIter(subobj_map, &iter);
12901292
if (upb_FieldDef_IsMap(f)) {
1291-
assert(upb_Message_Get(msg, f).map_val == NULL);
1293+
assert(upb_Message_GetFieldByDef(msg, f).map_val == NULL);
12921294
PyUpb_MapContainer_Reify(obj, NULL);
12931295
} else if (upb_FieldDef_IsRepeated(f)) {
1294-
assert(upb_Message_Get(msg, f).array_val == NULL);
1296+
assert(upb_Message_GetFieldByDef(msg, f).array_val == NULL);
12951297
PyUpb_RepeatedContainer_Reify(obj, NULL);
12961298
} else {
1297-
assert(!upb_Message_Has(msg, f));
1299+
assert(!upb_Message_HasFieldByDef(msg, f));
12981300
PyUpb_Message* sub = (void*)obj;
12991301
assert(self == sub->ptr.parent);
13001302
PyUpb_Message_Reify(sub, f, NULL);
13011303
}
13021304
}
13031305
}
13041306

1305-
upb_Message_Clear(self->ptr.msg, msgdef);
1307+
upb_Message_ClearByDef(self->ptr.msg, msgdef);
13061308
Py_RETURN_NONE;
13071309
}
13081310

@@ -1335,7 +1337,7 @@ void PyUpb_Message_DoClearField(PyObject* _self, const upb_FieldDef* f) {
13351337
}
13361338

13371339
Py_XDECREF(sub);
1338-
upb_Message_ClearField(self->ptr.msg, f);
1340+
upb_Message_ClearFieldByDef(self->ptr.msg, f);
13391341
}
13401342

13411343
static PyObject* PyUpb_Message_ClearExtension(PyObject* _self, PyObject* arg) {
@@ -1460,7 +1462,7 @@ static PyObject* PyUpb_Message_HasExtension(PyObject* _self,
14601462
return NULL;
14611463
}
14621464
if (!msg) Py_RETURN_FALSE;
1463-
return PyBool_FromLong(upb_Message_Has(msg, f));
1465+
return PyBool_FromLong(upb_Message_HasFieldByDef(msg, f));
14641466
}
14651467

14661468
void PyUpb_Message_ReportInitializationErrors(const upb_MessageDef* msgdef,

upb/json/decode.c

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -938,7 +938,7 @@ static void jsondec_field(jsondec* d, upb_Message* msg,
938938
jsondec_tomsg(d, submsg, subm);
939939
} else {
940940
upb_MessageValue val = jsondec_value(d, f);
941-
upb_Message_Set(msg, f, val, d->arena);
941+
upb_Message_SetFieldByDef(msg, f, val, d->arena);
942942
}
943943

944944
d->debug_field = preserved;
@@ -1091,9 +1091,10 @@ static void jsondec_timestamp(jsondec* d, upb_Message* msg,
10911091
jsondec_err(d, "Timestamp out of range");
10921092
}
10931093

1094-
upb_Message_Set(msg, upb_MessageDef_FindFieldByNumber(m, 1), seconds,
1095-
d->arena);
1096-
upb_Message_Set(msg, upb_MessageDef_FindFieldByNumber(m, 2), nanos, d->arena);
1094+
upb_Message_SetFieldByDef(msg, upb_MessageDef_FindFieldByNumber(m, 1),
1095+
seconds, d->arena);
1096+
upb_Message_SetFieldByDef(msg, upb_MessageDef_FindFieldByNumber(m, 2), nanos,
1097+
d->arena);
10971098
return;
10981099

10991100
malformed:
@@ -1126,9 +1127,10 @@ static void jsondec_duration(jsondec* d, upb_Message* msg,
11261127
nanos.int32_val = -nanos.int32_val;
11271128
}
11281129

1129-
upb_Message_Set(msg, upb_MessageDef_FindFieldByNumber(m, 1), seconds,
1130-
d->arena);
1131-
upb_Message_Set(msg, upb_MessageDef_FindFieldByNumber(m, 2), nanos, d->arena);
1130+
upb_Message_SetFieldByDef(msg, upb_MessageDef_FindFieldByNumber(m, 1),
1131+
seconds, d->arena);
1132+
upb_Message_SetFieldByDef(msg, upb_MessageDef_FindFieldByNumber(m, 2), nanos,
1133+
d->arena);
11321134
}
11331135

11341136
static void jsondec_listvalue(jsondec* d, upb_Message* msg,
@@ -1223,7 +1225,7 @@ static void jsondec_wellknownvalue(jsondec* d, upb_Message* msg,
12231225
UPB_UNREACHABLE();
12241226
}
12251227

1226-
upb_Message_Set(msg, f, val, d->arena);
1228+
upb_Message_SetFieldByDef(msg, f, val, d->arena);
12271229
}
12281230

12291231
static upb_StringView jsondec_mask(jsondec* d, const char* buf,
@@ -1310,7 +1312,7 @@ static const upb_MessageDef* jsondec_typeurl(jsondec* d, upb_Message* msg,
13101312
upb_MessageValue val;
13111313

13121314
val.str_val = type_url;
1313-
upb_Message_Set(msg, type_url_f, val, d->arena);
1315+
upb_Message_SetFieldByDef(msg, type_url_f, val, d->arena);
13141316

13151317
/* Find message name after the last '/' */
13161318
while (ptr > type_url.data && *--ptr != '/') {
@@ -1394,14 +1396,14 @@ static void jsondec_any(jsondec* d, upb_Message* msg, const upb_MessageDef* m) {
13941396
(char**)&encoded.str_val.data, &encoded.str_val.size);
13951397
// TODO(b/235839510): We should fail gracefully here on a bad return status.
13961398
UPB_ASSERT(status == kUpb_EncodeStatus_Ok);
1397-
upb_Message_Set(msg, value_f, encoded, d->arena);
1399+
upb_Message_SetFieldByDef(msg, value_f, encoded, d->arena);
13981400
}
13991401

14001402
static void jsondec_wrapper(jsondec* d, upb_Message* msg,
14011403
const upb_MessageDef* m) {
14021404
const upb_FieldDef* value_f = upb_MessageDef_FindFieldByNumber(m, 1);
14031405
upb_MessageValue val = jsondec_value(d, value_f);
1404-
upb_Message_Set(msg, value_f, val, d->arena);
1406+
upb_Message_SetFieldByDef(msg, value_f, val, d->arena);
14051407
}
14061408

14071409
static void jsondec_wellknown(jsondec* d, upb_Message* msg,

upb/json/encode.c

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -143,8 +143,8 @@ static void jsonenc_timestamp(jsonenc* e, const upb_Message* msg,
143143
const upb_MessageDef* m) {
144144
const upb_FieldDef* seconds_f = upb_MessageDef_FindFieldByNumber(m, 1);
145145
const upb_FieldDef* nanos_f = upb_MessageDef_FindFieldByNumber(m, 2);
146-
int64_t seconds = upb_Message_Get(msg, seconds_f).int64_val;
147-
int32_t nanos = upb_Message_Get(msg, nanos_f).int32_val;
146+
int64_t seconds = upb_Message_GetFieldByDef(msg, seconds_f).int64_val;
147+
int32_t nanos = upb_Message_GetFieldByDef(msg, nanos_f).int32_val;
148148
int L, N, I, J, K, hour, min, sec;
149149

150150
if (seconds < -62135596800) {
@@ -186,8 +186,8 @@ static void jsonenc_duration(jsonenc* e, const upb_Message* msg,
186186
const upb_MessageDef* m) {
187187
const upb_FieldDef* seconds_f = upb_MessageDef_FindFieldByNumber(m, 1);
188188
const upb_FieldDef* nanos_f = upb_MessageDef_FindFieldByNumber(m, 2);
189-
int64_t seconds = upb_Message_Get(msg, seconds_f).int64_val;
190-
int32_t nanos = upb_Message_Get(msg, nanos_f).int32_val;
189+
int64_t seconds = upb_Message_GetFieldByDef(msg, seconds_f).int64_val;
190+
int32_t nanos = upb_Message_GetFieldByDef(msg, nanos_f).int32_val;
191191
bool negative = false;
192192

193193
if (seconds > 315576000000 || seconds < -315576000000 ||
@@ -348,7 +348,7 @@ static void upb_JsonEncode_Float(jsonenc* e, float val) {
348348
static void jsonenc_wrapper(jsonenc* e, const upb_Message* msg,
349349
const upb_MessageDef* m) {
350350
const upb_FieldDef* val_f = upb_MessageDef_FindFieldByNumber(m, 1);
351-
upb_MessageValue val = upb_Message_Get(msg, val_f);
351+
upb_MessageValue val = upb_Message_GetFieldByDef(msg, val_f);
352352
jsonenc_scalar(e, val, val_f);
353353
}
354354

@@ -393,8 +393,8 @@ static void jsonenc_any(jsonenc* e, const upb_Message* msg,
393393
const upb_MessageDef* m) {
394394
const upb_FieldDef* type_url_f = upb_MessageDef_FindFieldByNumber(m, 1);
395395
const upb_FieldDef* value_f = upb_MessageDef_FindFieldByNumber(m, 2);
396-
upb_StringView type_url = upb_Message_Get(msg, type_url_f).str_val;
397-
upb_StringView value = upb_Message_Get(msg, value_f).str_val;
396+
upb_StringView type_url = upb_Message_GetFieldByDef(msg, type_url_f).str_val;
397+
upb_StringView value = upb_Message_GetFieldByDef(msg, value_f).str_val;
398398
const upb_MessageDef* any_m = jsonenc_getanymsg(e, type_url);
399399
const upb_MiniTable* any_layout = upb_MessageDef_MiniTable(any_m);
400400
upb_Arena* arena = jsonenc_arena(e);
@@ -452,7 +452,7 @@ static void jsonenc_fieldpath(jsonenc* e, upb_StringView path) {
452452
static void jsonenc_fieldmask(jsonenc* e, const upb_Message* msg,
453453
const upb_MessageDef* m) {
454454
const upb_FieldDef* paths_f = upb_MessageDef_FindFieldByNumber(m, 1);
455-
const upb_Array* paths = upb_Message_Get(msg, paths_f).array_val;
455+
const upb_Array* paths = upb_Message_GetFieldByDef(msg, paths_f).array_val;
456456
bool first = true;
457457
size_t i, n = 0;
458458

@@ -473,7 +473,7 @@ static void jsonenc_struct(jsonenc* e, const upb_Message* msg,
473473
jsonenc_putstr(e, "{");
474474

475475
const upb_FieldDef* fields_f = upb_MessageDef_FindFieldByNumber(m, 1);
476-
const upb_Map* fields = upb_Message_Get(msg, fields_f).map_val;
476+
const upb_Map* fields = upb_Message_GetFieldByDef(msg, fields_f).map_val;
477477

478478
if (fields) {
479479
const upb_MessageDef* entry_m = upb_FieldDef_MessageSubDef(fields_f);
@@ -498,7 +498,7 @@ static void jsonenc_listvalue(jsonenc* e, const upb_Message* msg,
498498
const upb_MessageDef* m) {
499499
const upb_FieldDef* values_f = upb_MessageDef_FindFieldByNumber(m, 1);
500500
const upb_MessageDef* values_m = upb_FieldDef_MessageSubDef(values_f);
501-
const upb_Array* values = upb_Message_Get(msg, values_f).array_val;
501+
const upb_Array* values = upb_Message_GetFieldByDef(msg, values_f).array_val;
502502
size_t i;
503503
bool first = true;
504504

@@ -738,8 +738,8 @@ static void jsonenc_msgfields(jsonenc* e, const upb_Message* msg,
738738
int n = upb_MessageDef_FieldCount(m);
739739
for (i = 0; i < n; i++) {
740740
f = upb_MessageDef_Field(m, i);
741-
if (!upb_FieldDef_HasPresence(f) || upb_Message_Has(msg, f)) {
742-
jsonenc_fieldval(e, f, upb_Message_Get(msg, f), &first);
741+
if (!upb_FieldDef_HasPresence(f) || upb_Message_HasFieldByDef(msg, f)) {
742+
jsonenc_fieldval(e, f, upb_Message_GetFieldByDef(msg, f), &first);
743743
}
744744
}
745745
} else {

upb/message/test.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -449,7 +449,7 @@ TEST(MessageTest, MaxRequiredFields) {
449449
for (int i = 1; i <= 61; i++) {
450450
upb::FieldDefPtr f = m.FindFieldByNumber(i);
451451
ASSERT_TRUE(f);
452-
upb_Message_Set(test_msg, f.ptr(), val, arena.ptr());
452+
upb_Message_SetFieldByDef(test_msg, f.ptr(), val, arena.ptr());
453453
}
454454

455455
// Fails, field 63 still isn't set.
@@ -460,7 +460,7 @@ TEST(MessageTest, MaxRequiredFields) {
460460
// Succeeds, all required fields are set.
461461
upb::FieldDefPtr f = m.FindFieldByNumber(62);
462462
ASSERT_TRUE(f);
463-
upb_Message_Set(test_msg, f.ptr(), val, arena.ptr());
463+
upb_Message_SetFieldByDef(test_msg, f.ptr(), val, arena.ptr());
464464
serialized = upb_test_TestMaxRequiredFields_serialize_ex(
465465
test_msg, kUpb_EncodeOption_CheckRequired, arena.ptr(), &size);
466466
ASSERT_TRUE(serialized != nullptr);

upb/reflection/field_def.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ extern "C" {
4747
const upb_OneofDef* upb_FieldDef_ContainingOneof(const upb_FieldDef* f);
4848
const upb_MessageDef* upb_FieldDef_ContainingType(const upb_FieldDef* f);
4949
upb_CType upb_FieldDef_CType(const upb_FieldDef* f);
50+
upb_MessageValue upb_FieldDef_Default(const upb_FieldDef* f);
5051
const upb_EnumDef* upb_FieldDef_EnumSubDef(const upb_FieldDef* f);
5152
const upb_MessageDef* upb_FieldDef_ExtensionScope(const upb_FieldDef* f);
5253
const upb_FileDef* upb_FieldDef_File(const upb_FieldDef* f);

0 commit comments

Comments
 (0)