Updated other parts of upb for new JSON name API.

pull/13171/head
Joshua Haberman 5 years ago
parent a292261aeb
commit 6ec4df82c1
  1. 2
      CMakeLists.txt
  2. 10
      generated_for_cmake/upb/json/parser.c
  3. 10
      upb/json/parser.rl
  4. 8
      upb/json/printer.c

@ -97,7 +97,9 @@ target_link_libraries(textformat
port
reflection)
add_library(json
upb/json_decode.c
upb/json_encode.c
upb/json_decode.h
upb/json_encode.h)
target_link_libraries(json
port

@ -3311,15 +3311,13 @@ static upb_json_parsermethod *parsermethod_new(upb_json_codecache *c,
upb_msg_field_next(&i)) {
const upb_fielddef *f = upb_msg_iter_field(&i);
upb_value v = upb_value_constptr(f);
char *buf;
const char *name;
/* Add an entry for the JSON name. */
size_t len = upb_fielddef_getjsonname(f, NULL, 0);
buf = upb_malloc(alloc, len);
upb_fielddef_getjsonname(f, buf, len);
upb_strtable_insert3(&m->name_table, buf, strlen(buf), v, alloc);
name = upb_fielddef_jsonname(f);
upb_strtable_insert3(&m->name_table, name, strlen(name), v, alloc);
if (strcmp(buf, upb_fielddef_name(f)) != 0) {
if (strcmp(name, upb_fielddef_name(f)) != 0) {
/* Since the JSON name is different from the regular field name, add an
* entry for the raw name (compliant proto3 JSON parsers must accept
* both). */

@ -2874,15 +2874,13 @@ static upb_json_parsermethod *parsermethod_new(upb_json_codecache *c,
upb_msg_field_next(&i)) {
const upb_fielddef *f = upb_msg_iter_field(&i);
upb_value v = upb_value_constptr(f);
char *buf;
const char *name;
/* Add an entry for the JSON name. */
size_t len = upb_fielddef_getjsonname(f, NULL, 0);
buf = upb_malloc(alloc, len);
upb_fielddef_getjsonname(f, buf, len);
upb_strtable_insert3(&m->name_table, buf, strlen(buf), v, alloc);
name = upb_fielddef_jsonname(f);
upb_strtable_insert3(&m->name_table, name, strlen(name), v, alloc);
if (strcmp(buf, upb_fielddef_name(f)) != 0) {
if (strcmp(name, upb_fielddef_name(f)) != 0) {
/* Since the JSON name is different from the regular field name, add an
* entry for the raw name (compliant proto3 JSON parsers must accept
* both). */

@ -65,12 +65,8 @@ strpc *newstrpc(upb_handlers *h, const upb_fielddef *f,
ret->ptr = upb_gstrdup(upb_fielddef_name(f));
ret->len = strlen(ret->ptr);
} else {
size_t len;
ret->len = upb_fielddef_getjsonname(f, NULL, 0);
ret->ptr = upb_gmalloc(ret->len);
len = upb_fielddef_getjsonname(f, ret->ptr, ret->len);
UPB_ASSERT(len == ret->len);
ret->len--; /* NULL */
ret->ptr = upb_gstrdup(upb_fielddef_jsonname(f));
ret->len = strlen(ret->ptr);
}
upb_handlers_addcleanup(h, ret, freestrpc);

Loading…
Cancel
Save