summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/test_def.c2
-rw-r--r--upb/def.c9
2 files changed, 6 insertions, 5 deletions
diff --git a/tests/test_def.c b/tests/test_def.c
index 76914c7..d82fddb 100644
--- a/tests/test_def.c
+++ b/tests/test_def.c
@@ -164,7 +164,7 @@ static void test_symbol_resolution() {
static void test_fielddef_unref() {
bool ok;
- upb_symtab *s = load_test_proto(&s);
+ upb_symtab *s = load_test_proto();
const upb_msgdef *md = upb_symtab_lookupmsg(s, "A");
const upb_fielddef *f = upb_msgdef_itof(md, 1);
upb_fielddef_ref(f, &f);
diff --git a/upb/def.c b/upb/def.c
index 080cd92..5fe9e14 100644
--- a/upb/def.c
+++ b/upb/def.c
@@ -378,13 +378,14 @@ bool _upb_def_validate(upb_def *const*defs, size_t n, upb_status *s) {
} else if (def->type == UPB_DEF_FIELD) {
upb_status_seterrmsg(s, "standalone fielddefs can not be frozen");
goto err;
- } else if (def->type == UPB_DEF_ENUM) {
- if (!upb_validate_enumdef(upb_dyncast_enumdef(def), s)) {
- goto err;
- }
} else {
/* Set now to detect transitive closure in the second pass. */
def->came_from_user = true;
+
+ if (def->type == UPB_DEF_ENUM &&
+ !upb_validate_enumdef(upb_dyncast_enumdef(def), s)) {
+ goto err;
+ }
}
}
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback