diff --git a/upb/def.c b/upb/def.c index 641f1b428b..d598d725e1 100644 --- a/upb/def.c +++ b/upb/def.c @@ -877,6 +877,12 @@ const upb_enumdef *upb_symtab_lookupenum(const upb_symtab *s, const char *sym) { unpack_def(v, UPB_DEFTYPE_ENUM) : NULL; } +const upb_fielddef *upb_symtab_lookupext(const upb_symtab *s, const char *sym) { + upb_value v; + return upb_strtable_lookup(&s->syms, sym, &v) ? + unpack_def(v, UPB_DEFTYPE_FIELD) : NULL; +} + const upb_filedef *upb_symtab_lookupfile(const upb_symtab *s, const char *name) { upb_value v; return upb_strtable_lookup(&s->files, name, &v) ? upb_value_getconstptr(v) diff --git a/upb/def.h b/upb/def.h index 24dc8b3776..25ac977bb2 100644 --- a/upb/def.h +++ b/upb/def.h @@ -308,6 +308,7 @@ const upb_msgdef *upb_symtab_lookupmsg(const upb_symtab *s, const char *sym); const upb_msgdef *upb_symtab_lookupmsg2( const upb_symtab *s, const char *sym, size_t len); const upb_enumdef *upb_symtab_lookupenum(const upb_symtab *s, const char *sym); +const upb_fielddef *upb_symtab_lookupext(const upb_symtab *s, const char *sym); const upb_filedef *upb_symtab_lookupfile(const upb_symtab *s, const char *name); const upb_filedef *upb_symtab_lookupfile2( const upb_symtab *s, const char *name, size_t len);