diff options
Diffstat (limited to 'upb_msg.c')
-rw-r--r-- | upb_msg.c | 13 |
1 files changed, 10 insertions, 3 deletions
@@ -329,10 +329,10 @@ static void submsg_start_cb(struct upb_parse_state *_s, void *user_field_desc) if(!s->merge) upb_msg_clear(frame->data, f->ref.msg); } -void upb_msg_parse_init(struct upb_msg_parse_state *s, void *msg, - struct upb_msg *m, bool merge, bool byref) +void upb_msg_parse_reset(struct upb_msg_parse_state *s, void *msg, + struct upb_msg *m, bool merge, bool byref) { - upb_parse_init(&s->s, sizeof(struct parse_frame_data)); + upb_parse_reset(&s->s); s->merge = merge; s->byref = byref; if(!merge && msg == NULL) msg = upb_msgdata_new(m); @@ -343,6 +343,13 @@ void upb_msg_parse_init(struct upb_msg_parse_state *s, void *msg, s->s.submsg_start_cb = submsg_start_cb; } +void upb_msg_parse_init(struct upb_msg_parse_state *s, void *msg, + struct upb_msg *m, bool merge, bool byref) +{ + upb_parse_init(&s->s, sizeof(struct parse_frame_data)); + upb_msg_parse_reset(s, msg, m, merge, byref); +} + void upb_msg_parse_free(struct upb_msg_parse_state *s) { upb_parse_free(&s->s); |