From 3387ccaffde71adaf81f481d5a686ae03e001a54 Mon Sep 17 00:00:00 2001 From: Josh Haberman Date: Fri, 19 Aug 2011 19:20:42 -0700 Subject: Avoid longjmp() in successful case. Speeds up short messages by 15-25%. --- upb/pb/decoder.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'upb/pb') diff --git a/upb/pb/decoder.c b/upb/pb/decoder.c index 218c780..df74b48 100644 --- a/upb/pb/decoder.c +++ b/upb/pb/decoder.c @@ -374,7 +374,10 @@ void upb_decoder_decode(upb_decoder *d, upb_status *status) { upb_decoder_enterjit(d); // if (!d->dispatcher.top->is_packed) upb_fhandlers *f = upb_decode_tag(d); - if (!f) upb_decoder_exit2(d); + if (!f) { + upb_decoder_onexit(d); + return; + } f->decode(d, f); upb_decoder_commit(d); } -- cgit v1.2.3