@@ -185,7 +185,7 @@ static int zend_ast_add_array_element(zval *result, zval *offset, zval *expr)
185185 break ;
186186 case IS_STRING :
187187 zend_symtable_update (Z_ARRVAL_P (result ), Z_STR_P (offset ), expr );
188- zval_dtor (offset );
188+ zval_ptr_dtor_nogc (offset );
189189 break ;
190190 case IS_NULL :
191191 zend_symtable_update (Z_ARRVAL_P (result ), ZSTR_EMPTY_ALLOC (), expr );
@@ -219,29 +219,29 @@ ZEND_API int zend_ast_evaluate(zval *result, zend_ast *ast, zend_class_entry *sc
219219 if (UNEXPECTED (zend_ast_evaluate (& op1 , ast -> child [0 ], scope ) != SUCCESS )) {
220220 ret = FAILURE ;
221221 } else if (UNEXPECTED (zend_ast_evaluate (& op2 , ast -> child [1 ], scope ) != SUCCESS )) {
222- zval_dtor (& op1 );
222+ zval_ptr_dtor_nogc (& op1 );
223223 ret = FAILURE ;
224224 } else {
225225 binary_op_type op = get_binary_op (ast -> attr );
226226 ret = op (result , & op1 , & op2 );
227- zval_dtor (& op1 );
228- zval_dtor (& op2 );
227+ zval_ptr_dtor_nogc (& op1 );
228+ zval_ptr_dtor_nogc (& op2 );
229229 }
230230 break ;
231231 case ZEND_AST_GREATER :
232232 case ZEND_AST_GREATER_EQUAL :
233233 if (UNEXPECTED (zend_ast_evaluate (& op1 , ast -> child [0 ], scope ) != SUCCESS )) {
234234 ret = FAILURE ;
235235 } else if (UNEXPECTED (zend_ast_evaluate (& op2 , ast -> child [1 ], scope ) != SUCCESS )) {
236- zval_dtor (& op1 );
236+ zval_ptr_dtor_nogc (& op1 );
237237 ret = FAILURE ;
238238 } else {
239239 /* op1 > op2 is the same as op2 < op1 */
240240 binary_op_type op = ast -> kind == ZEND_AST_GREATER
241241 ? is_smaller_function : is_smaller_or_equal_function ;
242242 ret = op (result , & op2 , & op1 );
243- zval_dtor (& op1 );
244- zval_dtor (& op2 );
243+ zval_ptr_dtor_nogc (& op1 );
244+ zval_ptr_dtor_nogc (& op2 );
245245 }
246246 break ;
247247 case ZEND_AST_UNARY_OP :
@@ -250,7 +250,7 @@ ZEND_API int zend_ast_evaluate(zval *result, zend_ast *ast, zend_class_entry *sc
250250 } else {
251251 unary_op_type op = get_unary_op (ast -> attr );
252252 ret = op (result , & op1 );
253- zval_dtor (& op1 );
253+ zval_ptr_dtor_nogc (& op1 );
254254 }
255255 break ;
256256 case ZEND_AST_ZVAL :
@@ -283,16 +283,16 @@ ZEND_API int zend_ast_evaluate(zval *result, zend_ast *ast, zend_class_entry *sc
283283 }
284284 if (zend_is_true (& op1 )) {
285285 if (UNEXPECTED (zend_ast_evaluate (& op2 , ast -> child [1 ], scope ) != SUCCESS )) {
286- zval_dtor (& op1 );
286+ zval_ptr_dtor_nogc (& op1 );
287287 ret = FAILURE ;
288288 break ;
289289 }
290290 ZVAL_BOOL (result , zend_is_true (& op2 ));
291- zval_dtor (& op2 );
291+ zval_ptr_dtor_nogc (& op2 );
292292 } else {
293293 ZVAL_FALSE (result );
294294 }
295- zval_dtor (& op1 );
295+ zval_ptr_dtor_nogc (& op1 );
296296 break ;
297297 case ZEND_AST_OR :
298298 if (UNEXPECTED (zend_ast_evaluate (& op1 , ast -> child [0 ], scope ) != SUCCESS )) {
@@ -303,14 +303,14 @@ ZEND_API int zend_ast_evaluate(zval *result, zend_ast *ast, zend_class_entry *sc
303303 ZVAL_TRUE (result );
304304 } else {
305305 if (UNEXPECTED (zend_ast_evaluate (& op2 , ast -> child [1 ], scope ) != SUCCESS )) {
306- zval_dtor (& op1 );
306+ zval_ptr_dtor_nogc (& op1 );
307307 ret = FAILURE ;
308308 break ;
309309 }
310310 ZVAL_BOOL (result , zend_is_true (& op2 ));
311- zval_dtor (& op2 );
311+ zval_ptr_dtor_nogc (& op2 );
312312 }
313- zval_dtor (& op1 );
313+ zval_ptr_dtor_nogc (& op1 );
314314 break ;
315315 case ZEND_AST_CONDITIONAL :
316316 if (UNEXPECTED (zend_ast_evaluate (& op1 , ast -> child [0 ], scope ) != SUCCESS )) {
@@ -322,19 +322,19 @@ ZEND_API int zend_ast_evaluate(zval *result, zend_ast *ast, zend_class_entry *sc
322322 * result = op1 ;
323323 } else {
324324 if (UNEXPECTED (zend_ast_evaluate (result , ast -> child [1 ], scope ) != SUCCESS )) {
325- zval_dtor (& op1 );
325+ zval_ptr_dtor_nogc (& op1 );
326326 ret = FAILURE ;
327327 break ;
328328 }
329- zval_dtor (& op1 );
329+ zval_ptr_dtor_nogc (& op1 );
330330 }
331331 } else {
332332 if (UNEXPECTED (zend_ast_evaluate (result , ast -> child [2 ], scope ) != SUCCESS )) {
333- zval_dtor (& op1 );
333+ zval_ptr_dtor_nogc (& op1 );
334334 ret = FAILURE ;
335335 break ;
336336 }
337- zval_dtor (& op1 );
337+ zval_ptr_dtor_nogc (& op1 );
338338 }
339339 break ;
340340 case ZEND_AST_COALESCE :
@@ -346,11 +346,11 @@ ZEND_API int zend_ast_evaluate(zval *result, zend_ast *ast, zend_class_entry *sc
346346 * result = op1 ;
347347 } else {
348348 if (UNEXPECTED (zend_ast_evaluate (result , ast -> child [1 ], scope ) != SUCCESS )) {
349- zval_dtor (& op1 );
349+ zval_ptr_dtor_nogc (& op1 );
350350 ret = FAILURE ;
351351 break ;
352352 }
353- zval_dtor (& op1 );
353+ zval_ptr_dtor_nogc (& op1 );
354354 }
355355 break ;
356356 case ZEND_AST_UNARY_PLUS :
@@ -359,7 +359,7 @@ ZEND_API int zend_ast_evaluate(zval *result, zend_ast *ast, zend_class_entry *sc
359359 } else {
360360 ZVAL_LONG (& op1 , 0 );
361361 ret = add_function (result , & op1 , & op2 );
362- zval_dtor (& op2 );
362+ zval_ptr_dtor_nogc (& op2 );
363363 }
364364 break ;
365365 case ZEND_AST_UNARY_MINUS :
@@ -368,7 +368,7 @@ ZEND_API int zend_ast_evaluate(zval *result, zend_ast *ast, zend_class_entry *sc
368368 } else {
369369 ZVAL_LONG (& op1 , 0 );
370370 ret = sub_function (result , & op1 , & op2 );
371- zval_dtor (& op2 );
371+ zval_ptr_dtor_nogc (& op2 );
372372 }
373373 break ;
374374 case ZEND_AST_ARRAY :
@@ -380,21 +380,21 @@ ZEND_API int zend_ast_evaluate(zval *result, zend_ast *ast, zend_class_entry *sc
380380 zend_ast * elem = list -> child [i ];
381381 if (elem -> child [1 ]) {
382382 if (UNEXPECTED (zend_ast_evaluate (& op1 , elem -> child [1 ], scope ) != SUCCESS )) {
383- zval_dtor (result );
383+ zval_ptr_dtor_nogc (result );
384384 return FAILURE ;
385385 }
386386 } else {
387387 ZVAL_UNDEF (& op1 );
388388 }
389389 if (UNEXPECTED (zend_ast_evaluate (& op2 , elem -> child [0 ], scope ) != SUCCESS )) {
390- zval_dtor (& op1 );
391- zval_dtor (result );
390+ zval_ptr_dtor_nogc (& op1 );
391+ zval_ptr_dtor_nogc (result );
392392 return FAILURE ;
393393 }
394394 if (UNEXPECTED (zend_ast_add_array_element (result , & op1 , & op2 ) != SUCCESS )) {
395- zval_dtor (& op1 );
396- zval_dtor (& op2 );
397- zval_dtor (result );
395+ zval_ptr_dtor_nogc (& op1 );
396+ zval_ptr_dtor_nogc (& op2 );
397+ zval_ptr_dtor_nogc (result );
398398 return FAILURE ;
399399 }
400400 }
@@ -408,7 +408,7 @@ ZEND_API int zend_ast_evaluate(zval *result, zend_ast *ast, zend_class_entry *sc
408408 if (UNEXPECTED (zend_ast_evaluate (& op1 , ast -> child [0 ], scope ) != SUCCESS )) {
409409 ret = FAILURE ;
410410 } else if (UNEXPECTED (zend_ast_evaluate (& op2 , ast -> child [1 ], scope ) != SUCCESS )) {
411- zval_dtor (& op1 );
411+ zval_ptr_dtor_nogc (& op1 );
412412 ret = FAILURE ;
413413 } else {
414414 zval tmp ;
@@ -425,8 +425,8 @@ ZEND_API int zend_ast_evaluate(zval *result, zend_ast *ast, zend_class_entry *sc
425425 ZVAL_DUP (result , & tmp );
426426 }
427427 zval_ptr_dtor (& tmp );
428- zval_dtor (& op1 );
429- zval_dtor (& op2 );
428+ zval_ptr_dtor_nogc (& op1 );
429+ zval_ptr_dtor_nogc (& op2 );
430430 }
431431 break ;
432432 default :
0 commit comments