summaryrefslogtreecommitdiff
path: root/Zend/zend_vm_def.h
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/zend_vm_def.h')
-rw-r--r--Zend/zend_vm_def.h16
1 files changed, 8 insertions, 8 deletions
diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h
index 85670884c8..85fe91c961 100644
--- a/Zend/zend_vm_def.h
+++ b/Zend/zend_vm_def.h
@@ -1098,7 +1098,7 @@ ZEND_VM_HELPER_EX(zend_fetch_var_address_helper, CONST|TMP|VAR|CV, UNUSED|CONST|
}
if (EXPECTED(retval != NULL)) {
- if (IS_REFCOUNTED(Z_TYPE_P(retval))) Z_ADDREF_P(retval);
+ if (Z_REFCOUNTED_P(retval)) Z_ADDREF_P(retval);
switch (type) {
case BP_VAR_R:
case BP_VAR_IS:
@@ -2835,7 +2835,7 @@ ZEND_VM_HANDLER(62, ZEND_RETURN, CONST|TMP|VAR|CV, ANY)
} else {
ZVAL_COPY_VALUE(EX(return_value), retval_ptr);
if (OP1_TYPE == IS_CV) {
- if (IS_REFCOUNTED(Z_TYPE_P(retval_ptr))) Z_ADDREF_P(retval_ptr);
+ if (Z_REFCOUNTED_P(retval_ptr)) Z_ADDREF_P(retval_ptr);
}
}
}
@@ -3048,7 +3048,7 @@ ZEND_VM_HELPER(zend_send_by_var_helper, VAR|CV, ANY)
//??? varptr = Z_REFVAL_P(varptr);
//??? }
} else if (OP1_TYPE == IS_CV) {
- if (IS_REFCOUNTED(Z_TYPE_P(varptr))) Z_ADDREF_P(varptr);
+ if (Z_REFCOUNTED_P(varptr)) Z_ADDREF_P(varptr);
}
zend_vm_stack_push(varptr TSRMLS_CC);
@@ -3344,7 +3344,7 @@ ZEND_VM_HANDLER(63, ZEND_RECV, ANY, ANY)
zend_verify_arg_type((zend_function *) EG(active_op_array), arg_num, param, opline->extended_value TSRMLS_CC);
var_ptr = _get_zval_ptr_cv_BP_VAR_W(execute_data, opline->result.var TSRMLS_CC);
- if (IS_REFCOUNTED(Z_TYPE_P(var_ptr))) Z_DELREF_P(var_ptr);
+ if (Z_REFCOUNTED_P(var_ptr)) Z_DELREF_P(var_ptr);
ZVAL_COPY(var_ptr, param);
}
@@ -4006,7 +4006,7 @@ ZEND_VM_HANDLER(74, ZEND_UNSET_VAR, CONST|TMP|VAR|CV, UNUSED|CONST|VAR)
convert_to_string(&tmp);
varname = &tmp;
} else if (OP1_TYPE == IS_VAR || OP1_TYPE == IS_CV) {
- Z_ADDREF_P(varname);
+ if (Z_REFCOUNTED_P(varname)) Z_ADDREF_P(varname);
}
if (OP2_TYPE != IS_UNUSED) {
@@ -4091,7 +4091,7 @@ ZEND_VM_HANDLER(75, ZEND_UNSET_DIM, VAR|UNUSED|CV, CONST|TMP|VAR|CV)
break;
case IS_STRING:
if (OP2_TYPE == IS_CV || OP2_TYPE == IS_VAR) {
- Z_ADDREF_P(offset);
+ if (Z_REFCOUNTED_P(offset)) Z_ADDREF_P(offset);
}
if (OP2_TYPE != IS_CONST) {
ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, ZEND_VM_C_GOTO(num_index_dim));
@@ -4684,7 +4684,7 @@ ZEND_VM_C_LABEL(num_index_prop):
zval tmp;
if (Z_TYPE_P(offset) != IS_LONG) {
- if (!Z_REFCOUNTED_P(offset) /* simple scalar types */
+ if (Z_TYPE_P(offset) < IS_STRING /* simple scalar types */
|| (Z_TYPE_P(offset) == IS_STRING /* or numeric string */
&& IS_LONG == is_numeric_string(Z_STRVAL_P(offset), Z_STRLEN_P(offset), NULL, NULL, 0))) {
ZVAL_DUP(&tmp, offset);
@@ -5384,7 +5384,7 @@ ZEND_VM_HANDLER(160, ZEND_YIELD, CONST|TMP|VAR|CV|UNUSED, CONST|TMP|VAR|CV|UNUSE
value = GET_OP1_ZVAL_PTR(BP_VAR_R);
ZVAL_COPY_VALUE(&generator->value, value);
- Z_SET_REFCOUNT(generator->value, 1);
+ if (Z_REFCOUNTED(generator->value)) Z_SET_REFCOUNT(generator->value, 1);
/* Temporary variables don't need ctor copying */
if (!IS_OP1_TMP_FREE()) {