A couple more fixes.

pull/13171/head
Josh Haberman 8 years ago
parent 512130adf1
commit 5aa01b46e4
  1. 2
      tests/test_def.c
  2. 9
      upb/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);

@ -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;
}
}
}

Loading…
Cancel
Save