implement upb_Map_Next() as the new upb_Map iterator update upb to use upb_Map_Next() remove upb_MapIterator_SetValue(), which was declared but not actually implemented remove upb_MapIterator_Done(), which was implemented but not actually used PiperOrigin-RevId: 489989481
diff --git a/python/convert.c b/python/convert.c index 5c979f4..4cbde00 100644 --- a/python/convert.c +++ b/python/convert.c
@@ -334,9 +334,8 @@ const upb_FieldDef* val_f = upb_MessageDef_Field(entry_m, 1); size_t iter = kUpb_Map_Begin; - while (upb_MapIterator_Next(map1, &iter)) { - upb_MessageValue key = upb_MapIterator_Key(map1, iter); - upb_MessageValue val1 = upb_MapIterator_Value(map1, iter); + upb_MessageValue key, val1; + while (upb_Map_Next(map1, &key, &val1, &iter)) { upb_MessageValue val2; if (!upb_Map_Get(map2, key, &val2)) return false; if (!PyUpb_ValueEq(val1, val2, val_f)) return false;
diff --git a/python/map.c b/python/map.c index bdfb34d..b3a8fff 100644 --- a/python/map.c +++ b/python/map.c
@@ -318,11 +318,10 @@ const upb_FieldDef* key_f = upb_MessageDef_Field(entry_m, 0); const upb_FieldDef* val_f = upb_MessageDef_Field(entry_m, 1); size_t iter = kUpb_Map_Begin; - while (upb_MapIterator_Next(map, &iter)) { - PyObject* key = - PyUpb_UpbToPy(upb_MapIterator_Key(map, iter), key_f, self->arena); - PyObject* val = - PyUpb_UpbToPy(upb_MapIterator_Value(map, iter), val_f, self->arena); + upb_MessageValue map_key, map_val; + while (upb_Map_Next(map, &map_key, &map_val, &iter)) { + PyObject* key = PyUpb_UpbToPy(map_key, key_f, self->arena); + PyObject* val = PyUpb_UpbToPy(map_val, val_f, self->arena); if (!key || !val) { Py_XDECREF(key); Py_XDECREF(val); @@ -474,8 +473,8 @@ } upb_Map* map = PyUpb_MapContainer_GetIfReified(self->map); if (!map) return NULL; - if (!upb_MapIterator_Next(map, &self->iter)) return NULL; - upb_MessageValue key = upb_MapIterator_Key(map, self->iter); + upb_MessageValue key, val; + if (!upb_Map_Next(map, &key, &val, &self->iter)) return NULL; const upb_FieldDef* f = PyUpb_MapContainer_GetField(self->map); const upb_MessageDef* entry_m = upb_FieldDef_MessageSubDef(f); const upb_FieldDef* key_f = upb_MessageDef_Field(entry_m, 0);