summaryrefslogtreecommitdiff
path: root/upb/json
diff options
context:
space:
mode:
authorJosh Haberman <jhaberman@gmail.com>2016-08-29 15:55:12 -0700
committerJosh Haberman <jhaberman@gmail.com>2016-08-29 15:55:12 -0700
commitea8506648913eaa5a5734db87dacbc8466f4cc83 (patch)
tree2c35dd170995adf7aaaa8949ddc3268a196d7ca7 /upb/json
parent8b6e2113b072b0cb198695dcd6cfc6384c1e98b8 (diff)
JSON: fix a couple cases of the wrong closure being passed to end handlers.
Diffstat (limited to 'upb/json')
-rw-r--r--upb/json/parser.rl4
1 files changed, 2 insertions, 2 deletions
diff --git a/upb/json/parser.rl b/upb/json/parser.rl
index b0fcdba..15ca477 100644
--- a/upb/json/parser.rl
+++ b/upb/json/parser.rl
@@ -785,8 +785,8 @@ static bool end_stringval(upb_json_parser *p) {
case UPB_TYPE_STRING: {
upb_selector_t sel = getsel_for_handlertype(p, UPB_HANDLER_ENDSTR);
- upb_sink_endstr(&p->top->sink, sel);
p->top--;
+ upb_sink_endstr(&p->top->sink, sel);
break;
}
@@ -884,7 +884,7 @@ static bool parse_mapentry_key(upb_json_parser *p) {
sel = getsel_for_handlertype(p, UPB_HANDLER_STRING);
upb_sink_putstring(&subsink, sel, buf, len, NULL);
sel = getsel_for_handlertype(p, UPB_HANDLER_ENDSTR);
- upb_sink_endstr(&subsink, sel);
+ upb_sink_endstr(&p->top->sink, sel);
multipart_end(p);
break;
}
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback