Lines Matching defs:top
7056 return d->top->end_ofs - offset(d);
7076 size_t delim_ofs = d->top->end_ofs - d->bufstart_ofs;
7192 if (d->top->groupnum < 0) {
7415 upb_pbdecoder_frame *fr = d->top;
7429 d->top = fr;
7438 if (!decoder_push(d, d->top->end_ofs))
7440 d->top->groupnum = arg;
7445 static void decoder_pop(upb_pbdecoder *d) { d->top--; }
7505 if (fieldnum == -d->top->groupnum) {
7507 } else if (fieldnum == d->top->groupnum) {
7519 if (d->top->groupnum >= 0) {
7521 upb_sink_putunknown(d->top->sink, d->checkpoint, d->ptr - d->checkpoint);
7532 bool found = upb_inttable_lookup32(d->top->dispatch, DISPATCH_ENDMSG, &v);
7534 d->pc = d->top->base + upb_value_getuint64(v);
7544 upb_inttable *dispatch = d->top->dispatch;
7562 d->pc = d->top->base + (v >> 16);
7568 d->pc = d->top->base + upb_value_getuint64(val);
7597 UPB_ASSERT(d->top != d->stack);
7598 return d->top - 1;
7615 upb_sink_put ## name(d->top->sink, arg, (convfunc)(val)); \
7638 (int)((d->top->end_ofs - d->bufstart_ofs) - (d->ptr - d->buf)),
7662 d->top->base = d->pc - 1;
7663 memcpy(&d->top->dispatch, d->pc, sizeof(void*));
7667 CHECK_SUSPEND(upb_sink_startmsg(d->top->sink));
7670 CHECK_SUSPEND(upb_sink_endmsg(d->top->sink, d->status));
7674 CHECK_SUSPEND(upb_sink_startseq(outer->sink, arg, &d->top->sink));
7677 CHECK_SUSPEND(upb_sink_endseq(d->top->sink, arg));
7681 CHECK_SUSPEND(upb_sink_startsubmsg(outer->sink, arg, &d->top->sink));
7684 upb_sink subsink = (d->top + 1)->sink;
7685 CHECK_SUSPEND(upb_sink_endsubmsg(d->top->sink, subsink, arg));
7690 CHECK_SUSPEND(upb_sink_startstr(outer->sink, arg, len, &d->top->sink));
7697 size_t n = upb_sink_putstring(d->top->sink, arg, d->ptr, len, handle);
7718 CHECK_SUSPEND(upb_sink_endstr(d->top->sink, arg));
7724 d->top->groupnum = *d->pc++;
7727 UPB_ASSERT(d->top > d->stack);
7819 d->top->end_ofs = UINT64_MAX;
7844 if (d->top->end_ofs != UINT64_MAX) {
7851 d->top->end_ofs = end;
7891 d->top = d->stack;
7892 d->top->groupnum = 0;
7928 d->top->sink = sink;
7953 UPB_ASSERT(d->top >= d->stack);
7955 if (max < (size_t)(d->top - d->stack)) {
8035 ** and lengths. When the top-level submessage ends, we can go beginning to end,
8037 ** At the top level though, no buffering is required.
8063 * Note that the top-level menssage is not in any segment because it does not
8090 /* The beginning of the current run, or undefined if we are at the top
8099 int *stack, *top, *stacklimit;
8115 static upb_pb_encoder_segment *top(upb_pb_encoder *e) {
8116 return &e->segbuf[*e->top];
8159 if (!e->top) {
8190 top(e)->msglen += run_len;
8198 if (e->top) {
8203 if (++e->top == e->stacklimit) {
8225 /* We were previously at the top level, start buffering. */
8227 e->top = e->stack;
8231 *e->top = (int)(e->segptr - e->segbuf);
8244 msglen = top(e)->msglen;
8246 if (e->top == e->stack) {
8259 e->top = NULL;
8263 --e->top;
8264 top(e)->msglen += msglen + upb_varint_size(msglen);
8500 e->top = NULL;
9200 upb_jsonparser_frame *top;
9242 inner = p->top + 1;
9350 bool ok = upb_handlers_getselector(p->top->f, type, &sel);
9357 p, upb_handlers_getprimitivehandlertype(p->top->f));
9361 if ((p->top + 1) == p->limit) {
9459 upb_fielddef_name(p->top->f));
9476 upb_sink_putstring(p->top->sink, sel, output, 3, NULL);
9485 upb_fielddef_name(p->top->f));
9501 upb_sink_putstring(p->top->sink, sel, &output, 1, NULL);
9518 upb_sink_putstring(p->top->sink, sel, output, 2, NULL);
9525 upb_fielddef_name(p->top->f),
9684 upb_sink_putstring(p->top->sink, p->string_selector, buf, len, handle);
9867 if (p->top->f == NULL) {
9906 upb_fieldtype_t type = upb_fielddef_type(p->top->f);
9930 upb_sink_putint32(p->top->sink, parser_getsel(p), (int32_t)val);
9941 upb_sink_putuint32(p->top->sink, parser_getsel(p), (uint32_t)val);
9952 upb_sink_putint64(p->top->sink, parser_getsel(p), val);
9963 upb_sink_putuint64(p->top->sink, parser_getsel(p), val);
9994 upb_sink_put ## smalltype(p->top->sink, parser_getsel(p), \
10008 upb_sink_putdouble(p->top->sink, parser_getsel(p), val);
10014 upb_sink_putfloat(p->top->sink, parser_getsel(p), val);
10047 if (p->top->f == NULL) {
10051 if (upb_fielddef_type(p->top->f) != UPB_TYPE_BOOL) {
10054 upb_fielddef_name(p->top->f));
10058 ok = upb_sink_putbool(p->top->sink, parser_getsel(p), val);
10085 if (p->top->is_unknown_field) {
10190 if (p->top->f == NULL) {
10195 if (p->top->is_any) {
10199 if (upb_fielddef_isstring(p->top->f)) {
10209 upb_sink_startstr(p->top->sink, sel, 0, &inner->sink);
10210 inner->m = p->top->m;
10211 inner->f = p->top->f;
10212 p->top = inner;
10214 if (upb_fielddef_type(p->top->f) == UPB_TYPE_STRING) {
10226 } else if (upb_fielddef_type(p->top->f) != UPB_TYPE_BOOL &&
10227 upb_fielddef_type(p->top->f) != UPB_TYPE_MESSAGE) {
10236 upb_fielddef_name(p->top->f));
10249 inner = p->top + 1;
10252 upb_sink_startstr(p->top->sink, sel, 0, &inner->sink);
10273 json_parser_any_frame_set_payload_type(p, p->top->any_frame, payload_type);
10292 if (p->top->f == NULL) {
10297 if (p->top->is_any) {
10301 switch (upb_fielddef_type(p->top->f)) {
10311 upb_sink_endstr(p->top->sink, sel);
10312 p->top--;
10318 const upb_enumdef *enumdef = upb_fielddef_enumsubdef(p->top->f);
10328 upb_sink_putint32(p->top->sink, sel, int_val);
10478 upb_sink_putint64(p->top->sink, parser_getsel(p), seconds);
10486 upb_sink_putint32(p->top->sink, parser_getsel(p), nanos);
10636 upb_sink_putint32(p->top->sink, parser_getsel(p), nanos);
10722 upb_sink_putint64(p->top->sink, parser_getsel(p), seconds);
10749 upb_sink_startstr(p->top->sink, sel, 0, &inner->sink);
10750 inner->m = p->top->m;
10751 inner->f = p->top->f;
10752 p->top = inner;
10765 upb_sink_putstring(p->top->sink, sel, "_", 1, NULL);
10766 upb_sink_putstring(p->top->sink, sel, &lower, 1, NULL);
10768 upb_sink_putstring(p->top->sink, sel, ptr, 1, NULL);
10785 upb_sink_endstr(p->top->sink, sel);
10786 p->top--;
10793 UPB_ASSERT(!p->top->f);
10810 p->top->f = upb_msgdef_itof(p->top->m, UPB_MAPENTRY_KEY);
10811 if (p->top->f == NULL) {
10815 switch (upb_fielddef_type(p->top->f)) {
10845 upb_sink_startstr(p->top->sink, sel, len, &subsink);
10875 /* Map entry: p->top->sink is the seq frame, so we need to start a frame
10881 mapfield = p->top->mapfield;
10885 p->top->f = mapfield;
10887 upb_sink_startsubmsg(p->top->sink, sel, &inner->sink);
10896 p->top = inner;
10899 upb_sink_startmsg(p->top->sink);
10904 p->top->f = upb_msgdef_itof(p->top->m, UPB_MAPENTRY_VALUE);
10905 p->top->is_mapentry = true; /* set up to pop frame after value is parsed. */
10906 p->top->mapfield = mapfield;
10907 if (p->top->f == NULL) {
10916 UPB_ASSERT(!p->top->f);
10918 if (!p->top->m) {
10919 p->top->is_unknown_field = true;
10924 if (p->top->is_any) {
10926 } else if (p->top->is_map) {
10933 if (upb_strtable_lookup2(p->top->name_table, buf, len, &v)) {
10934 p->top->f = upb_value_getconstptr(v);
10939 p->top->is_unknown_field = true;
10955 upb_strtable_lookup2(p->top->name_table, "type_url", 8, &v);
10956 p->top->f = upb_value_getconstptr(v);
10960 p->top->is_unknown_field = true;
10968 if (p->top->is_mapentry) {
10973 UPB_ASSERT(p->top > p->stack);
10975 upb_sink_endmsg(p->top->sink, p->status);
10976 mapfield = p->top->mapfield;
10979 p->top--;
10982 upb_sink_endsubmsg(p->top->sink, (p->top + 1)->sink, sel);
10985 p->top->f = NULL;
10986 p->top->is_unknown_field = false;
10991 json_parser_any_frame_set_after_type_url_start_once(p->top->any_frame, ptr);
10995 json_parser_any_frame_set_before_type_url_end(p->top->any_frame, ptr);
11000 if (p->top->is_unknown_field) {
11003 p->top = start_jsonparser_frame(p);
11007 if (upb_fielddef_ismap(p->top->f)) {
11017 upb_sink_startseq(p->top->sink, sel, &inner->sink);
11018 inner->m = upb_fielddef_msgsubdef(p->top->f);
11019 inner->mapfield = p->top->f;
11021 p->top = inner;
11024 } else if (upb_fielddef_issubmsg(p->top->f)) {
11034 upb_sink_startsubmsg(p->top->sink, sel, &inner->sink);
11035 inner->m = upb_fielddef_msgsubdef(p->top->f);
11037 p->top = inner;
11040 p->top->is_any = true;
11041 p->top->any_frame = json_parser_any_frame_new(p);
11043 p->top->is_any = false;
11044 p->top->any_frame = NULL;
11051 upb_fielddef_name(p->top->f));
11085 if (p->top->is_map) {
11087 p->top--;
11089 upb_sink_endseq(p->top->sink, sel);
11092 bool is_unknown = p->top->m == NULL;
11093 p->top--;
11096 upb_sink_endsubmsg(p->top->sink, (p->top + 1)->sink, sel);
11134 (!upb_fielddef_isseq(p->top->f) ||
11135 p->top->is_repeated)) {
11139 (!upb_fielddef_isseq(p->top->f) ||
11140 p->top->is_repeated)) {
11147 if (p->top->is_unknown_field) {
11150 p->top = inner;
11155 if (!upb_fielddef_isseq(p->top->f)) {
11158 upb_fielddef_name(p->top->f));
11166 upb_sink_startseq(p->top->sink, sel, &inner->sink);
11167 inner->m = p->top->m;
11168 inner->f = p->top->f;
11170 p->top = inner;
11178 UPB_ASSERT(p->top > p->stack);
11180 p->top--;
11182 if (p->top->is_unknown_field) {
11187 upb_sink_endseq(p->top->sink, sel);
11205 if (!p->top->is_map && p->top->m != NULL) {
11206 upb_sink_startmsg(p->top->sink);
11211 if (!p->top->is_map && p->top->m != NULL) {
11212 upb_sink_endmsg(p->top->sink, p->status);
11218 p->top->any_frame->before_type_url_start = ptr;
11219 p->top->any_frame->before_type_url_end = ptr;
11229 if (json_parser_any_frame_has_value(p->top->any_frame) &&
11230 !json_parser_any_frame_has_type_url(p->top->any_frame)) {
11236 if (upb_msgdef_wellknowntype(p->top->any_frame->parser->top->m) !=
11240 if (json_parser_any_frame_has_value_before_type_url(p->top->any_frame)) {
11241 p->top->any_frame->before_type_url_start =
11242 memchr(p->top->any_frame->before_type_url_start, ':',
11243 p->top->any_frame->before_type_url_end -
11244 p->top->any_frame->before_type_url_start);
11245 if (p->top->any_frame->before_type_url_start == NULL) {
11249 p->top->any_frame->before_type_url_start++;
11252 if (json_parser_any_frame_has_value_after_type_url(p->top->any_frame)) {
11253 p->top->any_frame->after_type_url_start =
11254 memchr(p->top->any_frame->after_type_url_start, ':',
11256 p->top->any_frame->after_type_url_start);
11257 if (p->top->any_frame->after_type_url_start == NULL) {
11261 p->top->any_frame->after_type_url_start++;
11266 if (json_parser_any_frame_has_value_before_type_url(p->top->any_frame)) {
11267 if (!parse(p->top->any_frame->parser, NULL,
11268 p->top->any_frame->before_type_url_start,
11269 p->top->any_frame->before_type_url_end -
11270 p->top->any_frame->before_type_url_start, NULL)) {
11275 if (!parse(p->top->any_frame->parser, NULL, "{", 1, NULL)) {
11281 if (json_parser_any_frame_has_value_before_type_url(p->top->any_frame) &&
11282 json_parser_any_frame_has_value_after_type_url(p->top->any_frame)) {
11283 if (!parse(p->top->any_frame->parser, NULL, ",", 1, NULL)) {
11288 if (json_parser_any_frame_has_value_after_type_url(p->top->any_frame)) {
11289 if (!parse(p->top->any_frame->parser, NULL,
11290 p->top->any_frame->after_type_url_start,
11291 packed_end - p->top->any_frame->after_type_url_start, NULL)) {
11296 if (!parse(p->top->any_frame->parser, NULL, "}", 1, NULL)) {
11302 if (!end(p->top->any_frame->parser, NULL)) {
11306 p->top->is_any = false;
11315 inner = p->top + 1;
11318 upb_sink_startstr(p->top->sink, sel, 0, &inner->sink);
11320 upb_sink_putstring(inner->sink, sel, p->top->any_frame->stringsink.ptr,
11321 p->top->any_frame->stringsink.len, NULL);
11330 json_parser_any_frame_free(p->top->any_frame);
11462 return p->top == p->stack && p->top->f == NULL && !p->top->is_unknown_field;
11466 return p->top->m != NULL && upb_msgdef_wellknowntype(p->top->m) == type;
11470 return p->top->f != NULL &&
11471 upb_fielddef_issubmsg(p->top->f) &&
11472 (upb_msgdef_wellknowntype(upb_fielddef_msgsubdef(p->top->f))
11477 return p->top->f != NULL &&
11478 upb_fielddef_issubmsg(p->top->f) &&
11479 upb_msgdef_isnumberwrapper(upb_fielddef_msgsubdef(p->top->f));
11483 return p->top->m != NULL && upb_msgdef_isnumberwrapper(p->top->m);
11487 return p->top->m != NULL && upb_msgdef_isnumberwrapper(p->top->m);
11491 return p->top->f != NULL &&
11492 upb_fielddef_issubmsg(p->top->f) &&
11493 is_string_wrapper(upb_fielddef_msgsubdef(p->top->f));
11497 return p->top->m != NULL && is_string_wrapper(p->top->m);
11501 return p->top->m != NULL && is_string_wrapper(p->top->m);
11505 return p->top->f != NULL &&
11506 upb_fielddef_issubmsg(p->top->f) &&
11507 is_fieldmask(upb_fielddef_msgsubdef(p->top->f));
11511 return p->top->m != NULL && is_fieldmask(p->top->m);
11803 int top = parser->parser_top;
11893 { p--; {cs = stack[--top]; goto _again;} }
11897 { p--; {stack[top++] = cs; cs = 23;goto _again;} }
11925 { p--; {cs = stack[--top]; goto _again;} }
11985 { p--; {cs = stack[--top]; goto _again;} }
12009 { p--; {cs = stack[--top]; goto _again;} }
12029 { p--; {cs = stack[--top]; goto _again;} }
12035 {stack[top++] = cs; cs = 47;goto _again;}
12037 {stack[top++] = cs; cs = 40;goto _again;}
12039 {stack[top++] = cs; cs = 75;goto _again;}
12041 {stack[top++] = cs; cs = 32;goto _again;}
12047 { p--; {stack[top++] = cs; cs = 78;goto _again;} }
12139 { p--; {cs = stack[--top]; goto _again;} }
12159 { p--; {cs = stack[--top]; if ( p == pe )
12202 parser->parser_top = top;
12227 int top;
12229 p->top = p->stack;
12230 init_frame(p->top);
12237 top = 0;
12242 p->parser_top = top;
12312 p->top->sink = output;
12313 p->top->m = upb_handlers_msgdef(output.handlers);
12315 p->top->is_any = true;
12316 p->top->any_frame = json_parser_any_frame_new(p);
12318 p->top->is_any = false;
12319 p->top->any_frame = NULL;
12321 set_name_table(p, p->top);