Created
October 29, 2013 17:19
-
-
Save dstogov/7218890 to your computer and use it in GitHub Desktop.
Eliminate "useless" GC_ZVAL_CHECK_POSSIBLE_ROOT checks
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c | |
index 9f78218..b5c35ca 100644 | |
--- a/Zend/zend_execute.c | |
+++ b/Zend/zend_execute.c | |
@@ -79,7 +79,6 @@ static zend_always_inline void zend_pzval_unlock_func(zval *z, zend_free_op *sho | |
if (unref && Z_ISREF_P(z) && Z_REFCOUNT_P(z) == 1) { | |
Z_UNSET_ISREF_P(z); | |
} | |
- GC_ZVAL_CHECK_POSSIBLE_ROOT(z); | |
} | |
} | |
@@ -95,6 +94,7 @@ static zend_always_inline void zend_pzval_unlock_free_func(zval *z TSRMLS_DC) | |
#undef zval_ptr_dtor | |
#define zval_ptr_dtor(pzv) i_zval_ptr_dtor(*(pzv) ZEND_FILE_LINE_CC TSRMLS_CC) | |
+#define zval_ptr_dtor_nogc(pzv) i_zval_ptr_dtor_nogc(*(pzv) ZEND_FILE_LINE_CC TSRMLS_CC) | |
#define PZVAL_UNLOCK(z, f) zend_pzval_unlock_func(z, f, 1 TSRMLS_CC) | |
#define PZVAL_UNLOCK_EX(z, f, u) zend_pzval_unlock_func(z, f, u TSRMLS_CC) | |
@@ -125,18 +125,18 @@ static zend_always_inline void zend_pzval_unlock_free_func(zval *z TSRMLS_DC) | |
if ((zend_uintptr_t)should_free.var & 1L) { \ | |
zval_dtor((zval*)((zend_uintptr_t)should_free.var & ~1L)); \ | |
} else { \ | |
- zval_ptr_dtor(&should_free.var); \ | |
+ zval_ptr_dtor_nogc(&should_free.var); \ | |
} \ | |
} | |
#define FREE_OP_IF_VAR(should_free) \ | |
if (should_free.var != NULL && (((zend_uintptr_t)should_free.var & 1L) == 0)) { \ | |
- zval_ptr_dtor(&should_free.var); \ | |
+ zval_ptr_dtor_nogc(&should_free.var); \ | |
} | |
#define FREE_OP_VAR_PTR(should_free) \ | |
if (should_free.var) { \ | |
- zval_ptr_dtor(&should_free.var); \ | |
+ zval_ptr_dtor_nogc(&should_free.var); \ | |
} | |
#define TMP_FREE(z) (zval*)(((zend_uintptr_t)(z)) | 1L) | |
diff --git a/Zend/zend_execute.h b/Zend/zend_execute.h | |
index b68a82e..5c900e5 100644 | |
--- a/Zend/zend_execute.h | |
+++ b/Zend/zend_execute.h | |
@@ -87,6 +87,20 @@ static zend_always_inline void i_zval_ptr_dtor(zval *zval_ptr ZEND_FILE_LINE_DC | |
} | |
} | |
+static zend_always_inline void i_zval_ptr_dtor_nogc(zval *zval_ptr ZEND_FILE_LINE_DC TSRMLS_DC) | |
+{ | |
+ if (!Z_DELREF_P(zval_ptr)) { | |
+ ZEND_ASSERT(zval_ptr != &EG(uninitialized_zval)); | |
+ GC_REMOVE_ZVAL_FROM_BUFFER(zval_ptr); | |
+ zval_dtor(zval_ptr); | |
+ efree_rel(zval_ptr); | |
+ } else { | |
+ if (Z_REFCOUNT_P(zval_ptr) == 1) { | |
+ Z_UNSET_ISREF_P(zval_ptr); | |
+ } | |
+ } | |
+} | |
+ | |
static zend_always_inline int i_zend_is_true(zval *op) | |
{ | |
int result; | |
diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h | |
index 869bb19..7ad7dcf 100644 | |
--- a/Zend/zend_vm_execute.h | |
+++ b/Zend/zend_vm_execute.h | |
@@ -1754,7 +1754,7 @@ static int ZEND_FASTCALL ZEND_FETCH_CLASS_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ | |
zend_error_noreturn(E_ERROR, "Class name must be a valid object or a string"); | |
} | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -1803,7 +1803,7 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_VAR_HANDLER(ZEND_OPCODE_H | |
zend_error_noreturn(E_ERROR, "Call to undefined function %s()", function_name_strval); | |
} | |
efree(lcname); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
call->object = NULL; | |
call->called_scope = NULL; | |
call->is_ctor_call = 0; | |
@@ -1822,7 +1822,7 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_VAR_HANDLER(ZEND_OPCODE_H | |
/* Delay closure destruction until its invocation */ | |
call->fbc->common.prototype = (zend_function*)function_name; | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
call->is_ctor_call = 0; | |
EX(call) = call; | |
@@ -1893,7 +1893,7 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_VAR_HANDLER(ZEND_OPCODE_H | |
} | |
call->is_ctor_call = 0; | |
EX(call) = call; | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} else { | |
@@ -4972,7 +4972,7 @@ static int ZEND_FASTCALL ZEND_ADD_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR | |
opline->op1.zv, | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -4987,7 +4987,7 @@ static int ZEND_FASTCALL ZEND_SUB_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR | |
opline->op1.zv, | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -5002,7 +5002,7 @@ static int ZEND_FASTCALL ZEND_MUL_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR | |
opline->op1.zv, | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -5017,7 +5017,7 @@ static int ZEND_FASTCALL ZEND_DIV_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR | |
opline->op1.zv, | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -5032,7 +5032,7 @@ static int ZEND_FASTCALL ZEND_MOD_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR | |
opline->op1.zv, | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -5047,7 +5047,7 @@ static int ZEND_FASTCALL ZEND_SL_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG | |
opline->op1.zv, | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -5062,7 +5062,7 @@ static int ZEND_FASTCALL ZEND_SR_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG | |
opline->op1.zv, | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -5077,7 +5077,7 @@ static int ZEND_FASTCALL ZEND_CONCAT_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER | |
opline->op1.zv, | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -5092,7 +5092,7 @@ static int ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_H | |
opline->op1.zv, | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -5109,7 +5109,7 @@ static int ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_CONST_VAR_HANDLER(ZEND_OPCO | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
Z_LVAL_P(result) = !Z_LVAL_P(result); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -5125,7 +5125,7 @@ static int ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDL | |
opline->op1.zv, | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC)); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -5141,7 +5141,7 @@ static int ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_H | |
opline->op1.zv, | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC)); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -5157,7 +5157,7 @@ static int ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HAN | |
opline->op1.zv, | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC)); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -5173,7 +5173,7 @@ static int ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_VAR_HANDLER(ZEND_O | |
opline->op1.zv, | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC)); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -5188,7 +5188,7 @@ static int ZEND_FASTCALL ZEND_BW_OR_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_ | |
opline->op1.zv, | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -5203,7 +5203,7 @@ static int ZEND_FASTCALL ZEND_BW_AND_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER | |
opline->op1.zv, | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -5218,7 +5218,7 @@ static int ZEND_FASTCALL ZEND_BW_XOR_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER | |
opline->op1.zv, | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -5233,7 +5233,7 @@ static int ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDL | |
opline->op1.zv, | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -5411,12 +5411,12 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HA | |
if (IS_CONST == IS_TMP_VAR || IS_CONST == IS_CONST) { | |
zval *container = opline->op1.zv; | |
zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} else { | |
container = NULL; | |
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
if (IS_CONST == IS_VAR && !(opline->extended_value & ZEND_FETCH_ADD_LOCK)) { | |
} | |
@@ -5510,7 +5510,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_VAR_HANDLER(ZE | |
} | |
} | |
if (IS_VAR != IS_CONST) { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
} else { | |
if (UNEXPECTED(ce->constructor == NULL)) { | |
@@ -5559,7 +5559,7 @@ static int ZEND_FASTCALL ZEND_CASE_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_A | |
opline->op1.zv, | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -5634,7 +5634,7 @@ num_index: | |
/* do nothing */ | |
break; | |
} | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} else { | |
zend_hash_next_index_insert(Z_ARRVAL(EX_T(opline->result.var).tmp_var), &expr_ptr, sizeof(zval *), NULL); | |
} | |
@@ -5952,7 +5952,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_ | |
generator->largest_used_integer_key = Z_LVAL_P(generator->key); | |
} | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} else { | |
/* If no key was specified we use auto-increment keys */ | |
generator->largest_used_integer_key++; | |
@@ -10194,7 +10194,7 @@ static int ZEND_FASTCALL ZEND_ADD_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS | |
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
zval_dtor(free_op1.var); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -10209,7 +10209,7 @@ static int ZEND_FASTCALL ZEND_SUB_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS | |
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
zval_dtor(free_op1.var); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -10224,7 +10224,7 @@ static int ZEND_FASTCALL ZEND_MUL_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS | |
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
zval_dtor(free_op1.var); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -10239,7 +10239,7 @@ static int ZEND_FASTCALL ZEND_DIV_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS | |
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
zval_dtor(free_op1.var); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -10254,7 +10254,7 @@ static int ZEND_FASTCALL ZEND_MOD_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS | |
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
zval_dtor(free_op1.var); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -10269,7 +10269,7 @@ static int ZEND_FASTCALL ZEND_SL_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) | |
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
zval_dtor(free_op1.var); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -10284,7 +10284,7 @@ static int ZEND_FASTCALL ZEND_SR_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) | |
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
zval_dtor(free_op1.var); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -10299,7 +10299,7 @@ static int ZEND_FASTCALL ZEND_CONCAT_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_A | |
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
zval_dtor(free_op1.var); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -10314,7 +10314,7 @@ static int ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HAN | |
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
zval_dtor(free_op1.var); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -10331,7 +10331,7 @@ static int ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
Z_LVAL_P(result) = !Z_LVAL_P(result); | |
zval_dtor(free_op1.var); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -10347,7 +10347,7 @@ static int ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER | |
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC)); | |
zval_dtor(free_op1.var); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -10363,7 +10363,7 @@ static int ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HAN | |
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC)); | |
zval_dtor(free_op1.var); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -10379,7 +10379,7 @@ static int ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDL | |
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC)); | |
zval_dtor(free_op1.var); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -10395,7 +10395,7 @@ static int ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMP_VAR_HANDLER(ZEND_OPC | |
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC)); | |
zval_dtor(free_op1.var); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -10410,7 +10410,7 @@ static int ZEND_FASTCALL ZEND_BW_OR_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR | |
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
zval_dtor(free_op1.var); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -10425,7 +10425,7 @@ static int ZEND_FASTCALL ZEND_BW_AND_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_A | |
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
zval_dtor(free_op1.var); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -10440,7 +10440,7 @@ static int ZEND_FASTCALL ZEND_BW_XOR_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_A | |
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
zval_dtor(free_op1.var); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -10455,7 +10455,7 @@ static int ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER | |
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
zval_dtor(free_op1.var); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -10633,12 +10633,12 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HAND | |
if (IS_TMP_VAR == IS_TMP_VAR || IS_TMP_VAR == IS_CONST) { | |
zval *container = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC); | |
zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
zval_dtor(free_op1.var); | |
} else { | |
container = NULL; | |
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
if (IS_TMP_VAR == IS_VAR && !(opline->extended_value & ZEND_FETCH_ADD_LOCK)) { | |
} | |
@@ -10687,7 +10687,7 @@ static int ZEND_FASTCALL ZEND_ADD_VAR_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ | |
* which aren't affected by FREE_OP(Ts, )'s anyway, unless they're | |
* string offsets or overloaded objects | |
*/ | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -10745,7 +10745,7 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE | |
} | |
} else { | |
if (UNEXPECTED(EG(exception) != NULL)) { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
HANDLE_EXCEPTION(); | |
} | |
zend_error_noreturn(E_ERROR, "Call to a member function %s() on a non-object", function_name_strval); | |
@@ -10767,7 +10767,7 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE | |
call->is_ctor_call = 0; | |
EX(call) = call; | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -10783,7 +10783,7 @@ static int ZEND_FASTCALL ZEND_CASE_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG | |
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -10858,7 +10858,7 @@ num_index: | |
/* do nothing */ | |
break; | |
} | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} else { | |
zend_hash_next_index_insert(Z_ARRVAL(EX_T(opline->result.var).tmp_var), &expr_ptr, sizeof(zval *), NULL); | |
} | |
@@ -11176,7 +11176,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR | |
generator->largest_used_integer_key = Z_LVAL_P(generator->key); | |
} | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} else { | |
/* If no key was specified we use auto-increment keys */ | |
generator->largest_used_integer_key++; | |
@@ -12474,7 +12474,7 @@ static int ZEND_FASTCALL ZEND_BW_NOT_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) | |
SAVE_OPLINE(); | |
bitwise_not_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -12487,7 +12487,7 @@ static int ZEND_FASTCALL ZEND_BOOL_NOT_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG | |
SAVE_OPLINE(); | |
boolean_not_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -12509,7 +12509,7 @@ static int ZEND_FASTCALL ZEND_PRE_INC_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS | |
PZVAL_LOCK(&EG(uninitialized_zval)); | |
AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval)); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -12534,7 +12534,7 @@ static int ZEND_FASTCALL ZEND_PRE_INC_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS | |
AI_SET_PTR(&EX_T(opline->result.var), *var_ptr); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -12556,7 +12556,7 @@ static int ZEND_FASTCALL ZEND_PRE_DEC_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS | |
PZVAL_LOCK(&EG(uninitialized_zval)); | |
AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval)); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -12581,7 +12581,7 @@ static int ZEND_FASTCALL ZEND_PRE_DEC_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS | |
AI_SET_PTR(&EX_T(opline->result.var), *var_ptr); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -12600,7 +12600,7 @@ static int ZEND_FASTCALL ZEND_POST_INC_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG | |
} | |
if (IS_VAR == IS_VAR && UNEXPECTED(*var_ptr == &EG(error_zval))) { | |
ZVAL_NULL(&EX_T(opline->result.var).tmp_var); | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -12624,7 +12624,7 @@ static int ZEND_FASTCALL ZEND_POST_INC_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG | |
fast_increment_function(*var_ptr); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -12643,7 +12643,7 @@ static int ZEND_FASTCALL ZEND_POST_DEC_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG | |
} | |
if (IS_VAR == IS_VAR && UNEXPECTED(*var_ptr == &EG(error_zval))) { | |
ZVAL_NULL(&EX_T(opline->result.var).tmp_var); | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -12667,7 +12667,7 @@ static int ZEND_FASTCALL ZEND_POST_DEC_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG | |
fast_decrement_function(*var_ptr); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -12686,7 +12686,7 @@ static int ZEND_FASTCALL ZEND_ECHO_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) | |
} | |
zend_print_variable(z); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -12713,7 +12713,7 @@ static int ZEND_FASTCALL ZEND_JMPZ_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) | |
ret = Z_LVAL_P(val); | |
} else { | |
ret = i_zend_is_true(val); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
if (UNEXPECTED(EG(exception) != NULL)) { | |
HANDLE_EXCEPTION(); | |
} | |
@@ -12743,7 +12743,7 @@ static int ZEND_FASTCALL ZEND_JMPNZ_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) | |
ret = Z_LVAL_P(val); | |
} else { | |
ret = i_zend_is_true(val); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
if (UNEXPECTED(EG(exception) != NULL)) { | |
HANDLE_EXCEPTION(); | |
} | |
@@ -12773,7 +12773,7 @@ static int ZEND_FASTCALL ZEND_JMPZNZ_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) | |
retval = Z_LVAL_P(val); | |
} else { | |
retval = i_zend_is_true(val); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
if (UNEXPECTED(EG(exception) != NULL)) { | |
HANDLE_EXCEPTION(); | |
} | |
@@ -12807,7 +12807,7 @@ static int ZEND_FASTCALL ZEND_JMPZ_EX_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS | |
retval = Z_LVAL_P(val); | |
} else { | |
retval = i_zend_is_true(val); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
if (UNEXPECTED(EG(exception) != NULL)) { | |
HANDLE_EXCEPTION(); | |
} | |
@@ -12838,7 +12838,7 @@ static int ZEND_FASTCALL ZEND_JMPNZ_EX_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG | |
retval = Z_LVAL_P(val); | |
} else { | |
retval = i_zend_is_true(val); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
if (UNEXPECTED(EG(exception) != NULL)) { | |
HANDLE_EXCEPTION(); | |
} | |
@@ -12879,7 +12879,7 @@ static int ZEND_FASTCALL ZEND_RETURN_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) | |
retval_ptr = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC); | |
if (!EG(return_value_ptr_ptr)) { | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
} else { | |
if (IS_VAR == IS_CONST || | |
IS_VAR == IS_TMP_VAR || | |
@@ -12892,7 +12892,7 @@ static int ZEND_FASTCALL ZEND_RETURN_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) | |
zval_copy_ctor(ret); | |
} | |
*EG(return_value_ptr_ptr) = ret; | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
} else if ((IS_VAR == IS_CV || IS_VAR == IS_VAR) && | |
retval_ptr == &EG(uninitialized_zval)) { | |
zval *ret; | |
@@ -12929,7 +12929,7 @@ static int ZEND_FASTCALL ZEND_RETURN_BY_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLE | |
retval_ptr = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC); | |
if (!EG(return_value_ptr_ptr)) { | |
if (IS_VAR == IS_TMP_VAR) { | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
} | |
} else if (!0) { /* Not a temp var */ | |
zval *ret; | |
@@ -12979,7 +12979,7 @@ static int ZEND_FASTCALL ZEND_RETURN_BY_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLE | |
} | |
} while (0); | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
return zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); | |
} | |
@@ -13010,7 +13010,7 @@ static int ZEND_FASTCALL ZEND_THROW_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) | |
zend_throw_exception_object(exception TSRMLS_CC); | |
zend_exception_restore(TSRMLS_C); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
HANDLE_EXCEPTION(); | |
} | |
@@ -13034,7 +13034,7 @@ static int ZEND_FASTCALL zend_send_by_var_helper_SPEC_VAR(ZEND_OPCODE_HANDLER_AR | |
ALLOC_ZVAL(varptr); | |
INIT_PZVAL_COPY(varptr, original_var); | |
zval_copy_ctor(varptr); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
} else { | |
Z_UNSET_ISREF_P(varptr); | |
} | |
@@ -13085,7 +13085,7 @@ static int ZEND_FASTCALL ZEND_SEND_VAR_NO_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HAND | |
if (!0) { | |
zval_copy_ctor(valptr); | |
} | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
zend_vm_stack_push(valptr TSRMLS_CC); | |
} | |
CHECK_EXCEPTION(); | |
@@ -13124,7 +13124,7 @@ static int ZEND_FASTCALL ZEND_SEND_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG | |
Z_ADDREF_P(varptr); | |
zend_vm_stack_push(varptr TSRMLS_CC); | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -13150,7 +13150,7 @@ static int ZEND_FASTCALL ZEND_BOOL_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) | |
SAVE_OPLINE(); | |
/* PHP 3.0 returned "" for false and 1 for true, here we use 0 and 1 for now */ | |
ZVAL_BOOL(retval, i_zend_is_true(_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC))); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -13227,7 +13227,7 @@ static int ZEND_FASTCALL ZEND_CLONE_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) | |
AI_SET_PTR(&EX_T(opline->result.var), retval); | |
} | |
} | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -13269,7 +13269,7 @@ static int ZEND_FASTCALL ZEND_CAST_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) | |
if (use_copy) { | |
ZVAL_COPY_VALUE(result, &var_copy); | |
if (0) { | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
} | |
} else { | |
ZVAL_COPY_VALUE(result, expr); | |
@@ -13286,7 +13286,7 @@ static int ZEND_FASTCALL ZEND_CAST_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) | |
convert_to_object(result); | |
break; | |
} | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -13375,7 +13375,7 @@ static int ZEND_FASTCALL ZEND_INCLUDE_OR_EVAL_SPEC_VAR_HANDLER(ZEND_OPCODE_HAND | |
if (tmp_inc_filename) { | |
zval_ptr_dtor(&tmp_inc_filename); | |
} | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
if (UNEXPECTED(EG(exception) != NULL)) { | |
HANDLE_EXCEPTION(); | |
} else if (EXPECTED(new_op_array != NULL)) { | |
@@ -13511,13 +13511,13 @@ static int ZEND_FASTCALL ZEND_FE_RESET_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG | |
iter = ce->get_iterator(ce, array_ptr, opline->extended_value & ZEND_FE_RESET_REFERENCE TSRMLS_CC); | |
if (IS_VAR == IS_VAR && !(opline->extended_value & ZEND_FE_RESET_VARIABLE)) { | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
} | |
if (iter && EXPECTED(EG(exception) == NULL)) { | |
array_ptr = zend_iterator_wrap(iter TSRMLS_CC); | |
} else { | |
if (IS_VAR == IS_VAR && opline->extended_value & ZEND_FE_RESET_VARIABLE) { | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
} | |
if (!EG(exception)) { | |
zend_throw_exception_ex(NULL, 0 TSRMLS_CC, "Object of type %s did not create an Iterator", ce->name); | |
@@ -13536,7 +13536,7 @@ static int ZEND_FASTCALL ZEND_FE_RESET_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG | |
if (UNEXPECTED(EG(exception) != NULL)) { | |
zval_ptr_dtor(&array_ptr); | |
if (IS_VAR == IS_VAR && opline->extended_value & ZEND_FE_RESET_VARIABLE) { | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
} | |
HANDLE_EXCEPTION(); | |
} | |
@@ -13545,7 +13545,7 @@ static int ZEND_FASTCALL ZEND_FE_RESET_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG | |
if (UNEXPECTED(EG(exception) != NULL)) { | |
zval_ptr_dtor(&array_ptr); | |
if (IS_VAR == IS_VAR && opline->extended_value & ZEND_FE_RESET_VARIABLE) { | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
} | |
HANDLE_EXCEPTION(); | |
} | |
@@ -13577,7 +13577,7 @@ static int ZEND_FASTCALL ZEND_FE_RESET_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG | |
} | |
if (IS_VAR == IS_VAR && opline->extended_value & ZEND_FE_RESET_VARIABLE) { | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
} | |
if (is_empty) { | |
ZEND_VM_JMP(EX(op_array)->opcodes+opline->op2.opline_num); | |
@@ -13733,7 +13733,7 @@ static int ZEND_FASTCALL ZEND_EXIT_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) | |
} else { | |
zend_print_variable(ptr); | |
} | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
} | |
#endif | |
zend_bailout(); | |
@@ -13754,14 +13754,14 @@ static int ZEND_FASTCALL ZEND_JMP_SET_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS | |
if (!0) { | |
zendi_zval_copy_ctor(EX_T(opline->result.var).tmp_var); | |
} | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
#if DEBUG_ZEND>=2 | |
printf("Conditional jmp to %d\n", opline->op2.opline_num); | |
#endif | |
ZEND_VM_JMP(opline->op2.jmp_addr); | |
} | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -13789,14 +13789,14 @@ static int ZEND_FASTCALL ZEND_JMP_SET_VAR_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ | |
zval_copy_ctor(EX_T(opline->result.var).var.ptr); | |
} | |
} | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
#if DEBUG_ZEND>=2 | |
printf("Conditional jmp to %d\n", opline->op2.opline_num); | |
#endif | |
ZEND_VM_JMP(opline->op2.jmp_addr); | |
} | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -13814,7 +13814,7 @@ static int ZEND_FASTCALL ZEND_QM_ASSIGN_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR | |
if (!0) { | |
zval_copy_ctor(&EX_T(opline->result.var).tmp_var); | |
} | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -13842,7 +13842,7 @@ static int ZEND_FASTCALL ZEND_QM_ASSIGN_VAR_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLE | |
} | |
} | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -13863,7 +13863,7 @@ static int ZEND_FASTCALL ZEND_INSTANCEOF_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_A | |
result = 0; | |
} | |
ZVAL_BOOL(&EX_T(opline->result.var).tmp_var, result); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -13877,7 +13877,7 @@ static int ZEND_FASTCALL ZEND_ADD_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_AR | |
fast_add_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
opline->op2.zv TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -13892,7 +13892,7 @@ static int ZEND_FASTCALL ZEND_SUB_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_AR | |
fast_sub_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
opline->op2.zv TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -13907,7 +13907,7 @@ static int ZEND_FASTCALL ZEND_MUL_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_AR | |
fast_mul_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
opline->op2.zv TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -13922,7 +13922,7 @@ static int ZEND_FASTCALL ZEND_DIV_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_AR | |
fast_div_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
opline->op2.zv TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -13937,7 +13937,7 @@ static int ZEND_FASTCALL ZEND_MOD_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_AR | |
fast_mod_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
opline->op2.zv TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -13952,7 +13952,7 @@ static int ZEND_FASTCALL ZEND_SL_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARG | |
shift_left_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
opline->op2.zv TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -13967,7 +13967,7 @@ static int ZEND_FASTCALL ZEND_SR_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARG | |
shift_right_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
opline->op2.zv TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -13982,7 +13982,7 @@ static int ZEND_FASTCALL ZEND_CONCAT_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER | |
concat_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
opline->op2.zv TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -13997,7 +13997,7 @@ static int ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_H | |
is_identical_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
opline->op2.zv TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -14014,7 +14014,7 @@ static int ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_VAR_CONST_HANDLER(ZEND_OPCO | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
opline->op2.zv TSRMLS_CC); | |
Z_LVAL_P(result) = !Z_LVAL_P(result); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -14030,7 +14030,7 @@ static int ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDL | |
ZVAL_BOOL(result, fast_equal_function(result, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
opline->op2.zv TSRMLS_CC)); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -14046,7 +14046,7 @@ static int ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_H | |
ZVAL_BOOL(result, fast_not_equal_function(result, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
opline->op2.zv TSRMLS_CC)); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -14062,7 +14062,7 @@ static int ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HAN | |
ZVAL_BOOL(result, fast_is_smaller_function(result, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
opline->op2.zv TSRMLS_CC)); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -14078,7 +14078,7 @@ static int ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_VAR_CONST_HANDLER(ZEND_O | |
ZVAL_BOOL(result, fast_is_smaller_or_equal_function(result, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
opline->op2.zv TSRMLS_CC)); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -14093,7 +14093,7 @@ static int ZEND_FASTCALL ZEND_BW_OR_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ | |
bitwise_or_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
opline->op2.zv TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -14108,7 +14108,7 @@ static int ZEND_FASTCALL ZEND_BW_AND_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER | |
bitwise_and_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
opline->op2.zv TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -14123,7 +14123,7 @@ static int ZEND_FASTCALL ZEND_BW_XOR_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER | |
bitwise_xor_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
opline->op2.zv TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -14138,7 +14138,7 @@ static int ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDL | |
boolean_xor_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
opline->op2.zv TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -14249,7 +14249,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_CONST(int (*b | |
FREE_OP(free_op_data1); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
/* assign_obj has two opcodes! */ | |
CHECK_EXCEPTION(); | |
ZEND_VM_INC_OPCODE(); | |
@@ -14304,7 +14304,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_CONST(int (*binar | |
AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval)); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
if (opline->extended_value == ZEND_ASSIGN_DIM) { | |
ZEND_VM_INC_OPCODE(); | |
@@ -14335,11 +14335,11 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_CONST(int (*binar | |
if (opline->extended_value == ZEND_ASSIGN_DIM) { | |
FREE_OP(free_op_data1); | |
FREE_OP_VAR_PTR(free_op_data2); | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_INC_OPCODE(); | |
} else { | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
} | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -14429,7 +14429,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_VAR_CONST(incdec_t | |
PZVAL_LOCK(&EG(uninitialized_zval)); | |
*retval = &EG(uninitialized_zval); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -14489,7 +14489,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_VAR_CONST(incdec_t | |
} else { | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -14530,7 +14530,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_VAR_CONST(incdec_ | |
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object"); | |
ZVAL_NULL(retval); | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -14591,7 +14591,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_VAR_CONST(incdec_ | |
} else { | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -14640,7 +14640,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_VAR_CONST(int type, | |
if (IS_VAR != IS_CONST && varname == &tmp_varname) { | |
zval_dtor(&tmp_varname); | |
} | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -14650,7 +14650,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_VAR_CONST(int type, | |
ce = EX_T(opline->op2.var).class_entry; | |
} | |
retval = zend_std_get_static_property(ce, Z_STRVAL_P(varname), Z_STRLEN_P(varname), 0, ((IS_VAR == IS_CONST) ? opline->op1.literal : NULL) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
} else { | |
target_symbol_table = zend_get_target_symbol_table(opline->extended_value & ZEND_FETCH_TYPE_MASK TSRMLS_CC); | |
/* | |
@@ -14687,11 +14687,11 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_VAR_CONST(int type, | |
switch (opline->extended_value & ZEND_FETCH_TYPE_MASK) { | |
case ZEND_FETCH_GLOBAL: | |
if (IS_VAR != IS_TMP_VAR) { | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
} | |
break; | |
case ZEND_FETCH_LOCAL: | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
break; | |
case ZEND_FETCH_STATIC: | |
zval_update_constant(retval, (void*) 1 TSRMLS_CC); | |
@@ -14780,13 +14780,13 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HA | |
zval *container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC); | |
zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, opline->op2.zv, IS_CONST, BP_VAR_R TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
} else { | |
container = _get_zval_ptr_ptr_var_fast(opline->op1.var, execute_data, &free_op1 TSRMLS_CC); | |
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, opline->op2.zv, IS_CONST, BP_VAR_R TSRMLS_CC); | |
if (IS_VAR == IS_VAR && !(opline->extended_value & ZEND_FETCH_ADD_LOCK)) { | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
} | |
} | |
@@ -14811,7 +14811,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HA | |
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) { | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
/* We are going to assign the result by reference */ | |
if (UNEXPECTED(opline->extended_value != 0)) { | |
@@ -14845,7 +14845,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_H | |
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) { | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -14860,7 +14860,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_IS_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_H | |
container = _get_zval_ptr_ptr_var_fast(opline->op1.var, execute_data, &free_op1 TSRMLS_CC); | |
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, opline->op2.zv, IS_CONST, BP_VAR_IS TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -14883,7 +14883,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CONST_HANDLER(ZEND_OP | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
} else { | |
if (IS_CONST == IS_UNUSED) { | |
zend_error_noreturn(E_ERROR, "Cannot use [] for reading"); | |
@@ -14891,7 +14891,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CONST_HANDLER(ZEND_OP | |
container = _get_zval_ptr_ptr_var_fast(opline->op1.var, execute_data, &free_op1 TSRMLS_CC); | |
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, opline->op2.zv, IS_CONST, BP_VAR_R TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
} | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -14919,7 +14919,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_VAR_CONST_HANDLER(ZEND_OPCOD | |
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) { | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
if (UNEXPECTED(EX_T(opline->result.var).var.ptr_ptr == NULL)) { | |
zend_error_noreturn(E_ERROR, "Cannot unset string offsets"); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -14976,7 +14976,7 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_VAR_CONST( | |
} | |
} | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -15013,7 +15013,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HA | |
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) { | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
/* We are going to assign the result by reference */ | |
if (opline->extended_value & ZEND_FETCH_MAKE_REF) { | |
@@ -15056,7 +15056,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_H | |
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) { | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -15098,7 +15098,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_H | |
} | |
} | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -15132,7 +15132,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_CONST_HANDLER(ZEND_OP | |
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) { | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} else { | |
@@ -15171,7 +15171,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_VAR_CONST_HANDLER(ZEND_OPCOD | |
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) { | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
PZVAL_UNLOCK(*EX_T(opline->result.var).var.ptr_ptr, &free_res); | |
if (EX_T(opline->result.var).var.ptr_ptr != &EG(uninitialized_zval_ptr)) { | |
@@ -15206,7 +15206,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HAN | |
} else { | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
/* assign_obj has two opcodes! */ | |
CHECK_EXCEPTION(); | |
ZEND_VM_INC_OPCODE(); | |
@@ -15286,7 +15286,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HAN | |
FREE_OP_VAR_PTR(free_op_data2); | |
FREE_OP_IF_VAR(free_op_data1); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
/* assign_dim has two opcodes! */ | |
CHECK_EXCEPTION(); | |
ZEND_VM_INC_OPCODE(); | |
@@ -15340,7 +15340,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER | |
} | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
/* zend_assign_to_variable() always takes care of op2, never free it! */ | |
@@ -15422,7 +15422,7 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_VAR_CONST_HANDLER(ZEND_OPCO | |
call->is_ctor_call = 0; | |
EX(call) = call; | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -15693,7 +15693,7 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_CONST_HANDLER(ZEND_OPC | |
INIT_PZVAL_COPY(new_expr, expr_ptr); | |
expr_ptr = new_expr; | |
zendi_zval_copy_ctor(*expr_ptr); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
} else if (IS_VAR == IS_CV) { | |
Z_ADDREF_P(expr_ptr); | |
} | |
@@ -15737,7 +15737,7 @@ num_index: | |
zend_hash_next_index_insert(Z_ARRVAL(EX_T(opline->result.var).tmp_var), &expr_ptr, sizeof(zval *), NULL); | |
} | |
if ((IS_VAR == IS_VAR || IS_VAR == IS_CV) && opline->extended_value) { | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
} | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -15806,7 +15806,7 @@ static int ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HAND | |
} else if (IS_VAR == IS_VAR || IS_VAR == IS_CV) { | |
zval_ptr_dtor(&varname); | |
} | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
HANDLE_EXCEPTION(); | |
} | |
if (UNEXPECTED(ce == NULL)) { | |
@@ -15830,7 +15830,7 @@ static int ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HAND | |
} else if (IS_VAR == IS_VAR || IS_VAR == IS_CV) { | |
zval_ptr_dtor(&varname); | |
} | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -15925,7 +15925,7 @@ num_index_dim: | |
} else { | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -15966,7 +15966,7 @@ static int ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HAND | |
} else { | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -16036,7 +16036,7 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_VAR_CONST_HANDLER(ZEND_OPC | |
if (IS_VAR != IS_CONST && varname == &tmp) { | |
zval_dtor(&tmp); | |
} | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
} | |
if (opline->extended_value & ZEND_ISSET) { | |
@@ -16188,7 +16188,7 @@ num_index_prop: | |
Z_LVAL(EX_T(opline->result.var).tmp_var) = !result; | |
} | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -16270,7 +16270,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ | |
generator->value = *value_ptr; | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
} | |
} else { | |
zval *value = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC); | |
@@ -16290,7 +16290,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ | |
} | |
generator->value = copy; | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
} else { | |
if (IS_VAR == IS_CV) { | |
Z_ADDREF_P(value); | |
@@ -16369,7 +16369,7 @@ static int ZEND_FASTCALL ZEND_ADD_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS | |
fast_add_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
zval_dtor(free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -16384,7 +16384,7 @@ static int ZEND_FASTCALL ZEND_SUB_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS | |
fast_sub_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
zval_dtor(free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -16399,7 +16399,7 @@ static int ZEND_FASTCALL ZEND_MUL_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS | |
fast_mul_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
zval_dtor(free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -16414,7 +16414,7 @@ static int ZEND_FASTCALL ZEND_DIV_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS | |
fast_div_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
zval_dtor(free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -16429,7 +16429,7 @@ static int ZEND_FASTCALL ZEND_MOD_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS | |
fast_mod_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
zval_dtor(free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -16444,7 +16444,7 @@ static int ZEND_FASTCALL ZEND_SL_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) | |
shift_left_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
zval_dtor(free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -16459,7 +16459,7 @@ static int ZEND_FASTCALL ZEND_SR_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) | |
shift_right_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
zval_dtor(free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -16474,7 +16474,7 @@ static int ZEND_FASTCALL ZEND_CONCAT_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_A | |
concat_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
zval_dtor(free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -16489,7 +16489,7 @@ static int ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAN | |
is_identical_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
zval_dtor(free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -16506,7 +16506,7 @@ static int ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
Z_LVAL_P(result) = !Z_LVAL_P(result); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
zval_dtor(free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -16522,7 +16522,7 @@ static int ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER | |
ZVAL_BOOL(result, fast_equal_function(result, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC)); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
zval_dtor(free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -16538,7 +16538,7 @@ static int ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAN | |
ZVAL_BOOL(result, fast_not_equal_function(result, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC)); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
zval_dtor(free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -16554,7 +16554,7 @@ static int ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDL | |
ZVAL_BOOL(result, fast_is_smaller_function(result, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC)); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
zval_dtor(free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -16570,7 +16570,7 @@ static int ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_VAR_TMP_HANDLER(ZEND_OPC | |
ZVAL_BOOL(result, fast_is_smaller_or_equal_function(result, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC)); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
zval_dtor(free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -16585,7 +16585,7 @@ static int ZEND_FASTCALL ZEND_BW_OR_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_AR | |
bitwise_or_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
zval_dtor(free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -16600,7 +16600,7 @@ static int ZEND_FASTCALL ZEND_BW_AND_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_A | |
bitwise_and_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
zval_dtor(free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -16615,7 +16615,7 @@ static int ZEND_FASTCALL ZEND_BW_XOR_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_A | |
bitwise_xor_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
zval_dtor(free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -16630,7 +16630,7 @@ static int ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER | |
boolean_xor_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
zval_dtor(free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -16741,7 +16741,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_TMP(int (*bin | |
FREE_OP(free_op_data1); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
/* assign_obj has two opcodes! */ | |
CHECK_EXCEPTION(); | |
ZEND_VM_INC_OPCODE(); | |
@@ -16796,7 +16796,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_TMP(int (*binary_ | |
AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval)); | |
} | |
zval_dtor(free_op2.var); | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
if (opline->extended_value == ZEND_ASSIGN_DIM) { | |
ZEND_VM_INC_OPCODE(); | |
@@ -16828,11 +16828,11 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_TMP(int (*binary_ | |
if (opline->extended_value == ZEND_ASSIGN_DIM) { | |
FREE_OP(free_op_data1); | |
FREE_OP_VAR_PTR(free_op_data2); | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_INC_OPCODE(); | |
} else { | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
} | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -16922,7 +16922,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_VAR_TMP(incdec_t i | |
PZVAL_LOCK(&EG(uninitialized_zval)); | |
*retval = &EG(uninitialized_zval); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -16982,7 +16982,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_VAR_TMP(incdec_t i | |
} else { | |
zval_dtor(free_op2.var); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -17023,7 +17023,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_VAR_TMP(incdec_t | |
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object"); | |
zval_dtor(free_op2.var); | |
ZVAL_NULL(retval); | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -17084,7 +17084,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_VAR_TMP(incdec_t | |
} else { | |
zval_dtor(free_op2.var); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -17111,13 +17111,13 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAND | |
zval *container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC); | |
zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_R TSRMLS_CC); | |
zval_dtor(free_op2.var); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
} else { | |
container = _get_zval_ptr_ptr_var_fast(opline->op1.var, execute_data, &free_op1 TSRMLS_CC); | |
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_R TSRMLS_CC); | |
zval_dtor(free_op2.var); | |
if (IS_VAR == IS_VAR && !(opline->extended_value & ZEND_FETCH_ADD_LOCK)) { | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
} | |
} | |
@@ -17142,7 +17142,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAND | |
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) { | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
/* We are going to assign the result by reference */ | |
if (UNEXPECTED(opline->extended_value != 0)) { | |
@@ -17176,7 +17176,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAN | |
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) { | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -17191,7 +17191,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_IS_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAN | |
container = _get_zval_ptr_ptr_var_fast(opline->op1.var, execute_data, &free_op1 TSRMLS_CC); | |
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_IS TSRMLS_CC); | |
zval_dtor(free_op2.var); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -17214,7 +17214,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_TMP_HANDLER(ZEND_OPCO | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
} | |
zval_dtor(free_op2.var); | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
} else { | |
if (IS_TMP_VAR == IS_UNUSED) { | |
zend_error_noreturn(E_ERROR, "Cannot use [] for reading"); | |
@@ -17222,7 +17222,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_TMP_HANDLER(ZEND_OPCO | |
container = _get_zval_ptr_ptr_var_fast(opline->op1.var, execute_data, &free_op1 TSRMLS_CC); | |
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_R TSRMLS_CC); | |
zval_dtor(free_op2.var); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
} | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -17250,7 +17250,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_ | |
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) { | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
if (UNEXPECTED(EX_T(opline->result.var).var.ptr_ptr == NULL)) { | |
zend_error_noreturn(E_ERROR, "Cannot unset string offsets"); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -17307,7 +17307,7 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_VAR_TMP(ZE | |
} | |
} | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -17344,7 +17344,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAND | |
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) { | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
/* We are going to assign the result by reference */ | |
if (opline->extended_value & ZEND_FETCH_MAKE_REF) { | |
@@ -17387,7 +17387,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAN | |
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) { | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -17429,7 +17429,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAN | |
} | |
} | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -17463,7 +17463,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_TMP_HANDLER(ZEND_OPCO | |
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) { | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} else { | |
@@ -17502,7 +17502,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_ | |
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) { | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
PZVAL_UNLOCK(*EX_T(opline->result.var).var.ptr_ptr, &free_res); | |
if (EX_T(opline->result.var).var.ptr_ptr != &EG(uninitialized_zval_ptr)) { | |
@@ -17537,7 +17537,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDL | |
} else { | |
zval_dtor(free_op2.var); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
/* assign_obj has two opcodes! */ | |
CHECK_EXCEPTION(); | |
ZEND_VM_INC_OPCODE(); | |
@@ -17618,7 +17618,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDL | |
FREE_OP_VAR_PTR(free_op_data2); | |
FREE_OP_IF_VAR(free_op_data1); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
/* assign_dim has two opcodes! */ | |
CHECK_EXCEPTION(); | |
ZEND_VM_INC_OPCODE(); | |
@@ -17672,7 +17672,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_A | |
} | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
/* zend_assign_to_variable() always takes care of op2, never free it! */ | |
@@ -17755,7 +17755,7 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE | |
EX(call) = call; | |
zval_dtor(free_op2.var); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -17930,7 +17930,7 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_TMP_HANDLER(ZEND_OPCOD | |
INIT_PZVAL_COPY(new_expr, expr_ptr); | |
expr_ptr = new_expr; | |
zendi_zval_copy_ctor(*expr_ptr); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
} else if (IS_VAR == IS_CV) { | |
Z_ADDREF_P(expr_ptr); | |
} | |
@@ -17974,7 +17974,7 @@ num_index: | |
zend_hash_next_index_insert(Z_ARRVAL(EX_T(opline->result.var).tmp_var), &expr_ptr, sizeof(zval *), NULL); | |
} | |
if ((IS_VAR == IS_VAR || IS_VAR == IS_CV) && opline->extended_value) { | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
} | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -18084,7 +18084,7 @@ num_index_dim: | |
} else { | |
zval_dtor(free_op2.var); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -18125,7 +18125,7 @@ static int ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLE | |
} else { | |
zval_dtor(free_op2.var); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -18262,7 +18262,7 @@ num_index_prop: | |
Z_LVAL(EX_T(opline->result.var).tmp_var) = !result; | |
} | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -18344,7 +18344,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_AR | |
generator->value = *value_ptr; | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
} | |
} else { | |
zval *value = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC); | |
@@ -18364,7 +18364,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_AR | |
} | |
generator->value = copy; | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
} else { | |
if (IS_VAR == IS_CV) { | |
Z_ADDREF_P(value); | |
@@ -18443,8 +18443,8 @@ static int ZEND_FASTCALL ZEND_ADD_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS | |
fast_add_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -18458,8 +18458,8 @@ static int ZEND_FASTCALL ZEND_SUB_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS | |
fast_sub_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -18473,8 +18473,8 @@ static int ZEND_FASTCALL ZEND_MUL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS | |
fast_mul_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -18488,8 +18488,8 @@ static int ZEND_FASTCALL ZEND_DIV_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS | |
fast_div_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -18503,8 +18503,8 @@ static int ZEND_FASTCALL ZEND_MOD_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS | |
fast_mod_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -18518,8 +18518,8 @@ static int ZEND_FASTCALL ZEND_SL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) | |
shift_left_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -18533,8 +18533,8 @@ static int ZEND_FASTCALL ZEND_SR_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) | |
shift_right_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -18548,8 +18548,8 @@ static int ZEND_FASTCALL ZEND_CONCAT_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_A | |
concat_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -18563,8 +18563,8 @@ static int ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAN | |
is_identical_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -18580,8 +18580,8 @@ static int ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
Z_LVAL_P(result) = !Z_LVAL_P(result); | |
- zval_ptr_dtor(&free_op1.var); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -18596,8 +18596,8 @@ static int ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER | |
ZVAL_BOOL(result, fast_equal_function(result, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC)); | |
- zval_ptr_dtor(&free_op1.var); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -18612,8 +18612,8 @@ static int ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAN | |
ZVAL_BOOL(result, fast_not_equal_function(result, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC)); | |
- zval_ptr_dtor(&free_op1.var); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -18628,8 +18628,8 @@ static int ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDL | |
ZVAL_BOOL(result, fast_is_smaller_function(result, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC)); | |
- zval_ptr_dtor(&free_op1.var); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -18644,8 +18644,8 @@ static int ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_VAR_VAR_HANDLER(ZEND_OPC | |
ZVAL_BOOL(result, fast_is_smaller_or_equal_function(result, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC)); | |
- zval_ptr_dtor(&free_op1.var); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -18659,8 +18659,8 @@ static int ZEND_FASTCALL ZEND_BW_OR_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR | |
bitwise_or_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -18674,8 +18674,8 @@ static int ZEND_FASTCALL ZEND_BW_AND_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_A | |
bitwise_and_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -18689,8 +18689,8 @@ static int ZEND_FASTCALL ZEND_BW_XOR_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_A | |
bitwise_xor_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -18704,8 +18704,8 @@ static int ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER | |
boolean_xor_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -18729,7 +18729,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_VAR(int (*bin | |
if (UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { | |
zend_error(E_WARNING, "Attempt to assign property of non-object"); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
FREE_OP(free_op_data1); | |
if (RETURN_VALUE_USED(opline)) { | |
@@ -18810,12 +18810,12 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_VAR(int (*bin | |
if (0) { | |
zval_ptr_dtor(&property); | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
FREE_OP(free_op_data1); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
/* assign_obj has two opcodes! */ | |
CHECK_EXCEPTION(); | |
ZEND_VM_INC_OPCODE(); | |
@@ -18869,8 +18869,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_VAR(int (*binary_ | |
PZVAL_LOCK(&EG(uninitialized_zval)); | |
AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval)); | |
} | |
- zval_ptr_dtor(&free_op2.var); | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
if (opline->extended_value == ZEND_ASSIGN_DIM) { | |
ZEND_VM_INC_OPCODE(); | |
@@ -18897,16 +18897,16 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_VAR(int (*binary_ | |
PZVAL_LOCK(*var_ptr); | |
AI_SET_PTR(&EX_T(opline->result.var), *var_ptr); | |
} | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
if (opline->extended_value == ZEND_ASSIGN_DIM) { | |
FREE_OP(free_op_data1); | |
FREE_OP_VAR_PTR(free_op_data2); | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_INC_OPCODE(); | |
} else { | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
} | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -18991,12 +18991,12 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_VAR_VAR(incdec_t i | |
if (UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { | |
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object"); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
if (RETURN_VALUE_USED(opline)) { | |
PZVAL_LOCK(&EG(uninitialized_zval)); | |
*retval = &EG(uninitialized_zval); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -19054,9 +19054,9 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_VAR_VAR(incdec_t i | |
if (0) { | |
zval_ptr_dtor(&property); | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -19095,9 +19095,9 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_VAR_VAR(incdec_t | |
if (UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { | |
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object"); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
ZVAL_NULL(retval); | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -19156,9 +19156,9 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_VAR_VAR(incdec_t | |
if (0) { | |
zval_ptr_dtor(&property); | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -19207,7 +19207,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_VAR_VAR(int type, ZE | |
if (IS_VAR != IS_CONST && varname == &tmp_varname) { | |
zval_dtor(&tmp_varname); | |
} | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -19217,7 +19217,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_VAR_VAR(int type, ZE | |
ce = EX_T(opline->op2.var).class_entry; | |
} | |
retval = zend_std_get_static_property(ce, Z_STRVAL_P(varname), Z_STRLEN_P(varname), 0, ((IS_VAR == IS_CONST) ? opline->op1.literal : NULL) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
} else { | |
target_symbol_table = zend_get_target_symbol_table(opline->extended_value & ZEND_FETCH_TYPE_MASK TSRMLS_CC); | |
/* | |
@@ -19254,11 +19254,11 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_VAR_VAR(int type, ZE | |
switch (opline->extended_value & ZEND_FETCH_TYPE_MASK) { | |
case ZEND_FETCH_GLOBAL: | |
if (IS_VAR != IS_TMP_VAR) { | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
} | |
break; | |
case ZEND_FETCH_LOCAL: | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
break; | |
case ZEND_FETCH_STATIC: | |
zval_update_constant(retval, (void*) 1 TSRMLS_CC); | |
@@ -19346,14 +19346,14 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAND | |
if (IS_VAR == IS_TMP_VAR || IS_VAR == IS_CONST) { | |
zval *container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC); | |
zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
} else { | |
container = _get_zval_ptr_ptr_var_fast(opline->op1.var, execute_data, &free_op1 TSRMLS_CC); | |
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
if (IS_VAR == IS_VAR && !(opline->extended_value & ZEND_FETCH_ADD_LOCK)) { | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
} | |
} | |
@@ -19374,11 +19374,11 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAND | |
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array"); | |
} | |
zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_W TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) { | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
/* We are going to assign the result by reference */ | |
if (UNEXPECTED(opline->extended_value != 0)) { | |
@@ -19408,11 +19408,11 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAN | |
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array"); | |
} | |
zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_RW TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) { | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -19426,8 +19426,8 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_IS_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAN | |
SAVE_OPLINE(); | |
container = _get_zval_ptr_ptr_var_fast(opline->op1.var, execute_data, &free_op1 TSRMLS_CC); | |
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_IS TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -19449,16 +19449,16 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_VAR_HANDLER(ZEND_OPCO | |
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) { | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
} | |
- zval_ptr_dtor(&free_op2.var); | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
} else { | |
if (IS_VAR == IS_UNUSED) { | |
zend_error_noreturn(E_ERROR, "Cannot use [] for reading"); | |
} | |
container = _get_zval_ptr_ptr_var_fast(opline->op1.var, execute_data, &free_op1 TSRMLS_CC); | |
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
} | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -19482,11 +19482,11 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_ | |
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array"); | |
} | |
zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_UNSET TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) { | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
if (UNEXPECTED(EX_T(opline->result.var).var.ptr_ptr == NULL)) { | |
zend_error_noreturn(E_ERROR, "Cannot unset string offsets"); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -19522,7 +19522,7 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_VAR_VAR(ZE | |
zend_error(E_NOTICE, "Trying to get property of non-object"); | |
PZVAL_LOCK(&EG(uninitialized_zval)); | |
AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval)); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} else { | |
zval *retval; | |
@@ -19539,11 +19539,11 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_VAR_VAR(ZE | |
if (0) { | |
zval_ptr_dtor(&offset); | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
} | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -19575,12 +19575,12 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAND | |
if (0) { | |
zval_ptr_dtor(&property); | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) { | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
/* We are going to assign the result by reference */ | |
if (opline->extended_value & ZEND_FETCH_MAKE_REF) { | |
@@ -19618,12 +19618,12 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAN | |
if (0) { | |
zval_ptr_dtor(&property); | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) { | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -19644,7 +19644,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAN | |
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) { | |
PZVAL_LOCK(&EG(uninitialized_zval)); | |
AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval)); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} else { | |
zval *retval; | |
@@ -19661,11 +19661,11 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAN | |
if (0) { | |
zval_ptr_dtor(&offset); | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
} | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -19694,12 +19694,12 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_VAR_HANDLER(ZEND_OPCO | |
if (0) { | |
zval_ptr_dtor(&property); | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) { | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} else { | |
@@ -19733,12 +19733,12 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_ | |
if (0) { | |
zval_ptr_dtor(&property); | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) { | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
PZVAL_UNLOCK(*EX_T(opline->result.var).var.ptr_ptr, &free_res); | |
if (EX_T(opline->result.var).var.ptr_ptr != &EG(uninitialized_zval_ptr)) { | |
@@ -19771,9 +19771,9 @@ static int ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDL | |
if (0) { | |
zval_ptr_dtor(&property_name); | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
/* assign_obj has two opcodes! */ | |
CHECK_EXCEPTION(); | |
ZEND_VM_INC_OPCODE(); | |
@@ -19803,7 +19803,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDL | |
if (0) { | |
zval_ptr_dtor(&property_name); | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
} else { | |
zend_free_op free_op2, free_op_data1, free_op_data2; | |
@@ -19812,7 +19812,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDL | |
zval **variable_ptr_ptr; | |
zend_fetch_dimension_address(&EX_T((opline+1)->op2.var), object_ptr, dim, IS_VAR, BP_VAR_W TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R); | |
variable_ptr_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, execute_data, &free_op_data2 TSRMLS_CC); | |
@@ -19854,7 +19854,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDL | |
FREE_OP_VAR_PTR(free_op_data2); | |
FREE_OP_IF_VAR(free_op_data1); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
/* assign_dim has two opcodes! */ | |
CHECK_EXCEPTION(); | |
ZEND_VM_INC_OPCODE(); | |
@@ -19908,10 +19908,10 @@ static int ZEND_FASTCALL ZEND_ASSIGN_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_A | |
} | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
/* zend_assign_to_variable() always takes care of op2, never free it! */ | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -19937,7 +19937,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_REF_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDL | |
} | |
zend_error(E_STRICT, "Only variables should be assigned by reference"); | |
if (UNEXPECTED(EG(exception) != NULL)) { | |
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);}; | |
+ if (free_op2.var) {zval_ptr_dtor_nogc(&free_op2.var);}; | |
HANDLE_EXCEPTION(); | |
} | |
return ZEND_ASSIGN_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); | |
@@ -19964,8 +19964,8 @@ static int ZEND_FASTCALL ZEND_ASSIGN_REF_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDL | |
AI_SET_PTR(&EX_T(opline->result.var), *variable_ptr_ptr); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
+ if (free_op2.var) {zval_ptr_dtor_nogc(&free_op2.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -20023,7 +20023,7 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE | |
} | |
} else { | |
if (UNEXPECTED(EG(exception) != NULL)) { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
HANDLE_EXCEPTION(); | |
} | |
zend_error_noreturn(E_ERROR, "Call to a member function %s() on a non-object", function_name_strval); | |
@@ -20045,8 +20045,8 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE | |
call->is_ctor_call = 0; | |
EX(call) = call; | |
- zval_ptr_dtor(&free_op2.var); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -20136,7 +20136,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_VAR_HANDLER(ZEND | |
} | |
} | |
if (IS_VAR != IS_CONST) { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
} else { | |
if (UNEXPECTED(ce->constructor == NULL)) { | |
@@ -20185,7 +20185,7 @@ static int ZEND_FASTCALL ZEND_CASE_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -20221,7 +20221,7 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_VAR_HANDLER(ZEND_OPCOD | |
INIT_PZVAL_COPY(new_expr, expr_ptr); | |
expr_ptr = new_expr; | |
zendi_zval_copy_ctor(*expr_ptr); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
} else if (IS_VAR == IS_CV) { | |
Z_ADDREF_P(expr_ptr); | |
} | |
@@ -20260,12 +20260,12 @@ num_index: | |
/* do nothing */ | |
break; | |
} | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} else { | |
zend_hash_next_index_insert(Z_ARRVAL(EX_T(opline->result.var).tmp_var), &expr_ptr, sizeof(zval *), NULL); | |
} | |
if ((IS_VAR == IS_VAR || IS_VAR == IS_CV) && opline->extended_value) { | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
} | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -20334,7 +20334,7 @@ static int ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLE | |
} else if (IS_VAR == IS_VAR || IS_VAR == IS_CV) { | |
zval_ptr_dtor(&varname); | |
} | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
HANDLE_EXCEPTION(); | |
} | |
if (UNEXPECTED(ce == NULL)) { | |
@@ -20358,7 +20358,7 @@ static int ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLE | |
} else if (IS_VAR == IS_VAR || IS_VAR == IS_CV) { | |
zval_ptr_dtor(&varname); | |
} | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -20426,7 +20426,7 @@ num_index_dim: | |
zend_error(E_WARNING, "Illegal offset type in unset"); | |
break; | |
} | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
break; | |
} | |
case IS_OBJECT: | |
@@ -20440,20 +20440,20 @@ num_index_dim: | |
if (0) { | |
zval_ptr_dtor(&offset); | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
break; | |
case IS_STRING: | |
zend_error_noreturn(E_ERROR, "Cannot unset string offsets"); | |
ZEND_VM_CONTINUE(); /* bailed out before */ | |
default: | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
break; | |
} | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -20486,15 +20486,15 @@ static int ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLE | |
if (0) { | |
zval_ptr_dtor(&offset); | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -20564,7 +20564,7 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_VAR_VAR_HANDLER(ZEND_OPCOD | |
if (IS_VAR != IS_CONST && varname == &tmp) { | |
zval_dtor(&tmp); | |
} | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
} | |
if (opline->extended_value & ZEND_ISSET) { | |
@@ -20652,7 +20652,7 @@ num_index_prop: | |
result = 1; | |
} | |
} | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} else if (Z_TYPE_P(container) == IS_OBJECT) { | |
if (0) { | |
MAKE_REAL_ZVAL_PTR(offset); | |
@@ -20675,7 +20675,7 @@ num_index_prop: | |
if (0) { | |
zval_ptr_dtor(&offset); | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
} else if (Z_TYPE_P(container) == IS_STRING && !prop_dim) { /* string offsets */ | |
zval tmp; | |
@@ -20704,9 +20704,9 @@ num_index_prop: | |
} | |
} | |
} | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
Z_TYPE(EX_T(opline->result.var).tmp_var) = IS_BOOL; | |
@@ -20716,7 +20716,7 @@ num_index_prop: | |
Z_LVAL(EX_T(opline->result.var).tmp_var) = !result; | |
} | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -20798,7 +20798,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR | |
generator->value = *value_ptr; | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
} | |
} else { | |
zval *value = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC); | |
@@ -20818,7 +20818,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR | |
} | |
generator->value = copy; | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
} else { | |
if (IS_VAR == IS_CV) { | |
Z_ADDREF_P(value); | |
@@ -20863,7 +20863,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR | |
generator->largest_used_integer_key = Z_LVAL_P(generator->key); | |
} | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} else { | |
/* If no key was specified we use auto-increment keys */ | |
generator->largest_used_integer_key++; | |
@@ -20994,7 +20994,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_UNUSED(int (* | |
FREE_OP(free_op_data1); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
/* assign_obj has two opcodes! */ | |
CHECK_EXCEPTION(); | |
ZEND_VM_INC_OPCODE(); | |
@@ -21049,7 +21049,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_UNUSED(int (*bina | |
AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval)); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
if (opline->extended_value == ZEND_ASSIGN_DIM) { | |
ZEND_VM_INC_OPCODE(); | |
@@ -21080,11 +21080,11 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_UNUSED(int (*bina | |
if (opline->extended_value == ZEND_ASSIGN_DIM) { | |
FREE_OP(free_op_data1); | |
FREE_OP_VAR_PTR(free_op_data2); | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_INC_OPCODE(); | |
} else { | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
} | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -21179,7 +21179,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_VAR_UNUSED(int type, | |
if (IS_VAR != IS_CONST && varname == &tmp_varname) { | |
zval_dtor(&tmp_varname); | |
} | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -21189,7 +21189,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_VAR_UNUSED(int type, | |
ce = EX_T(opline->op2.var).class_entry; | |
} | |
retval = zend_std_get_static_property(ce, Z_STRVAL_P(varname), Z_STRLEN_P(varname), 0, ((IS_VAR == IS_CONST) ? opline->op1.literal : NULL) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
} else { | |
target_symbol_table = zend_get_target_symbol_table(opline->extended_value & ZEND_FETCH_TYPE_MASK TSRMLS_CC); | |
/* | |
@@ -21226,11 +21226,11 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_VAR_UNUSED(int type, | |
switch (opline->extended_value & ZEND_FETCH_TYPE_MASK) { | |
case ZEND_FETCH_GLOBAL: | |
if (IS_VAR != IS_TMP_VAR) { | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
} | |
break; | |
case ZEND_FETCH_LOCAL: | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
break; | |
case ZEND_FETCH_STATIC: | |
zval_update_constant(retval, (void*) 1 TSRMLS_CC); | |
@@ -21324,7 +21324,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_H | |
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) { | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
/* We are going to assign the result by reference */ | |
if (UNEXPECTED(opline->extended_value != 0)) { | |
@@ -21358,7 +21358,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_ | |
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) { | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -21381,7 +21381,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_UNUSED_HANDLER(ZEND_O | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
} else { | |
if (IS_UNUSED == IS_UNUSED) { | |
zend_error_noreturn(E_ERROR, "Cannot use [] for reading"); | |
@@ -21389,7 +21389,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_UNUSED_HANDLER(ZEND_O | |
container = _get_zval_ptr_ptr_var_fast(opline->op1.var, execute_data, &free_op1 TSRMLS_CC); | |
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, NULL, IS_UNUSED, BP_VAR_R TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
} | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -21468,7 +21468,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HA | |
FREE_OP_VAR_PTR(free_op_data2); | |
FREE_OP_IF_VAR(free_op_data1); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
/* assign_dim has two opcodes! */ | |
CHECK_EXCEPTION(); | |
ZEND_VM_INC_OPCODE(); | |
@@ -21629,7 +21629,7 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_UNUSED_HANDLER(ZEND_OP | |
INIT_PZVAL_COPY(new_expr, expr_ptr); | |
expr_ptr = new_expr; | |
zendi_zval_copy_ctor(*expr_ptr); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
} else if (IS_VAR == IS_CV) { | |
Z_ADDREF_P(expr_ptr); | |
} | |
@@ -21673,7 +21673,7 @@ num_index: | |
zend_hash_next_index_insert(Z_ARRVAL(EX_T(opline->result.var).tmp_var), &expr_ptr, sizeof(zval *), NULL); | |
} | |
if ((IS_VAR == IS_VAR || IS_VAR == IS_CV) && opline->extended_value) { | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
} | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -21742,7 +21742,7 @@ static int ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HAN | |
} else if (IS_VAR == IS_VAR || IS_VAR == IS_CV) { | |
zval_ptr_dtor(&varname); | |
} | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
HANDLE_EXCEPTION(); | |
} | |
if (UNEXPECTED(ce == NULL)) { | |
@@ -21766,7 +21766,7 @@ static int ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HAN | |
} else if (IS_VAR == IS_VAR || IS_VAR == IS_CV) { | |
zval_ptr_dtor(&varname); | |
} | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -21835,7 +21835,7 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_VAR_UNUSED_HANDLER(ZEND_OP | |
if (IS_VAR != IS_CONST && varname == &tmp) { | |
zval_dtor(&tmp); | |
} | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
} | |
if (opline->extended_value & ZEND_ISSET) { | |
@@ -21943,7 +21943,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER | |
generator->value = *value_ptr; | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
} | |
} else { | |
zval *value = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC); | |
@@ -21963,7 +21963,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER | |
} | |
generator->value = copy; | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
} else { | |
if (IS_VAR == IS_CV) { | |
Z_ADDREF_P(value); | |
@@ -22042,7 +22042,7 @@ static int ZEND_FASTCALL ZEND_ADD_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) | |
fast_add_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -22057,7 +22057,7 @@ static int ZEND_FASTCALL ZEND_SUB_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) | |
fast_sub_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -22072,7 +22072,7 @@ static int ZEND_FASTCALL ZEND_MUL_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) | |
fast_mul_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -22087,7 +22087,7 @@ static int ZEND_FASTCALL ZEND_DIV_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) | |
fast_div_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -22102,7 +22102,7 @@ static int ZEND_FASTCALL ZEND_MOD_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) | |
fast_mod_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -22117,7 +22117,7 @@ static int ZEND_FASTCALL ZEND_SL_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) | |
shift_left_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -22132,7 +22132,7 @@ static int ZEND_FASTCALL ZEND_SR_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) | |
shift_right_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -22147,7 +22147,7 @@ static int ZEND_FASTCALL ZEND_CONCAT_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_AR | |
concat_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -22162,7 +22162,7 @@ static int ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HAND | |
is_identical_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -22179,7 +22179,7 @@ static int ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_ | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC); | |
Z_LVAL_P(result) = !Z_LVAL_P(result); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -22195,7 +22195,7 @@ static int ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ | |
ZVAL_BOOL(result, fast_equal_function(result, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC)); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -22211,7 +22211,7 @@ static int ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HAND | |
ZVAL_BOOL(result, fast_not_equal_function(result, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC)); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -22227,7 +22227,7 @@ static int ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLE | |
ZVAL_BOOL(result, fast_is_smaller_function(result, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC)); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -22243,7 +22243,7 @@ static int ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_VAR_CV_HANDLER(ZEND_OPCO | |
ZVAL_BOOL(result, fast_is_smaller_or_equal_function(result, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC)); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -22258,7 +22258,7 @@ static int ZEND_FASTCALL ZEND_BW_OR_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARG | |
bitwise_or_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -22273,7 +22273,7 @@ static int ZEND_FASTCALL ZEND_BW_AND_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_AR | |
bitwise_and_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -22288,7 +22288,7 @@ static int ZEND_FASTCALL ZEND_BW_XOR_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_AR | |
bitwise_xor_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -22303,7 +22303,7 @@ static int ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ | |
boolean_xor_function(&EX_T(opline->result.var).tmp_var, | |
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC), | |
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -22414,7 +22414,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_CV(int (*bina | |
FREE_OP(free_op_data1); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
/* assign_obj has two opcodes! */ | |
CHECK_EXCEPTION(); | |
ZEND_VM_INC_OPCODE(); | |
@@ -22469,7 +22469,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_CV(int (*binary_o | |
AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval)); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
if (opline->extended_value == ZEND_ASSIGN_DIM) { | |
ZEND_VM_INC_OPCODE(); | |
@@ -22500,11 +22500,11 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_CV(int (*binary_o | |
if (opline->extended_value == ZEND_ASSIGN_DIM) { | |
FREE_OP(free_op_data1); | |
FREE_OP_VAR_PTR(free_op_data2); | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_INC_OPCODE(); | |
} else { | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
} | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -22594,7 +22594,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_VAR_CV(incdec_t in | |
PZVAL_LOCK(&EG(uninitialized_zval)); | |
*retval = &EG(uninitialized_zval); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -22654,7 +22654,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_VAR_CV(incdec_t in | |
} else { | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -22695,7 +22695,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_VAR_CV(incdec_t i | |
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object"); | |
ZVAL_NULL(retval); | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -22756,7 +22756,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_VAR_CV(incdec_t i | |
} else { | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -22783,13 +22783,13 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDL | |
zval *container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC); | |
zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC), IS_CV, BP_VAR_R TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
} else { | |
container = _get_zval_ptr_ptr_var_fast(opline->op1.var, execute_data, &free_op1 TSRMLS_CC); | |
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC), IS_CV, BP_VAR_R TSRMLS_CC); | |
if (IS_VAR == IS_VAR && !(opline->extended_value & ZEND_FETCH_ADD_LOCK)) { | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
} | |
} | |
@@ -22814,7 +22814,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDL | |
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) { | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
/* We are going to assign the result by reference */ | |
if (UNEXPECTED(opline->extended_value != 0)) { | |
@@ -22848,7 +22848,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HAND | |
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) { | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -22863,7 +22863,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_IS_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HAND | |
container = _get_zval_ptr_ptr_var_fast(opline->op1.var, execute_data, &free_op1 TSRMLS_CC); | |
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC), IS_CV, BP_VAR_IS TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -22886,7 +22886,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CV_HANDLER(ZEND_OPCOD | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
} else { | |
if (IS_CV == IS_UNUSED) { | |
zend_error_noreturn(E_ERROR, "Cannot use [] for reading"); | |
@@ -22894,7 +22894,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CV_HANDLER(ZEND_OPCOD | |
container = _get_zval_ptr_ptr_var_fast(opline->op1.var, execute_data, &free_op1 TSRMLS_CC); | |
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC), IS_CV, BP_VAR_R TSRMLS_CC); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
} | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -22922,7 +22922,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_H | |
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) { | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
if (UNEXPECTED(EX_T(opline->result.var).var.ptr_ptr == NULL)) { | |
zend_error_noreturn(E_ERROR, "Cannot unset string offsets"); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -22979,7 +22979,7 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_VAR_CV(ZEN | |
} | |
} | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -23016,7 +23016,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDL | |
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) { | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
/* We are going to assign the result by reference */ | |
if (opline->extended_value & ZEND_FETCH_MAKE_REF) { | |
@@ -23059,7 +23059,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HAND | |
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) { | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -23101,7 +23101,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HAND | |
} | |
} | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -23135,7 +23135,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_CV_HANDLER(ZEND_OPCOD | |
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) { | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} else { | |
@@ -23174,7 +23174,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_H | |
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) { | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
PZVAL_UNLOCK(*EX_T(opline->result.var).var.ptr_ptr, &free_res); | |
if (EX_T(opline->result.var).var.ptr_ptr != &EG(uninitialized_zval_ptr)) { | |
@@ -23209,7 +23209,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLE | |
} else { | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
/* assign_obj has two opcodes! */ | |
CHECK_EXCEPTION(); | |
ZEND_VM_INC_OPCODE(); | |
@@ -23289,7 +23289,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLE | |
FREE_OP_VAR_PTR(free_op_data2); | |
FREE_OP_IF_VAR(free_op_data1); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
/* assign_dim has two opcodes! */ | |
CHECK_EXCEPTION(); | |
ZEND_VM_INC_OPCODE(); | |
@@ -23343,7 +23343,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_AR | |
} | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
/* zend_assign_to_variable() always takes care of op2, never free it! */ | |
@@ -23398,7 +23398,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_REF_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLE | |
AI_SET_PTR(&EX_T(opline->result.var), *variable_ptr_ptr); | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -23478,7 +23478,7 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_ | |
call->is_ctor_call = 0; | |
EX(call) = call; | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -23652,7 +23652,7 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_CV_HANDLER(ZEND_OPCODE | |
INIT_PZVAL_COPY(new_expr, expr_ptr); | |
expr_ptr = new_expr; | |
zendi_zval_copy_ctor(*expr_ptr); | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
} else if (IS_VAR == IS_CV) { | |
Z_ADDREF_P(expr_ptr); | |
} | |
@@ -23696,7 +23696,7 @@ num_index: | |
zend_hash_next_index_insert(Z_ARRVAL(EX_T(opline->result.var).tmp_var), &expr_ptr, sizeof(zval *), NULL); | |
} | |
if ((IS_VAR == IS_VAR || IS_VAR == IS_CV) && opline->extended_value) { | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
} | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -23806,7 +23806,7 @@ num_index_dim: | |
} else { | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -23847,7 +23847,7 @@ static int ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER | |
} else { | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -23984,7 +23984,7 @@ num_index_prop: | |
Z_LVAL(EX_T(opline->result.var).tmp_var) = !result; | |
} | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -24066,7 +24066,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARG | |
generator->value = *value_ptr; | |
} | |
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; | |
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}; | |
} | |
} else { | |
zval *value = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC); | |
@@ -24086,7 +24086,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARG | |
} | |
generator->value = copy; | |
- zval_ptr_dtor(&free_op1.var); | |
+ zval_ptr_dtor_nogc(&free_op1.var); | |
} else { | |
if (IS_VAR == IS_CV) { | |
Z_ADDREF_P(value); | |
@@ -26973,7 +26973,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_VAR(int (* | |
if (UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { | |
zend_error(E_WARNING, "Attempt to assign property of non-object"); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
FREE_OP(free_op_data1); | |
if (RETURN_VALUE_USED(opline)) { | |
@@ -27054,7 +27054,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_VAR(int (* | |
if (0) { | |
zval_ptr_dtor(&property); | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
FREE_OP(free_op_data1); | |
} | |
@@ -27112,7 +27112,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_UNUSED_VAR(int (*bina | |
PZVAL_LOCK(&EG(uninitialized_zval)); | |
AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval)); | |
} | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
if (opline->extended_value == ZEND_ASSIGN_DIM) { | |
@@ -27140,7 +27140,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_UNUSED_VAR(int (*bina | |
PZVAL_LOCK(*var_ptr); | |
AI_SET_PTR(&EX_T(opline->result.var), *var_ptr); | |
} | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
if (opline->extended_value == ZEND_ASSIGN_DIM) { | |
FREE_OP(free_op_data1); | |
@@ -27234,7 +27234,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_UNUSED_VAR(incdec_ | |
if (UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { | |
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object"); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
if (RETURN_VALUE_USED(opline)) { | |
PZVAL_LOCK(&EG(uninitialized_zval)); | |
*retval = &EG(uninitialized_zval); | |
@@ -27297,7 +27297,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_UNUSED_VAR(incdec_ | |
if (0) { | |
zval_ptr_dtor(&property); | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
CHECK_EXCEPTION(); | |
@@ -27338,7 +27338,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_UNUSED_VAR(incdec | |
if (UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { | |
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object"); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
ZVAL_NULL(retval); | |
CHECK_EXCEPTION(); | |
@@ -27399,7 +27399,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_UNUSED_VAR(incdec | |
if (0) { | |
zval_ptr_dtor(&property); | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
CHECK_EXCEPTION(); | |
@@ -27433,7 +27433,7 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_UNUSED_VAR | |
zend_error(E_NOTICE, "Trying to get property of non-object"); | |
PZVAL_LOCK(&EG(uninitialized_zval)); | |
AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval)); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} else { | |
zval *retval; | |
@@ -27450,7 +27450,7 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_UNUSED_VAR | |
if (0) { | |
zval_ptr_dtor(&offset); | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
} | |
@@ -27485,7 +27485,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_H | |
if (0) { | |
zval_ptr_dtor(&property); | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
if (IS_UNUSED == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) { | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
@@ -27527,7 +27527,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_ | |
if (0) { | |
zval_ptr_dtor(&property); | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
if (IS_UNUSED == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) { | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
@@ -27553,7 +27553,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_ | |
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) { | |
PZVAL_LOCK(&EG(uninitialized_zval)); | |
AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval)); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} else { | |
zval *retval; | |
@@ -27570,7 +27570,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_ | |
if (0) { | |
zval_ptr_dtor(&offset); | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
} | |
@@ -27602,7 +27602,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_VAR_HANDLER(ZEND_O | |
if (0) { | |
zval_ptr_dtor(&property); | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
if (IS_UNUSED == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) { | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
@@ -27641,7 +27641,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCO | |
if (0) { | |
zval_ptr_dtor(&property); | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
if (IS_UNUSED == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) { | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
@@ -27678,7 +27678,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_HA | |
if (0) { | |
zval_ptr_dtor(&property_name); | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
/* assign_obj has two opcodes! */ | |
@@ -27726,7 +27726,7 @@ static int ZEND_FASTCALL ZEND_ADD_VAR_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_HANDL | |
* which aren't affected by FREE_OP(Ts, )'s anyway, unless they're | |
* string offsets or overloaded objects | |
*/ | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -27784,7 +27784,7 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_UNUSED_VAR_HANDLER(ZEND_OPC | |
} | |
} else { | |
if (UNEXPECTED(EG(exception) != NULL)) { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
HANDLE_EXCEPTION(); | |
} | |
zend_error_noreturn(E_ERROR, "Call to a member function %s() on a non-object", function_name_strval); | |
@@ -27806,7 +27806,7 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_UNUSED_VAR_HANDLER(ZEND_OPC | |
call->is_ctor_call = 0; | |
EX(call) = call; | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -27889,7 +27889,7 @@ num_index_dim: | |
zend_error(E_WARNING, "Illegal offset type in unset"); | |
break; | |
} | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
break; | |
} | |
case IS_OBJECT: | |
@@ -27903,18 +27903,18 @@ num_index_dim: | |
if (0) { | |
zval_ptr_dtor(&offset); | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
break; | |
case IS_STRING: | |
zend_error_noreturn(E_ERROR, "Cannot unset string offsets"); | |
ZEND_VM_CONTINUE(); /* bailed out before */ | |
default: | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
break; | |
} | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
CHECK_EXCEPTION(); | |
@@ -27948,13 +27948,13 @@ static int ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_HAN | |
if (0) { | |
zval_ptr_dtor(&offset); | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
CHECK_EXCEPTION(); | |
@@ -28028,7 +28028,7 @@ num_index_prop: | |
result = 1; | |
} | |
} | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} else if (Z_TYPE_P(container) == IS_OBJECT) { | |
if (0) { | |
MAKE_REAL_ZVAL_PTR(offset); | |
@@ -28051,7 +28051,7 @@ num_index_prop: | |
if (0) { | |
zval_ptr_dtor(&offset); | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
} else if (Z_TYPE_P(container) == IS_STRING && !prop_dim) { /* string offsets */ | |
zval tmp; | |
@@ -28080,9 +28080,9 @@ num_index_prop: | |
} | |
} | |
} | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
Z_TYPE(EX_T(opline->result.var).tmp_var) = IS_BOOL; | |
@@ -28236,7 +28236,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_HANDLER | |
generator->largest_used_integer_key = Z_LVAL_P(generator->key); | |
} | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} else { | |
/* If no key was specified we use auto-increment keys */ | |
generator->largest_used_integer_key++; | |
@@ -35431,7 +35431,7 @@ static int ZEND_FASTCALL ZEND_ADD_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) | |
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -35446,7 +35446,7 @@ static int ZEND_FASTCALL ZEND_SUB_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) | |
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -35461,7 +35461,7 @@ static int ZEND_FASTCALL ZEND_MUL_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) | |
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -35476,7 +35476,7 @@ static int ZEND_FASTCALL ZEND_DIV_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) | |
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -35491,7 +35491,7 @@ static int ZEND_FASTCALL ZEND_MOD_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) | |
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -35506,7 +35506,7 @@ static int ZEND_FASTCALL ZEND_SL_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) | |
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -35521,7 +35521,7 @@ static int ZEND_FASTCALL ZEND_SR_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) | |
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -35536,7 +35536,7 @@ static int ZEND_FASTCALL ZEND_CONCAT_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR | |
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -35551,7 +35551,7 @@ static int ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HAND | |
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -35568,7 +35568,7 @@ static int ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_ | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
Z_LVAL_P(result) = !Z_LVAL_P(result); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -35584,7 +35584,7 @@ static int ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ | |
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC)); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -35600,7 +35600,7 @@ static int ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HAND | |
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC)); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -35616,7 +35616,7 @@ static int ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLE | |
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC)); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -35632,7 +35632,7 @@ static int ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_CV_VAR_HANDLER(ZEND_OPCO | |
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC)); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -35647,7 +35647,7 @@ static int ZEND_FASTCALL ZEND_BW_OR_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG | |
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -35662,7 +35662,7 @@ static int ZEND_FASTCALL ZEND_BW_AND_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR | |
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -35677,7 +35677,7 @@ static int ZEND_FASTCALL ZEND_BW_XOR_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR | |
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -35692,7 +35692,7 @@ static int ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ | |
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -35716,7 +35716,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_CV_VAR(int (*bina | |
if (UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { | |
zend_error(E_WARNING, "Attempt to assign property of non-object"); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
FREE_OP(free_op_data1); | |
if (RETURN_VALUE_USED(opline)) { | |
@@ -35797,7 +35797,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_CV_VAR(int (*bina | |
if (0) { | |
zval_ptr_dtor(&property); | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
FREE_OP(free_op_data1); | |
} | |
@@ -35855,7 +35855,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_CV_VAR(int (*binary_o | |
PZVAL_LOCK(&EG(uninitialized_zval)); | |
AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval)); | |
} | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
if (opline->extended_value == ZEND_ASSIGN_DIM) { | |
@@ -35883,7 +35883,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_CV_VAR(int (*binary_o | |
PZVAL_LOCK(*var_ptr); | |
AI_SET_PTR(&EX_T(opline->result.var), *var_ptr); | |
} | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
if (opline->extended_value == ZEND_ASSIGN_DIM) { | |
FREE_OP(free_op_data1); | |
@@ -35977,7 +35977,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_CV_VAR(incdec_t in | |
if (UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { | |
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object"); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
if (RETURN_VALUE_USED(opline)) { | |
PZVAL_LOCK(&EG(uninitialized_zval)); | |
*retval = &EG(uninitialized_zval); | |
@@ -36040,7 +36040,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_CV_VAR(incdec_t in | |
if (0) { | |
zval_ptr_dtor(&property); | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
CHECK_EXCEPTION(); | |
@@ -36081,7 +36081,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_CV_VAR(incdec_t i | |
if (UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { | |
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object"); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
ZVAL_NULL(retval); | |
CHECK_EXCEPTION(); | |
@@ -36142,7 +36142,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_CV_VAR(incdec_t i | |
if (0) { | |
zval_ptr_dtor(&property); | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
CHECK_EXCEPTION(); | |
@@ -36332,12 +36332,12 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDL | |
if (IS_CV == IS_TMP_VAR || IS_CV == IS_CONST) { | |
zval *container = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC); | |
zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} else { | |
container = _get_zval_ptr_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC); | |
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
if (IS_CV == IS_VAR && !(opline->extended_value & ZEND_FETCH_ADD_LOCK)) { | |
} | |
@@ -36360,7 +36360,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDL | |
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array"); | |
} | |
zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_W TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) { | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
} | |
@@ -36393,7 +36393,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HAND | |
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array"); | |
} | |
zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_RW TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) { | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
} | |
@@ -36411,7 +36411,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_IS_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HAND | |
SAVE_OPLINE(); | |
container = _get_zval_ptr_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var TSRMLS_CC); | |
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_IS TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -36434,7 +36434,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_VAR_HANDLER(ZEND_OPCOD | |
if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) { | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
} | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} else { | |
if (IS_VAR == IS_UNUSED) { | |
@@ -36442,7 +36442,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_VAR_HANDLER(ZEND_OPCOD | |
} | |
container = _get_zval_ptr_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC); | |
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
CHECK_EXCEPTION(); | |
@@ -36467,7 +36467,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_H | |
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array"); | |
} | |
zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_UNSET TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) { | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
} | |
@@ -36507,7 +36507,7 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_CV_VAR(ZEN | |
zend_error(E_NOTICE, "Trying to get property of non-object"); | |
PZVAL_LOCK(&EG(uninitialized_zval)); | |
AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval)); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} else { | |
zval *retval; | |
@@ -36524,7 +36524,7 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_CV_VAR(ZEN | |
if (0) { | |
zval_ptr_dtor(&offset); | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
} | |
@@ -36559,7 +36559,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDL | |
if (0) { | |
zval_ptr_dtor(&property); | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) { | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
@@ -36601,7 +36601,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HAND | |
if (0) { | |
zval_ptr_dtor(&property); | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) { | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
@@ -36627,7 +36627,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HAND | |
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) { | |
PZVAL_LOCK(&EG(uninitialized_zval)); | |
AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval)); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} else { | |
zval *retval; | |
@@ -36644,7 +36644,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HAND | |
if (0) { | |
zval_ptr_dtor(&offset); | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
} | |
@@ -36676,7 +36676,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_VAR_HANDLER(ZEND_OPCOD | |
if (0) { | |
zval_ptr_dtor(&property); | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) { | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
@@ -36715,7 +36715,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_H | |
if (0) { | |
zval_ptr_dtor(&property); | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) { | |
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var)); | |
@@ -36752,7 +36752,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLE | |
if (0) { | |
zval_ptr_dtor(&property_name); | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
/* assign_obj has two opcodes! */ | |
@@ -36784,7 +36784,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLE | |
if (0) { | |
zval_ptr_dtor(&property_name); | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
} else { | |
zend_free_op free_op2, free_op_data1, free_op_data2; | |
@@ -36793,7 +36793,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLE | |
zval **variable_ptr_ptr; | |
zend_fetch_dimension_address(&EX_T((opline+1)->op2.var), object_ptr, dim, IS_VAR, BP_VAR_W TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R); | |
variable_ptr_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, execute_data, &free_op_data2 TSRMLS_CC); | |
@@ -36890,7 +36890,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR | |
} | |
/* zend_assign_to_variable() always takes care of op2, never free it! */ | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -36916,7 +36916,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_REF_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLE | |
} | |
zend_error(E_STRICT, "Only variables should be assigned by reference"); | |
if (UNEXPECTED(EG(exception) != NULL)) { | |
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);}; | |
+ if (free_op2.var) {zval_ptr_dtor_nogc(&free_op2.var);}; | |
HANDLE_EXCEPTION(); | |
} | |
return ZEND_ASSIGN_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); | |
@@ -36943,7 +36943,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_REF_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLE | |
AI_SET_PTR(&EX_T(opline->result.var), *variable_ptr_ptr); | |
} | |
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);}; | |
+ if (free_op2.var) {zval_ptr_dtor_nogc(&free_op2.var);}; | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -37001,7 +37001,7 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_ | |
} | |
} else { | |
if (UNEXPECTED(EG(exception) != NULL)) { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
HANDLE_EXCEPTION(); | |
} | |
zend_error_noreturn(E_ERROR, "Call to a member function %s() on a non-object", function_name_strval); | |
@@ -37023,7 +37023,7 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_ | |
call->is_ctor_call = 0; | |
EX(call) = call; | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
@@ -37039,7 +37039,7 @@ static int ZEND_FASTCALL ZEND_CASE_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS | |
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC), | |
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC); | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
CHECK_EXCEPTION(); | |
ZEND_VM_NEXT_OPCODE(); | |
} | |
@@ -37114,7 +37114,7 @@ num_index: | |
/* do nothing */ | |
break; | |
} | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} else { | |
zend_hash_next_index_insert(Z_ARRVAL(EX_T(opline->result.var).tmp_var), &expr_ptr, sizeof(zval *), NULL); | |
} | |
@@ -37280,7 +37280,7 @@ num_index_dim: | |
zend_error(E_WARNING, "Illegal offset type in unset"); | |
break; | |
} | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
break; | |
} | |
case IS_OBJECT: | |
@@ -37294,18 +37294,18 @@ num_index_dim: | |
if (0) { | |
zval_ptr_dtor(&offset); | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
break; | |
case IS_STRING: | |
zend_error_noreturn(E_ERROR, "Cannot unset string offsets"); | |
ZEND_VM_CONTINUE(); /* bailed out before */ | |
default: | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
break; | |
} | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
CHECK_EXCEPTION(); | |
@@ -37339,13 +37339,13 @@ static int ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER | |
if (0) { | |
zval_ptr_dtor(&offset); | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
CHECK_EXCEPTION(); | |
@@ -37504,7 +37504,7 @@ num_index_prop: | |
result = 1; | |
} | |
} | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} else if (Z_TYPE_P(container) == IS_OBJECT) { | |
if (0) { | |
MAKE_REAL_ZVAL_PTR(offset); | |
@@ -37527,7 +37527,7 @@ num_index_prop: | |
if (0) { | |
zval_ptr_dtor(&offset); | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
} else if (Z_TYPE_P(container) == IS_STRING && !prop_dim) { /* string offsets */ | |
zval tmp; | |
@@ -37556,9 +37556,9 @@ num_index_prop: | |
} | |
} | |
} | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} else { | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} | |
Z_TYPE(EX_T(opline->result.var).tmp_var) = IS_BOOL; | |
@@ -37712,7 +37712,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG | |
generator->largest_used_integer_key = Z_LVAL_P(generator->key); | |
} | |
- zval_ptr_dtor(&free_op2.var); | |
+ zval_ptr_dtor_nogc(&free_op2.var); | |
} else { | |
/* If no key was specified we use auto-increment keys */ | |
generator->largest_used_integer_key++; | |
diff --git a/Zend/zend_vm_gen.php b/Zend/zend_vm_gen.php | |
index a65349c..a054646 100644 | |
--- a/Zend/zend_vm_gen.php | |
+++ b/Zend/zend_vm_gen.php | |
@@ -218,7 +218,7 @@ $op2_is_tmp_free = array( | |
$op1_free_op = array( | |
"ANY" => "FREE_OP(free_op1)", | |
"TMP" => "zval_dtor(free_op1.var)", | |
- "VAR" => "zval_ptr_dtor(&free_op1.var)", | |
+ "VAR" => "zval_ptr_dtor_nogc(&free_op1.var)", | |
"CONST" => "", | |
"UNUSED" => "", | |
"CV" => "", | |
@@ -227,7 +227,7 @@ $op1_free_op = array( | |
$op2_free_op = array( | |
"ANY" => "FREE_OP(free_op2)", | |
"TMP" => "zval_dtor(free_op2.var)", | |
- "VAR" => "zval_ptr_dtor(&free_op2.var)", | |
+ "VAR" => "zval_ptr_dtor_nogc(&free_op2.var)", | |
"CONST" => "", | |
"UNUSED" => "", | |
"CV" => "", | |
@@ -236,7 +236,7 @@ $op2_free_op = array( | |
$op1_free_op_if_var = array( | |
"ANY" => "FREE_OP_IF_VAR(free_op1)", | |
"TMP" => "", | |
- "VAR" => "zval_ptr_dtor(&free_op1.var)", | |
+ "VAR" => "zval_ptr_dtor_nogc(&free_op1.var)", | |
"CONST" => "", | |
"UNUSED" => "", | |
"CV" => "", | |
@@ -245,33 +245,33 @@ $op1_free_op_if_var = array( | |
$op2_free_op_if_var = array( | |
"ANY" => "FREE_OP_IF_VAR(free_op2)", | |
"TMP" => "", | |
- "VAR" => "zval_ptr_dtor(&free_op2.var)", | |
+ "VAR" => "zval_ptr_dtor_nogc(&free_op2.var)", | |
"CONST" => "", | |
"UNUSED" => "", | |
"CV" => "", | |
); | |
$op1_free_op_var_ptr = array( | |
- "ANY" => "if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}", | |
+ "ANY" => "if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}", | |
"TMP" => "", | |
- "VAR" => "if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}", | |
+ "VAR" => "if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}", | |
"CONST" => "", | |
"UNUSED" => "", | |
"CV" => "", | |
); | |
$op1_free_op_var_ptr_fast = $op1_free_op_var_ptr; | |
-$op1_free_op_var_ptr_fast["VAR"] = "zval_ptr_dtor(&free_op1.var)"; | |
+$op1_free_op_var_ptr_fast["VAR"] = "zval_ptr_dtor_nogc(&free_op1.var)"; | |
$op2_free_op_var_ptr = array( | |
- "ANY" => "if (free_op2.var) {zval_ptr_dtor(&free_op2.var);}", | |
+ "ANY" => "if (free_op2.var) {zval_ptr_dtor_nogc(&free_op2.var);}", | |
"TMP" => "", | |
- "VAR" => "if (free_op2.var) {zval_ptr_dtor(&free_op2.var);}", | |
+ "VAR" => "if (free_op2.var) {zval_ptr_dtor_nogc(&free_op2.var);}", | |
"CONST" => "", | |
"UNUSED" => "", | |
"CV" => "", | |
); | |
$op2_free_op_var_ptr_fast = $op2_free_op_var_ptr; | |
-$op2_free_op_var_ptr_fast["VAR"] = "zval_ptr_dtor(&free_op2.var)"; | |
+$op2_free_op_var_ptr_fast["VAR"] = "zval_ptr_dtor_nogc(&free_op2.var)"; | |
$list = array(); // list of opcode handlers and helpers in original order | |
$opcodes = array(); // opcode handlers by code |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment