summaryrefslogtreecommitdiff
path: root/ext/json/json_parser.tab.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/json/json_parser.tab.c')
-rw-r--r--ext/json/json_parser.tab.c59
1 files changed, 29 insertions, 30 deletions
diff --git a/ext/json/json_parser.tab.c b/ext/json/json_parser.tab.c
index 36967bc6b8..15b696b82f 100644
--- a/ext/json/json_parser.tab.c
+++ b/ext/json/json_parser.tab.c
@@ -1062,121 +1062,121 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, php_json_parser *p
{
case 3: /* PHP_JSON_T_NUL */
- { zval_dtor(&((*yyvaluep).value)); }
+ { zval_ptr_dtor_nogc(&((*yyvaluep).value)); }
break;
case 4: /* PHP_JSON_T_TRUE */
- { zval_dtor(&((*yyvaluep).value)); }
+ { zval_ptr_dtor_nogc(&((*yyvaluep).value)); }
break;
case 5: /* PHP_JSON_T_FALSE */
- { zval_dtor(&((*yyvaluep).value)); }
+ { zval_ptr_dtor_nogc(&((*yyvaluep).value)); }
break;
case 6: /* PHP_JSON_T_INT */
- { zval_dtor(&((*yyvaluep).value)); }
+ { zval_ptr_dtor_nogc(&((*yyvaluep).value)); }
break;
case 7: /* PHP_JSON_T_DOUBLE */
- { zval_dtor(&((*yyvaluep).value)); }
+ { zval_ptr_dtor_nogc(&((*yyvaluep).value)); }
break;
case 8: /* PHP_JSON_T_STRING */
- { zval_dtor(&((*yyvaluep).value)); }
+ { zval_ptr_dtor_nogc(&((*yyvaluep).value)); }
break;
case 9: /* PHP_JSON_T_ESTRING */
- { zval_dtor(&((*yyvaluep).value)); }
+ { zval_ptr_dtor_nogc(&((*yyvaluep).value)); }
break;
case 10: /* PHP_JSON_T_EOI */
- { zval_dtor(&((*yyvaluep).value)); }
+ { zval_ptr_dtor_nogc(&((*yyvaluep).value)); }
break;
case 11: /* PHP_JSON_T_ERROR */
- { zval_dtor(&((*yyvaluep).value)); }
+ { zval_ptr_dtor_nogc(&((*yyvaluep).value)); }
break;
case 19: /* start */
- { zval_dtor(&((*yyvaluep).value)); }
+ { zval_ptr_dtor_nogc(&((*yyvaluep).value)); }
break;
case 20: /* object */
- { zval_dtor(&((*yyvaluep).value)); }
+ { zval_ptr_dtor_nogc(&((*yyvaluep).value)); }
break;
case 23: /* members */
- { zval_dtor(&((*yyvaluep).value)); }
+ { zval_ptr_dtor_nogc(&((*yyvaluep).value)); }
break;
case 24: /* member */
- { zval_dtor(&((*yyvaluep).value)); }
+ { zval_ptr_dtor_nogc(&((*yyvaluep).value)); }
break;
case 25: /* pair */
- { zend_string_release(((*yyvaluep).pair).key); zval_dtor(&((*yyvaluep).pair).val); }
+ { zend_string_release_ex(((*yyvaluep).pair).key, 0); zval_ptr_dtor_nogc(&((*yyvaluep).pair).val); }
break;
case 26: /* array */
- { zval_dtor(&((*yyvaluep).value)); }
+ { zval_ptr_dtor_nogc(&((*yyvaluep).value)); }
break;
case 29: /* elements */
- { zval_dtor(&((*yyvaluep).value)); }
+ { zval_ptr_dtor_nogc(&((*yyvaluep).value)); }
break;
case 30: /* element */
- { zval_dtor(&((*yyvaluep).value)); }
+ { zval_ptr_dtor_nogc(&((*yyvaluep).value)); }
break;
case 31: /* key */
- { zval_dtor(&((*yyvaluep).value)); }
+ { zval_ptr_dtor_nogc(&((*yyvaluep).value)); }
break;
case 32: /* value */
- { zval_dtor(&((*yyvaluep).value)); }
+ { zval_ptr_dtor_nogc(&((*yyvaluep).value)); }
break;
case 33: /* errlex */
- { zval_dtor(&((*yyvaluep).value)); }
+ { zval_ptr_dtor_nogc(&((*yyvaluep).value)); }
break;
@@ -1856,7 +1856,8 @@ yyreturn:
static int php_json_parser_array_create(php_json_parser *parser, zval *array)
{
- return array_init(array);
+ array_init(array);
+ return SUCCESS;
}
static int php_json_parser_array_append(php_json_parser *parser, zval *array, zval *zvalue)
@@ -1868,7 +1869,8 @@ static int php_json_parser_array_append(php_json_parser *parser, zval *array, zv
static int php_json_parser_object_create(php_json_parser *parser, zval *object)
{
if (parser->scanner.options & PHP_JSON_OBJECT_AS_ARRAY) {
- return array_init(object);
+ array_init(object);
+ return SUCCESS;
} else {
return object_init(object);
}
@@ -1883,19 +1885,16 @@ static int php_json_parser_object_update(php_json_parser *parser, zval *object,
zval zkey;
if (ZSTR_LEN(key) > 0 && ZSTR_VAL(key)[0] == '\0') {
parser->scanner.errcode = PHP_JSON_ERROR_INVALID_PROPERTY_NAME;
- zend_string_release(key);
- zval_dtor(zvalue);
- zval_dtor(object);
+ zend_string_release_ex(key, 0);
+ zval_ptr_dtor_nogc(zvalue);
+ zval_ptr_dtor_nogc(object);
return FAILURE;
}
ZVAL_NEW_STR(&zkey, key);
zend_std_write_property(object, &zkey, zvalue, NULL);
-
- if (Z_REFCOUNTED_P(zvalue)) {
- Z_DELREF_P(zvalue);
- }
+ Z_TRY_DELREF_P(zvalue);
}
- zend_string_release(key);
+ zend_string_release_ex(key, 0);
return SUCCESS;
}