Browse Source

MFH: use E_WARNING on recursion and add null to the result to keep it valid

PECL_OPENSSL
Antony Dovgal 20 years ago
parent
commit
3003cd2473
  1. 3
      ext/json/json.c
  2. 4
      ext/json/tests/003.phpt
  3. 4
      ext/json/tests/004.phpt
  4. 4
      ext/json/tests/005.phpt

3
ext/json/json.c

@ -136,7 +136,8 @@ static void json_encode_array(smart_str *buf, zval **val TSRMLS_DC) {
}
if (myht && myht->nApplyCount > 1) {
php_error_docref(NULL TSRMLS_CC, E_RECOVERABLE_ERROR, "recursion detected");
php_error_docref(NULL TSRMLS_CC, E_WARNING, "recursion detected");
smart_str_appendl(buf, "null", 4);
return;
}

4
ext/json/tests/003.phpt

@ -25,4 +25,6 @@ array(1) {
}
}
Catchable fatal error: json_encode(): recursion detected in %s on line %d
Warning: json_encode(): recursion detected in %s on line %d
string(8) "[[null]]"
Done

4
ext/json/tests/004.phpt

@ -22,4 +22,6 @@ object(stdClass)#%d (1) {
}
}
Catchable fatal error: json_encode(): recursion detected in %s on line %d
Warning: json_encode(): recursion detected in %s on line %d
string(22) "{"prop":{"prop":null}}"
Done

4
ext/json/tests/005.phpt

@ -22,4 +22,6 @@ array(1) {
}
}
Catchable fatal error: json_encode(): recursion detected in %s on line %d
Warning: json_encode(): recursion detected in %s on line %d
string(8) "[[null]]"
Done
Loading…
Cancel
Save