diff options
author | Joshua Haberman <jhaberman@gmail.com> | 2015-01-14 13:51:37 -0800 |
---|---|---|
committer | Joshua Haberman <jhaberman@gmail.com> | 2015-01-14 13:51:37 -0800 |
commit | 1988a660f4b3093c61f7cbae3d1b21f609b4bd0b (patch) | |
tree | fcbab052ead901543a135a15e25fee36189b15bd /upb/pb/compile_decoder.c | |
parent | bebdc009b484295f06185b5bab884a3754bbbacd (diff) | |
parent | 87a18f37743efde6f66f77209c98400cdec67cbe (diff) |
Merge pull request #11 from cfallin/oneofs
Support oneof defs in upb.
Diffstat (limited to 'upb/pb/compile_decoder.c')
-rw-r--r-- | upb/pb/compile_decoder.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/upb/pb/compile_decoder.c b/upb/pb/compile_decoder.c index 11aa4e9..377cbb4 100644 --- a/upb/pb/compile_decoder.c +++ b/upb/pb/compile_decoder.c @@ -762,8 +762,10 @@ static void compile_method(compiler *c, upb_pbdecodermethod *method) { putsel(c, OP_STARTMSG, UPB_STARTMSG_SELECTOR, h); label(c, LABEL_FIELD); uint32_t* start_pc = c->pc; - upb_msg_iter i; - for(upb_msg_begin(&i, md); !upb_msg_done(&i); upb_msg_next(&i)) { + upb_msg_field_iter i; + for(upb_msg_field_begin(&i, md); + !upb_msg_field_done(&i); + upb_msg_field_next(&i)) { const upb_fielddef *f = upb_msg_iter_field(&i); upb_fieldtype_t type = upb_fielddef_type(f); @@ -813,9 +815,11 @@ static void find_methods(compiler *c, const upb_handlers *h) { newmethod(h, c->group); // Find submethods. - upb_msg_iter i; + upb_msg_field_iter i; const upb_msgdef *md = upb_handlers_msgdef(h); - for(upb_msg_begin(&i, md); !upb_msg_done(&i); upb_msg_next(&i)) { + for(upb_msg_field_begin(&i, md); + !upb_msg_field_done(&i); + upb_msg_field_next(&i)) { const upb_fielddef *f = upb_msg_iter_field(&i); const upb_handlers *sub_h; if (upb_fielddef_type(f) == UPB_TYPE_MESSAGE && @@ -857,7 +861,7 @@ static void set_bytecode_handlers(mgroup *g) { } -/* JIT setup. ******************************************************************/ +/* JIT setup. *****************************************************************/ #ifdef UPB_USE_JIT_X64 |