summaryrefslogtreecommitdiff
path: root/upb/structdefs.int.h
diff options
context:
space:
mode:
authorJosh Haberman <jhaberman@gmail.com>2016-03-08 16:21:37 -0800
committerJosh Haberman <jhaberman@gmail.com>2016-03-08 16:21:37 -0800
commit7f0d3bb83dbb7590f3008182a8b27ecf9f0220d3 (patch)
tree783d68c8df77a2a628f1517c0576f20df634dec3 /upb/structdefs.int.h
parentf73baf670e8b14ef15fedfaa593ba71ba94dcfc8 (diff)
Make OneofDef stop deriving from Def.
It is clear now that oneofs are different form other defs in one important way: they are not top-level constructs that can stand on their own in a SymbolTable, for example. If you are iterating over a list of Defs in a SymbolTable, there is no chance you will run into a oneof. To reflect this reality, OneofDef no longer derives from Def, and the UPB_DEF_ONEOF is no longer an enum value that needs to be handled.
Diffstat (limited to 'upb/structdefs.int.h')
-rw-r--r--upb/structdefs.int.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/upb/structdefs.int.h b/upb/structdefs.int.h
index b7b36fa..467963b 100644
--- a/upb/structdefs.int.h
+++ b/upb/structdefs.int.h
@@ -150,15 +150,16 @@ struct upb_enumdef {
/* upb_oneofdef ***************************************************************/
struct upb_oneofdef {
- upb_def base;
+ upb_refcounted base;
+ const char *name;
upb_strtable ntof;
upb_inttable itof;
const upb_msgdef *parent;
};
#define UPB_ONEOFDEF_INIT(name, ntof, itof, refs, ref2s) \
- { UPB_DEF_INIT(name, UPB_DEF_ENUM, refs, ref2s), ntof, itof }
+ { UPB_REFCOUNT_INIT(refs, ref2s), name, ntof, itof }
/* upb_symtab *****************************************************************/
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback