summaryrefslogtreecommitdiff
path: root/upb
diff options
context:
space:
mode:
Diffstat (limited to 'upb')
-rw-r--r--upb/def.c3
-rw-r--r--upb/descriptor/reader.c14
2 files changed, 17 insertions, 0 deletions
diff --git a/upb/def.c b/upb/def.c
index 01bbe5f..ceaced2 100644
--- a/upb/def.c
+++ b/upb/def.c
@@ -2309,6 +2309,9 @@ bool upb_symtab_addfile(upb_symtab *s, upb_filedef *file, upb_status *status) {
bool ret;
n = upb_filedef_defcount(file);
+ if (n == 0) {
+ return true;
+ }
defs = upb_gmalloc(sizeof(*defs) * n);
if (defs == NULL) {
diff --git a/upb/descriptor/reader.c b/upb/descriptor/reader.c
index f982300..624c3ae 100644
--- a/upb/descriptor/reader.c
+++ b/upb/descriptor/reader.c
@@ -237,6 +237,18 @@ static size_t file_onpackage(void *closure, const void *hd, const char *buf,
return n;
}
+static void *file_startphpnamespace(void *closure, const void *hd,
+ size_t size_hint) {
+ upb_descreader *r = closure;
+ bool ok;
+ UPB_UNUSED(hd);
+ UPB_UNUSED(size_hint);
+
+ ok = upb_filedef_setphpnamespace(r->file, "", NULL);
+ UPB_ASSERT(ok);
+ return closure;
+}
+
static size_t file_onphpnamespace(void *closure, const void *hd,
const char *buf, size_t n,
const upb_bufhandle *handle) {
@@ -797,6 +809,8 @@ static void reghandlers(const void *closure, upb_handlers *h) {
} else if (upbdefs_google_protobuf_FileOptions_is(m)) {
upb_handlers_setstring(h, F(FileOptions, php_class_prefix),
&file_onphpprefix, NULL);
+ upb_handlers_setstartstr(h, F(FileOptions, php_namespace),
+ &file_startphpnamespace, NULL);
upb_handlers_setstring(h, F(FileOptions, php_namespace),
&file_onphpnamespace, NULL);
}
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback