Unverified Commit 0f4ad857 authored by Paul Yang's avatar Paul Yang Committed by GitHub

For encoding upb needs descriptor type instead of type. (#4354)

parent 55d07586
...@@ -215,7 +215,7 @@ static upb_array *upb_getorcreatearr(upb_decstate *d, ...@@ -215,7 +215,7 @@ static upb_array *upb_getorcreatearr(upb_decstate *d,
if (!arr) { if (!arr) {
return NULL; return NULL;
} }
upb_array_init(arr, upb_desctype_to_fieldtype[field->type], upb_array_init(arr, upb_desctype_to_fieldtype[field->descriptortype],
upb_arena_alloc(upb_env_arena(d->env))); upb_arena_alloc(upb_env_arena(d->env)));
*(upb_array**)&frame->msg[field->offset] = arr; *(upb_array**)&frame->msg[field->offset] = arr;
} }
...@@ -298,7 +298,7 @@ static bool upb_decode_varintfield(upb_decstate *d, upb_decframe *frame, ...@@ -298,7 +298,7 @@ static bool upb_decode_varintfield(upb_decstate *d, upb_decframe *frame,
CHK(field_mem); CHK(field_mem);
CHK(upb_decode_varint(&d->ptr, frame->limit, &val)); CHK(upb_decode_varint(&d->ptr, frame->limit, &val));
switch ((upb_descriptortype_t)field->type) { switch ((upb_descriptortype_t)field->descriptortype) {
case UPB_DESCRIPTOR_TYPE_INT64: case UPB_DESCRIPTOR_TYPE_INT64:
case UPB_DESCRIPTOR_TYPE_UINT64: case UPB_DESCRIPTOR_TYPE_UINT64:
memcpy(field_mem, &val, sizeof(val)); memcpy(field_mem, &val, sizeof(val));
...@@ -343,7 +343,7 @@ static bool upb_decode_64bitfield(upb_decstate *d, upb_decframe *frame, ...@@ -343,7 +343,7 @@ static bool upb_decode_64bitfield(upb_decstate *d, upb_decframe *frame,
CHK(field_mem); CHK(field_mem);
CHK(upb_decode_64bit(&d->ptr, frame->limit, &val)); CHK(upb_decode_64bit(&d->ptr, frame->limit, &val));
switch ((upb_descriptortype_t)field->type) { switch ((upb_descriptortype_t)field->descriptortype) {
case UPB_DESCRIPTOR_TYPE_DOUBLE: case UPB_DESCRIPTOR_TYPE_DOUBLE:
case UPB_DESCRIPTOR_TYPE_FIXED64: case UPB_DESCRIPTOR_TYPE_FIXED64:
case UPB_DESCRIPTOR_TYPE_SFIXED64: case UPB_DESCRIPTOR_TYPE_SFIXED64:
...@@ -367,7 +367,7 @@ static bool upb_decode_32bitfield(upb_decstate *d, upb_decframe *frame, ...@@ -367,7 +367,7 @@ static bool upb_decode_32bitfield(upb_decstate *d, upb_decframe *frame,
CHK(field_mem); CHK(field_mem);
CHK(upb_decode_32bit(&d->ptr, frame->limit, &val)); CHK(upb_decode_32bit(&d->ptr, frame->limit, &val));
switch ((upb_descriptortype_t)field->type) { switch ((upb_descriptortype_t)field->descriptortype) {
case UPB_DESCRIPTOR_TYPE_FLOAT: case UPB_DESCRIPTOR_TYPE_FLOAT:
case UPB_DESCRIPTOR_TYPE_FIXED32: case UPB_DESCRIPTOR_TYPE_FIXED32:
case UPB_DESCRIPTOR_TYPE_SFIXED32: case UPB_DESCRIPTOR_TYPE_SFIXED32:
...@@ -415,7 +415,7 @@ static bool upb_decode_toarray(upb_decstate *d, upb_decframe *frame, ...@@ -415,7 +415,7 @@ static bool upb_decode_toarray(upb_decstate *d, upb_decframe *frame,
return true; \ return true; \
} }
switch ((upb_descriptortype_t)field->type) { switch ((upb_descriptortype_t)field->descriptortype) {
case UPB_DESCRIPTOR_TYPE_STRING: case UPB_DESCRIPTOR_TYPE_STRING:
case UPB_DESCRIPTOR_TYPE_BYTES: { case UPB_DESCRIPTOR_TYPE_BYTES: {
void *field_mem = upb_array_add(arr, 1); void *field_mem = upb_array_add(arr, 1);
...@@ -465,7 +465,7 @@ static bool upb_decode_delimitedfield(upb_decstate *d, upb_decframe *frame, ...@@ -465,7 +465,7 @@ static bool upb_decode_delimitedfield(upb_decstate *d, upb_decframe *frame,
if (field->label == UPB_LABEL_REPEATED) { if (field->label == UPB_LABEL_REPEATED) {
return upb_decode_toarray(d, frame, field_start, field, val); return upb_decode_toarray(d, frame, field_start, field, val);
} else { } else {
switch ((upb_descriptortype_t)field->type) { switch ((upb_descriptortype_t)field->descriptortype) {
case UPB_DESCRIPTOR_TYPE_STRING: case UPB_DESCRIPTOR_TYPE_STRING:
case UPB_DESCRIPTOR_TYPE_BYTES: { case UPB_DESCRIPTOR_TYPE_BYTES: {
void *field_mem = upb_decode_prepareslot(d, frame, field); void *field_mem = upb_decode_prepareslot(d, frame, field);
...@@ -519,7 +519,7 @@ static bool upb_decode_field(upb_decstate *d, upb_decframe *frame) { ...@@ -519,7 +519,7 @@ static bool upb_decode_field(upb_decstate *d, upb_decframe *frame) {
case UPB_WIRE_TYPE_DELIMITED: case UPB_WIRE_TYPE_DELIMITED:
return upb_decode_delimitedfield(d, frame, field_start, field); return upb_decode_delimitedfield(d, frame, field_start, field);
case UPB_WIRE_TYPE_START_GROUP: case UPB_WIRE_TYPE_START_GROUP:
CHK(field->type == UPB_DESCRIPTOR_TYPE_GROUP); CHK(field->descriptortype == UPB_DESCRIPTOR_TYPE_GROUP);
return upb_decode_submsg(d, frame, frame->limit, field, field_number); return upb_decode_submsg(d, frame, frame->limit, field, field_number);
case UPB_WIRE_TYPE_END_GROUP: case UPB_WIRE_TYPE_END_GROUP:
CHK(frame->group_number == field_number) CHK(frame->group_number == field_number)
...@@ -3100,7 +3100,7 @@ static bool upb_encode_array(upb_encstate *e, const char *field_mem, ...@@ -3100,7 +3100,7 @@ static bool upb_encode_array(upb_encstate *e, const char *field_mem,
return true; return true;
} }
UPB_ASSERT(arr->type == upb_desctype_to_fieldtype2[f->type]); UPB_ASSERT(arr->type == upb_desctype_to_fieldtype2[f->descriptortype]);
#define VARINT_CASE(ctype, encode) { \ #define VARINT_CASE(ctype, encode) { \
ctype *start = arr->data; \ ctype *start = arr->data; \
...@@ -3115,7 +3115,7 @@ static bool upb_encode_array(upb_encstate *e, const char *field_mem, ...@@ -3115,7 +3115,7 @@ static bool upb_encode_array(upb_encstate *e, const char *field_mem,
break; \ break; \
do { ; } while(0) do { ; } while(0)
switch (f->type) { switch (f->descriptortype) {
case UPB_DESCRIPTOR_TYPE_DOUBLE: case UPB_DESCRIPTOR_TYPE_DOUBLE:
CHK(upb_put_fixedarray(e, arr, sizeof(double))); CHK(upb_put_fixedarray(e, arr, sizeof(double)));
break; break;
...@@ -3205,7 +3205,7 @@ static bool upb_encode_scalarfield(upb_encstate *e, const char *field_mem, ...@@ -3205,7 +3205,7 @@ static bool upb_encode_scalarfield(upb_encstate *e, const char *field_mem,
upb_put_tag(e, f->number, wire_type); \ upb_put_tag(e, f->number, wire_type); \
} while(0) } while(0)
switch (f->type) { switch (f->descriptortype) {
case UPB_DESCRIPTOR_TYPE_DOUBLE: case UPB_DESCRIPTOR_TYPE_DOUBLE:
CASE(double, double, UPB_WIRE_TYPE_64BIT, val); CASE(double, double, UPB_WIRE_TYPE_64BIT, val);
case UPB_DESCRIPTOR_TYPE_FLOAT: case UPB_DESCRIPTOR_TYPE_FLOAT:
...@@ -4108,7 +4108,7 @@ static uint8_t upb_msg_fieldsize(const upb_msglayout_fieldinit_v1 *field) { ...@@ -4108,7 +4108,7 @@ static uint8_t upb_msg_fieldsize(const upb_msglayout_fieldinit_v1 *field) {
if (field->label == UPB_LABEL_REPEATED) { if (field->label == UPB_LABEL_REPEATED) {
return sizeof(void*); return sizeof(void*);
} else { } else {
return upb_msgval_sizeof(field->type); return upb_msgval_sizeof(field->descriptortype);
} }
} }
...@@ -4315,7 +4315,7 @@ static upb_msglayout *upb_msglayout_new(const upb_msgdef *m) { ...@@ -4315,7 +4315,7 @@ static upb_msglayout *upb_msglayout_new(const upb_msgdef *m) {
upb_msglayout_fieldinit_v1 *field = &fields[upb_fielddef_index(f)]; upb_msglayout_fieldinit_v1 *field = &fields[upb_fielddef_index(f)];
field->number = upb_fielddef_number(f); field->number = upb_fielddef_number(f);
field->type = upb_fielddef_type(f); field->descriptortype = upb_fielddef_descriptortype(f);
field->label = upb_fielddef_label(f); field->label = upb_fielddef_label(f);
if (upb_fielddef_containingoneof(f)) { if (upb_fielddef_containingoneof(f)) {
......
...@@ -6747,7 +6747,7 @@ typedef struct { ...@@ -6747,7 +6747,7 @@ typedef struct {
uint16_t hasbit; /* UPB_NO_HASBIT if no hasbit. */ uint16_t hasbit; /* UPB_NO_HASBIT if no hasbit. */
uint16_t oneof_index; /* UPB_NOT_IN_ONEOF if not in a oneof. */ uint16_t oneof_index; /* UPB_NOT_IN_ONEOF if not in a oneof. */
uint16_t submsg_index; /* UPB_NO_SUBMSG if no submsg. */ uint16_t submsg_index; /* UPB_NO_SUBMSG if no submsg. */
uint8_t type; uint8_t descriptortype;
uint8_t label; uint8_t label;
} upb_msglayout_fieldinit_v1; } upb_msglayout_fieldinit_v1;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment