diff options
Diffstat (limited to 'upb/msg.c')
-rw-r--r-- | upb/msg.c | 16 |
1 files changed, 3 insertions, 13 deletions
@@ -1,5 +1,6 @@ #include "upb/msg.h" +#include "upb/structs.int.h" static bool is_power_of_two(size_t val) { return (val & (val - 1)) == 0; @@ -170,7 +171,6 @@ static size_t upb_msglayout_place(upb_msglayout *l, size_t size) { size_t ret; l->data.size = align_up(l->data.size, size); - l->data.align = align_up(l->data.align, size); ret = l->data.size; l->data.size += size; return ret; @@ -231,7 +231,7 @@ static upb_msglayout *upb_msglayout_new(const upb_msgdef *m) { upb_msglayout_fieldinit_v1 *fields; upb_msglayout_oneofinit_v1 *oneofs; - for (upb_msg_field_begin(&it, m), hasbit = sizeof(void*) * 8; + for (upb_msg_field_begin(&it, m); !upb_msg_field_done(&it); upb_msg_field_next(&it)) { const upb_fielddef* f = upb_msg_iter_field(&it); @@ -300,7 +300,6 @@ static upb_msglayout *upb_msglayout_new(const upb_msgdef *m) { /* Account for space used by hasbits. */ l->data.size = div_round_up(hasbit, 8); - l->data.align = 1; /* Allocate non-oneof fields. */ for (upb_msg_field_begin(&it, m); !upb_msg_field_done(&it); @@ -343,7 +342,7 @@ static upb_msglayout *upb_msglayout_new(const upb_msgdef *m) { /* Size of the entire structure should be a multiple of its greatest * alignment. */ - l->data.size = align_up(l->data.size, l->data.align); + l->data.size = align_up(l->data.size, 8 /* TODO: track for real? */); if (upb_msglayout_initdefault(l, m)) { return l; @@ -796,15 +795,6 @@ void upb_msg_set(upb_msg *msg, int field_index, upb_msgval val, /** upb_array *****************************************************************/ -struct upb_array { - upb_fieldtype_t type; - uint8_t element_size; - void *data; /* Each element is element_size. */ - size_t len; /* Measured in elements. */ - size_t size; /* Measured in elements. */ - upb_alloc *alloc; -}; - #define DEREF_ARR(arr, i, type) ((type*)arr->data)[i] size_t upb_array_sizeof(upb_fieldtype_t type) { |