JSON: fix a couple cases of the wrong closure being passed to end handlers.

pull/13171/head
Josh Haberman 8 years ago
parent 8b6e2113b0
commit ea85066489
  1. 4
      upb/json/parser.rl

@ -785,8 +785,8 @@ static bool end_stringval(upb_json_parser *p) {
case UPB_TYPE_STRING: { case UPB_TYPE_STRING: {
upb_selector_t sel = getsel_for_handlertype(p, UPB_HANDLER_ENDSTR); upb_selector_t sel = getsel_for_handlertype(p, UPB_HANDLER_ENDSTR);
upb_sink_endstr(&p->top->sink, sel);
p->top--; p->top--;
upb_sink_endstr(&p->top->sink, sel);
break; break;
} }
@ -884,7 +884,7 @@ static bool parse_mapentry_key(upb_json_parser *p) {
sel = getsel_for_handlertype(p, UPB_HANDLER_STRING); sel = getsel_for_handlertype(p, UPB_HANDLER_STRING);
upb_sink_putstring(&subsink, sel, buf, len, NULL); upb_sink_putstring(&subsink, sel, buf, len, NULL);
sel = getsel_for_handlertype(p, UPB_HANDLER_ENDSTR); sel = getsel_for_handlertype(p, UPB_HANDLER_ENDSTR);
upb_sink_endstr(&subsink, sel); upb_sink_endstr(&p->top->sink, sel);
multipart_end(p); multipart_end(p);
break; break;
} }

Loading…
Cancel
Save