summaryrefslogtreecommitdiff
path: root/upb/pb
diff options
context:
space:
mode:
authorJoshua Haberman <jhaberman@gmail.com>2015-01-14 13:51:37 -0800
committerJoshua Haberman <jhaberman@gmail.com>2015-01-14 13:51:37 -0800
commit1988a660f4b3093c61f7cbae3d1b21f609b4bd0b (patch)
treefcbab052ead901543a135a15e25fee36189b15bd /upb/pb
parentbebdc009b484295f06185b5bab884a3754bbbacd (diff)
parent87a18f37743efde6f66f77209c98400cdec67cbe (diff)
Merge pull request #11 from cfallin/oneofs
Support oneof defs in upb.
Diffstat (limited to 'upb/pb')
-rw-r--r--upb/pb/compile_decoder.c14
-rw-r--r--upb/pb/encoder.c6
-rw-r--r--upb/pb/textprinter.c6
3 files changed, 17 insertions, 9 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
diff --git a/upb/pb/encoder.c b/upb/pb/encoder.c
index d2c22e9..d5685dc 100644
--- a/upb/pb/encoder.c
+++ b/upb/pb/encoder.c
@@ -378,8 +378,10 @@ static void newhandlers_callback(const void *closure, upb_handlers *h) {
upb_handlers_setendmsg(h, endmsg, NULL);
const upb_msgdef *m = upb_handlers_msgdef(h);
- upb_msg_iter i;
- for(upb_msg_begin(&i, m); !upb_msg_done(&i); upb_msg_next(&i)) {
+ upb_msg_field_iter i;
+ for(upb_msg_field_begin(&i, m);
+ !upb_msg_field_done(&i);
+ upb_msg_field_next(&i)) {
const upb_fielddef *f = upb_msg_iter_field(&i);
bool packed = upb_fielddef_isseq(f) && upb_fielddef_isprimitive(f) &&
upb_fielddef_packed(f);
diff --git a/upb/pb/textprinter.c b/upb/pb/textprinter.c
index 8ceed68..45c5e43 100644
--- a/upb/pb/textprinter.c
+++ b/upb/pb/textprinter.c
@@ -261,8 +261,10 @@ static void onmreg(const void *c, upb_handlers *h) {
upb_handlers_setstartmsg(h, textprinter_startmsg, NULL);
upb_handlers_setendmsg(h, textprinter_endmsg, NULL);
- upb_msg_iter i;
- for(upb_msg_begin(&i, m); !upb_msg_done(&i); upb_msg_next(&i)) {
+ upb_msg_field_iter i;
+ for(upb_msg_field_begin(&i, m);
+ !upb_msg_field_done(&i);
+ upb_msg_field_next(&i)) {
upb_fielddef *f = upb_msg_iter_field(&i);
upb_handlerattr attr = UPB_HANDLERATTR_INITIALIZER;
upb_handlerattr_sethandlerdata(&attr, f);
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback