X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=pb_common.c;h=4fb7186b733f8fd0fad573eaf081457a9bcfbbb1;hb=9deebe0f0f824ca9f2628fe7d927b2e8bf141be5;hp=385c0193f8afcf89486464401b8e054d95218486;hpb=d2e023e3e5ef888e176292f149d1ba93ba270c94;p=apps%2Fagl-service-can-low-level.git diff --git a/pb_common.c b/pb_common.c index 385c0193..4fb7186b 100644 --- a/pb_common.c +++ b/pb_common.c @@ -42,11 +42,11 @@ bool pb_field_iter_next(pb_field_iter_t *iter) size_t prev_size = prev_field->data_size; if (PB_HTYPE(prev_field->type) == PB_HTYPE_ONEOF && - PB_HTYPE(iter->pos->type) == PB_HTYPE_ONEOF) + PB_HTYPE(iter->pos->type) == PB_HTYPE_ONEOF && + iter->pos->data_offset == PB_SIZE_MAX) { /* Don't advance pointers inside unions */ - prev_size = 0; - iter->pData = (char*)iter->pData - prev_field->data_offset; + return true; } else if (PB_ATYPE(prev_field->type) == PB_ATYPE_STATIC && PB_HTYPE(prev_field->type) == PB_HTYPE_REPEATED)