diff options
Diffstat (limited to 'upb/legacy_msg_reflection.c')
-rw-r--r-- | upb/legacy_msg_reflection.c | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/upb/legacy_msg_reflection.c b/upb/legacy_msg_reflection.c index 0683dde..81a878b 100644 --- a/upb/legacy_msg_reflection.c +++ b/upb/legacy_msg_reflection.c @@ -167,18 +167,15 @@ size_t upb_array_size(const upb_array *arr) { return arr->len; } -upb_fieldtype_t upb_array_type(const upb_array *arr) { - return arr->type; -} - -upb_msgval upb_array_get(const upb_array *arr, size_t i) { - size_t element_size = upb_msgval_sizeof(arr->type); +upb_msgval upb_array_get(const upb_array *arr, upb_fieldtype_t type, size_t i) { + size_t element_size = upb_msgval_sizeof(type); UPB_ASSERT(i < arr->len); return upb_msgval_read(arr->data, i * element_size, element_size); } -bool upb_array_set(upb_array *arr, size_t i, upb_msgval val) { - size_t element_size = upb_msgval_sizeof(arr->type); +bool upb_array_set(upb_array *arr, upb_fieldtype_t type, size_t i, + upb_msgval val, upb_arena *arena) { + size_t element_size = upb_msgval_sizeof(type); UPB_ASSERT(i <= arr->len); if (i == arr->len) { @@ -189,7 +186,7 @@ bool upb_array_set(upb_array *arr, size_t i, upb_msgval val) { size_t new_size = UPB_MAX(arr->size * 2, 8); size_t new_bytes = new_size * element_size; size_t old_bytes = arr->size * element_size; - upb_alloc *alloc = upb_arena_alloc(arr->arena); + upb_alloc *alloc = upb_arena_alloc(arena); upb_msgval *new_data = upb_realloc(alloc, arr->data, old_bytes, new_bytes); @@ -208,7 +205,6 @@ bool upb_array_set(upb_array *arr, size_t i, upb_msgval val) { return true; } - /** upb_map *******************************************************************/ struct upb_map { |