summaryrefslogtreecommitdiff
path: root/ext/json/json.c
diff options
context:
space:
mode:
authorStanislav Malyshev <stas@php.net>2012-05-02 00:11:19 -0700
committerStanislav Malyshev <stas@php.net>2012-05-02 00:11:19 -0700
commit8c41e45eec83abdb57f0f3f447fdfee9c627caaf (patch)
tree231d0fd5f36bfd020ef2d953bd8bb22ac024bbf6 /ext/json/json.c
parenta499dfc37dde04f8d5f3c1cabaeef1cb5d985376 (diff)
parente25eea8b838e22692c59cad1279a2e13970d5254 (diff)
downloadphp-git-8c41e45eec83abdb57f0f3f447fdfee9c627caaf.tar.gz
Merge branch 'PHP-5.4'
* PHP-5.4: merge 5.3.11 stuff organize NEWS Revert "Fix bug #61537 (json_encode() incorrectly truncates/discards information) and"
Diffstat (limited to 'ext/json/json.c')
-rw-r--r--ext/json/json.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/ext/json/json.c b/ext/json/json.c
index 853611e7aa..fc1fcb7f1f 100644
--- a/ext/json/json.c
+++ b/ext/json/json.c
@@ -96,7 +96,6 @@ static PHP_MINIT_FUNCTION(json)
REGISTER_LONG_CONSTANT("JSON_UNESCAPED_SLASHES", PHP_JSON_UNESCAPED_SLASHES, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("JSON_PRETTY_PRINT", PHP_JSON_PRETTY_PRINT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("JSON_UNESCAPED_UNICODE", PHP_JSON_UNESCAPED_UNICODE, CONST_CS | CONST_PERSISTENT);
- REGISTER_LONG_CONSTANT("JSON_PARTIAL_OUTPUT_ON_ERROR", PHP_JSON_PARTIAL_OUTPUT_ON_ERROR, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("JSON_ERROR_NONE", PHP_JSON_ERROR_NONE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("JSON_ERROR_DEPTH", PHP_JSON_ERROR_DEPTH, CONST_CS | CONST_PERSISTENT);
@@ -390,7 +389,9 @@ static void json_escape_string(smart_str *buf, char *s, int len, int options TSR
}
if (ulen < 0) {
JSON_G(error_code) = PHP_JSON_ERROR_UTF8;
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid UTF-8 sequence in argument");
+ if (!PG(display_errors)) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid UTF-8 sequence in argument");
+ }
smart_str_appendl(buf, "null", 4);
} else {
smart_str_appendl(buf, "\"\"", 2);
@@ -688,11 +689,7 @@ static PHP_FUNCTION(json_encode)
php_json_encode(&buf, parameter, options TSRMLS_CC);
- if (JSON_G(error_code) != PHP_JSON_ERROR_NONE && options ^ PHP_JSON_PARTIAL_OUTPUT_ON_ERROR) {
- ZVAL_FALSE(return_value);
- } else {
- ZVAL_STRINGL(return_value, buf.c, buf.len, 1);
- }
+ ZVAL_STRINGL(return_value, buf.c, buf.len, 1);
smart_str_free(&buf);
}