38
38
39
39
static void zend_optimizer_zval_dtor_wrapper (zval * zvalue )
40
40
{
41
- zval_dtor (zvalue );
41
+ zval_ptr_dtor_nogc (zvalue );
42
42
}
43
43
44
44
void zend_optimizer_collect_constant (zend_optimizer_ctx * ctx , zval * name , zval * value )
@@ -91,7 +91,7 @@ int zend_optimizer_is_disabled_func(const char *name, size_t len) {
91
91
static inline void drop_leading_backslash (zval * val ) {
92
92
if (Z_STRVAL_P (val )[0 ] == '\\' ) {
93
93
zend_string * str = zend_string_init (Z_STRVAL_P (val ) + 1 , Z_STRLEN_P (val ) - 1 , 0 );
94
- zval_dtor (val );
94
+ zval_ptr_dtor_nogc (val );
95
95
ZVAL_STR (val , str );
96
96
}
97
97
}
@@ -107,14 +107,14 @@ static inline void alloc_cache_slots_op2(zend_op_array *op_array, zend_op *oplin
107
107
108
108
#define REQUIRES_STRING (val ) do { \
109
109
if (Z_TYPE_P(val) != IS_STRING) { \
110
- zval_dtor (val); \
110
+ zval_ptr_dtor_nogc (val); \
111
111
return 0; \
112
112
} \
113
113
} while (0)
114
114
115
115
#define TO_STRING_NOWARN (val ) do { \
116
116
if (Z_TYPE_P(val) >= IS_ARRAY) { \
117
- zval_dtor (val); \
117
+ zval_ptr_dtor_nogc (val); \
118
118
return 0; \
119
119
} \
120
120
convert_to_string(val); \
@@ -127,7 +127,7 @@ int zend_optimizer_update_op1_const(zend_op_array *op_array,
127
127
switch (opline -> opcode ) {
128
128
case ZEND_FREE :
129
129
MAKE_NOP (opline );
130
- zval_dtor (val );
130
+ zval_ptr_dtor_nogc (val );
131
131
return 1 ;
132
132
case ZEND_INIT_STATIC_METHOD_CALL :
133
133
case ZEND_CATCH :
@@ -158,16 +158,16 @@ int zend_optimizer_update_op1_const(zend_op_array *op_array,
158
158
case ZEND_SEPARATE :
159
159
case ZEND_SEND_VAR_NO_REF :
160
160
case ZEND_SEND_VAR_NO_REF_EX :
161
- zval_ptr_dtor (val );
161
+ zval_ptr_dtor_nogc (val );
162
162
return 0 ;
163
163
case ZEND_VERIFY_RETURN_TYPE :
164
164
/* This would require a non-local change.
165
165
* zend_optimizer_replace_by_const() supports this. */
166
- zval_ptr_dtor (val );
166
+ zval_ptr_dtor_nogc (val );
167
167
return 0 ;
168
168
case ZEND_CASE :
169
169
case ZEND_FETCH_LIST :
170
- zval_ptr_dtor (val );
170
+ zval_ptr_dtor_nogc (val );
171
171
return 0 ;
172
172
case ZEND_CONCAT :
173
173
case ZEND_FAST_CONCAT :
@@ -198,7 +198,7 @@ int zend_optimizer_update_op2_const(zend_op_array *op_array,
198
198
switch (opline -> opcode ) {
199
199
case ZEND_ASSIGN_REF :
200
200
case ZEND_FAST_CALL :
201
- zval_dtor (val );
201
+ zval_ptr_dtor_nogc (val );
202
202
return 0 ;
203
203
case ZEND_FETCH_CLASS :
204
204
case ZEND_INIT_FCALL_BY_NAME :
@@ -229,14 +229,14 @@ int zend_optimizer_update_op2_const(zend_op_array *op_array,
229
229
case ZEND_INIT_DYNAMIC_CALL :
230
230
if (Z_TYPE_P (val ) == IS_STRING ) {
231
231
if (zend_memrchr (Z_STRVAL_P (val ), ':' , Z_STRLEN_P (val ))) {
232
- zval_dtor (val );
232
+ zval_ptr_dtor_nogc (val );
233
233
return 0 ;
234
234
}
235
235
236
236
if (zend_optimizer_classify_function (Z_STR_P (val ), opline -> extended_value )) {
237
237
/* Dynamic call to various special functions must stay dynamic,
238
238
* otherwise would drop a warning */
239
- zval_dtor (val );
239
+ zval_ptr_dtor_nogc (val );
240
240
return 0 ;
241
241
}
242
242
@@ -309,7 +309,7 @@ int zend_optimizer_update_op2_const(zend_op_array *op_array,
309
309
if (Z_TYPE_P (val ) == IS_STRING ) {
310
310
zend_ulong index ;
311
311
if (ZEND_HANDLE_NUMERIC (Z_STR_P (val ), index )) {
312
- zval_dtor (val );
312
+ zval_ptr_dtor_nogc (val );
313
313
ZVAL_LONG (val , index );
314
314
}
315
315
}
@@ -394,7 +394,7 @@ int zend_optimizer_replace_by_const(zend_op_array *op_array,
394
394
case ZEND_ASSIGN_DIM :
395
395
case ZEND_SEPARATE :
396
396
case ZEND_RETURN_BY_REF :
397
- zval_dtor (val );
397
+ zval_ptr_dtor_nogc (val );
398
398
return 0 ;
399
399
case ZEND_SEND_VAR :
400
400
opline -> extended_value = 0 ;
@@ -405,7 +405,7 @@ int zend_optimizer_replace_by_const(zend_op_array *op_array,
405
405
opline -> opcode = ZEND_SEND_VAL_EX ;
406
406
break ;
407
407
case ZEND_SEND_VAR_NO_REF :
408
- zval_dtor (val );
408
+ zval_ptr_dtor_nogc (val );
409
409
return 0 ;
410
410
case ZEND_SEND_VAR_NO_REF_EX :
411
411
opline -> opcode = ZEND_SEND_VAL ;
@@ -440,7 +440,7 @@ int zend_optimizer_replace_by_const(zend_op_array *op_array,
440
440
441
441
ZEND_ASSERT (m -> opcode == ZEND_FREE && m -> op1_type == type && m -> op1 .var == var );
442
442
MAKE_NOP (m );
443
- zval_dtor (val );
443
+ zval_ptr_dtor_nogc (val );
444
444
zend_optimizer_remove_live_range (op_array , var );
445
445
return 1 ;
446
446
}
@@ -462,7 +462,7 @@ int zend_optimizer_replace_by_const(zend_op_array *op_array,
462
462
if (!in_switch ) {
463
463
ZEND_ASSERT (opline -> opcode == ZEND_FREE );
464
464
MAKE_NOP (opline );
465
- zval_dtor (val );
465
+ zval_ptr_dtor_nogc (val );
466
466
return 1 ;
467
467
}
468
468
@@ -497,7 +497,7 @@ int zend_optimizer_replace_by_const(zend_op_array *op_array,
497
497
}
498
498
m ++ ;
499
499
}
500
- zval_dtor (val );
500
+ zval_ptr_dtor_nogc (val );
501
501
zend_optimizer_remove_live_range (op_array , var );
502
502
return 1 ;
503
503
}
@@ -507,7 +507,7 @@ int zend_optimizer_replace_by_const(zend_op_array *op_array,
507
507
|| ZEND_TYPE_CODE (ret_info -> type ) == IS_CALLABLE
508
508
|| !ZEND_SAME_FAKE_TYPE (ZEND_TYPE_CODE (ret_info -> type ), Z_TYPE_P (val ))
509
509
|| (op_array -> fn_flags & ZEND_ACC_RETURN_REFERENCE )) {
510
- zval_dtor (val );
510
+ zval_ptr_dtor_nogc (val );
511
511
return 0 ;
512
512
}
513
513
MAKE_NOP (opline );
0 commit comments