aboutsummaryrefslogtreecommitdiffhomepage
path: root/php/ext/google/protobuf/encode_decode.c
diff options
context:
space:
mode:
authorGravatar Paul Yang <TeBoring@users.noreply.github.com>2018-07-09 14:29:23 -0700
committerGravatar GitHub <noreply@github.com>2018-07-09 14:29:23 -0700
commit26eeec93e44024ee10c0b8c536ea2410e4bfa7f3 (patch)
treebd19449d12e795014250315982c9e9eefae1fb02 /php/ext/google/protobuf/encode_decode.c
parent96833b8f4b1897ae2a4ddf21ec9d1c5e6eabc8c7 (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.c7
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);