diff options
author | Paul Yang <TeBoring@users.noreply.github.com> | 2018-07-09 14:29:23 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-07-09 14:29:23 -0700 |
commit | 26eeec93e44024ee10c0b8c536ea2410e4bfa7f3 (patch) | |
tree | bd19449d12e795014250315982c9e9eefae1fb02 /php/ext/google/protobuf/encode_decode.c | |
parent | 96833b8f4b1897ae2a4ddf21ec9d1c5e6eabc8c7 (diff) |
Enable ignoring unknown in json parsing in php (#4839)
* Enable ignoring unknown in json parsing in php
* Update generated descriptor files
* Update failure list for other languages.
* Remove unnecessary php files
Diffstat (limited to 'php/ext/google/protobuf/encode_decode.c')
-rw-r--r-- | php/ext/google/protobuf/encode_decode.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/php/ext/google/protobuf/encode_decode.c b/php/ext/google/protobuf/encode_decode.c index a8c47f4d..31a345b3 100644 --- a/php/ext/google/protobuf/encode_decode.c +++ b/php/ext/google/protobuf/encode_decode.c @@ -1587,8 +1587,11 @@ PHP_METHOD(Message, mergeFromJsonString) { char *data = NULL; PHP_PROTO_SIZE data_len; + zend_bool ignore_json_unknown = false; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &data, &data_len) == + if (zend_parse_parameters( + ZEND_NUM_ARGS() TSRMLS_CC, "s|b", &data, &data_len, + &ignore_json_unknown) == FAILURE) { return; } @@ -1607,7 +1610,7 @@ PHP_METHOD(Message, mergeFromJsonString) { stackenv_init(&se, "Error occurred during parsing: %s"); upb_sink_reset(&sink, get_fill_handlers(desc), msg); - parser = upb_json_parser_create(&se.env, method, &sink); + parser = upb_json_parser_create(&se.env, method, &sink, ignore_json_unknown); upb_bufsrc_putbuf(data, data_len, upb_json_parser_input(parser)); stackenv_uninit(&se); |