Skip to content

Commit e4cdf44

Browse files
adazhcopybara-github
authored andcommitted
upb: Update _upb_map_next signature to return a boolean and remove the _nextmutable Map iterator API.
PiperOrigin-RevId: 730964212
1 parent 3369ca4 commit e4cdf44

File tree

2 files changed

+2
-14
lines changed

2 files changed

+2
-14
lines changed

upb/message/internal/map.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,14 +102,13 @@ UPB_INLINE void _upb_map_fromvalue(upb_value val, void* out, size_t size) {
102102
}
103103
}
104104

105-
UPB_INLINE void* _upb_map_next(const struct upb_Map* map, size_t* iter) {
105+
UPB_INLINE bool _upb_map_next(const struct upb_Map* map, size_t* iter) {
106106
upb_strtable_iter it;
107107
it.t = &map->t.strtable;
108108
it.index = *iter;
109109
upb_strtable_next(&it);
110110
*iter = it.index;
111-
if (upb_strtable_done(&it)) return NULL;
112-
return (void*)str_tabent(&it);
111+
return !upb_strtable_done(&it);
113112
}
114113

115114
UPB_INLINE void _upb_Map_Clear(struct upb_Map* map) {

upb_generator/c/generator.cc

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -676,17 +676,6 @@ void GenerateMapSetters(upb::FieldDefPtr field, const DefPoolPair& pools,
676676
)cc",
677677
msg_name, resolved_name, MapKeyCType(field),
678678
FieldInitializer(pools, field, options), MapKeySize(field, "key"));
679-
output(
680-
R"cc(
681-
UPB_INLINE $0 $1_$2_nextmutable($1* msg, size_t* iter) {
682-
const upb_MiniTableField field = $3;
683-
upb_Map* map = (upb_Map*)upb_Message_GetMap(UPB_UPCAST(msg), &field);
684-
if (!map) return NULL;
685-
return ($0)_upb_map_next(map, iter);
686-
}
687-
)cc",
688-
CType(field), msg_name, resolved_name,
689-
FieldInitializerStrong(pools, field, options));
690679
}
691680

692681
void GenerateRepeatedSetters(upb::FieldDefPtr field, const DefPoolPair& pools,

0 commit comments

Comments
 (0)