Lines Matching refs:frame
5527 * from outer frames if this frame has no START* handler). Not implemented for
5562 * though it is required to convert the established type of an outer frame
5563 * ("closure_type") into the established type of an inner frame (represented in
7413 /* Pushes a frame onto the decoder stack. */
7444 /* Pops a frame from the decoder stack. */
9180 static void init_frame(upb_jsonparser_frame* frame) {
9181 frame->m = NULL;
9182 frame->f = NULL;
9183 frame->name_table = NULL;
9184 frame->is_repeated = false;
9185 frame->is_map = false;
9186 frame->is_mapentry = false;
9187 frame->mapfield = NULL;
9188 frame->is_any = false;
9189 frame->any_frame = NULL;
9190 frame->is_unknown_field = false;
9264 upb_jsonparser_any_frame *frame;
9266 frame = upb_arena_malloc(p->arena, sizeof(upb_jsonparser_any_frame));
9268 frame->encoder_handlercache = upb_pb_encoder_newcache();
9269 frame->parser_codecache = upb_json_codecache_new();
9270 frame->parser = NULL;
9271 frame->before_type_url_start = NULL;
9272 frame->before_type_url_end = NULL;
9273 frame->after_type_url_start = NULL;
9275 upb_stringsink_init(&frame->stringsink);
9277 return frame;
9282 upb_jsonparser_any_frame *frame,
9289 h = upb_handlercache_get(frame->encoder_handlercache, payload_type);
9290 encoder = upb_pb_encoder_create(p->arena, h, frame->stringsink.sink);
9293 parser_method = upb_json_codecache_get(frame->parser_codecache, payload_type);
9294 upb_sink_reset(&frame->sink, h, encoder);
9295 frame->parser =
9296 upb_json_parser_create(p->arena, parser_method, p->symtab, frame->sink,
9300 static void json_parser_any_frame_free(upb_jsonparser_any_frame *frame) {
9301 upb_handlercache_free(frame->encoder_handlercache);
9302 upb_json_codecache_free(frame->parser_codecache);
9303 upb_stringsink_uninit(&frame->stringsink);
9307 upb_jsonparser_any_frame *frame) {
9308 return frame->parser != NULL;
9312 upb_jsonparser_any_frame *frame) {
9313 return frame->before_type_url_start != frame->before_type_url_end;
9317 upb_jsonparser_any_frame *frame) {
9318 return frame->after_type_url_start != NULL;
9322 upb_jsonparser_any_frame *frame) {
9323 return json_parser_any_frame_has_value_before_type_url(frame) ||
9324 json_parser_any_frame_has_value_after_type_url(frame);
9328 upb_jsonparser_any_frame *frame,
9330 if (frame->parser == NULL) {
9331 frame->before_type_url_end = ptr;
9336 upb_jsonparser_any_frame *frame,
9338 if (json_parser_any_frame_has_type_url(frame) &&
9339 frame->after_type_url_start == NULL) {
9340 frame->after_type_url_start = ptr;
9369 static void set_name_table(upb_json_parser *p, upb_jsonparser_frame *frame) {
9375 ok = upb_inttable_lookupptr(&cache->methods, frame->m, &v);
9379 frame->name_table = &method->name_table;
10205 /* Start a new parser frame: parser frames correspond one-to-one with
10206 * handler frames, and string events occur in a sub-frame. */
10228 /* No need to push a frame -- numeric values in quotes remain in the
10229 * current parser frame. These values must accmulate so we can convert
10745 /* Start a new parser frame: parser frames correspond one-to-one with
10746 * handler frames, and string events occur in a sub-frame. */
10875 /* Map entry: p->top->sink is the seq frame, so we need to start a frame
10876 * for the mapentry itself, and then set |f| in that frame so that the map
10877 * value field is parsed, and also set a flag to end the frame after the
10892 * the key field value to the sink, and these handlers will pop the frame
10898 /* send STARTMSG in submsg frame. */
10905 p->top->is_mapentry = true; /* set up to pop frame after value is parsed. */
10967 /* If we just parsed a map-entry value, end that frame too. */
10978 /* send ENDSUBMSG in repeated-field-of-mapentries frame. */
11011 /* Beginning of a map. Start a new parser frame in a repeated-field
11028 /* Beginning of a subobject. Start a new parser frame in the submsg
11329 /* Deallocate any parse frame. */
12421 * frame depth.