SAVE_OPLINE();
container = EX_CONSTANT(opline->op1);
- offset = EX_CONSTANT(opline->op2);
if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ offset = EX_CONSTANT(opline->op2);
+
if (IS_CONST != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
container = Z_REFVAL_P(container);
SAVE_OPLINE();
container = EX_CONSTANT(opline->op1);
- offset = EX_CONSTANT(opline->op2);
if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ offset = EX_CONSTANT(opline->op2);
+
if (IS_CONST != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
container = Z_REFVAL_P(container);
SAVE_OPLINE();
container = EX_CONSTANT(opline->op1);
- offset = EX_CONSTANT(opline->op2);
if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ offset = EX_CONSTANT(opline->op2);
+
isset_dim_obj_again:
if (IS_CONST != IS_UNUSED && EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
HashTable *ht = Z_ARRVAL_P(container);
SAVE_OPLINE();
container = EX_CONSTANT(opline->op1);
- offset = EX_CONSTANT(opline->op2);
if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ offset = EX_CONSTANT(opline->op2);
+
if (IS_CONST != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
container = Z_REFVAL_P(container);
SAVE_OPLINE();
container = EX_CONSTANT(opline->op1);
- offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
+
if (IS_CONST != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
container = Z_REFVAL_P(container);
SAVE_OPLINE();
container = EX_CONSTANT(opline->op1);
- offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
+
if (IS_CONST != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
container = Z_REFVAL_P(container);
SAVE_OPLINE();
container = EX_CONSTANT(opline->op1);
- offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
+
isset_dim_obj_again:
if (IS_CONST != IS_UNUSED && EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
HashTable *ht = Z_ARRVAL_P(container);
SAVE_OPLINE();
container = EX_CONSTANT(opline->op1);
- offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
+
if (IS_CONST != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
container = Z_REFVAL_P(container);
SAVE_OPLINE();
container = EX_CONSTANT(opline->op1);
- offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
- zval_ptr_dtor_nogc(free_op2);
+ zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
HANDLE_EXCEPTION();
}
+
+ offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
+
if (IS_CONST != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
container = Z_REFVAL_P(container);
SAVE_OPLINE();
container = EX_CONSTANT(opline->op1);
- offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
- zval_ptr_dtor_nogc(free_op2);
+ zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
HANDLE_EXCEPTION();
}
+
+ offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
+
if (IS_CONST != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
container = Z_REFVAL_P(container);
SAVE_OPLINE();
container = EX_CONSTANT(opline->op1);
- offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
- zval_ptr_dtor_nogc(free_op2);
+ zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
HANDLE_EXCEPTION();
}
+
+ offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
+
isset_dim_obj_again:
if (IS_CONST != IS_UNUSED && EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
HashTable *ht = Z_ARRVAL_P(container);
SAVE_OPLINE();
container = EX_CONSTANT(opline->op1);
- offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
- zval_ptr_dtor_nogc(free_op2);
+ zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
HANDLE_EXCEPTION();
}
+
+ offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
+
if (IS_CONST != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
container = Z_REFVAL_P(container);
SAVE_OPLINE();
container = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1);
- offset = EX_CONSTANT(opline->op2);
if (IS_TMP_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ offset = EX_CONSTANT(opline->op2);
+
if (IS_TMP_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
if ((IS_TMP_VAR & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
container = Z_REFVAL_P(container);
SAVE_OPLINE();
container = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1);
- offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
if (IS_TMP_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
+
if (IS_TMP_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
if ((IS_TMP_VAR & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
container = Z_REFVAL_P(container);
SAVE_OPLINE();
container = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1);
- offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
if (IS_TMP_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
- zval_ptr_dtor_nogc(free_op2);
+ zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
HANDLE_EXCEPTION();
}
+
+ offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
+
if (IS_TMP_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
if ((IS_TMP_VAR & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
container = Z_REFVAL_P(container);
SAVE_OPLINE();
object = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
- property = EX_CONSTANT(opline->op2);
+
if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
HANDLE_EXCEPTION();
}
+
+ property = EX_CONSTANT(opline->op2);
+
if (IS_VAR == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an object");
FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
zend_free_op free_op1;
zval *object;
zval *property;
- zval *retval;
zval *zptr;
SAVE_OPLINE();
object = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
- property = EX_CONSTANT(opline->op2);
- retval = EX_VAR(opline->result.var);
if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ property = EX_CONSTANT(opline->op2);
+
if (IS_VAR == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot increment/decrement overloaded objects nor string offsets");
if (UNEXPECTED(!make_real_object(object))) {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(retval);
+ ZVAL_NULL(EX_VAR(opline->result.var));
}
break;
}
incdec_op(zptr);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_COPY(retval, zptr);
+ ZVAL_COPY(EX_VAR(opline->result.var), zptr);
}
} else {
zval rv;
SEPARATE_ZVAL_NOREF(z);
incdec_op(z);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_COPY(retval, z);
+ ZVAL_COPY(EX_VAR(opline->result.var), z);
}
Z_OBJ_HT(obj)->write_property(&obj, property, z, ((IS_CONST == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL));
OBJ_RELEASE(Z_OBJ(obj));
} else {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(retval);
+ ZVAL_NULL(EX_VAR(opline->result.var));
}
}
}
zend_free_op free_op1;
zval *object;
zval *property;
- zval *retval;
zval *zptr;
SAVE_OPLINE();
object = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
- property = EX_CONSTANT(opline->op2);
- retval = EX_VAR(opline->result.var);
if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ property = EX_CONSTANT(opline->op2);
+
if (IS_VAR == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot increment/decrement overloaded objects nor string offsets");
ZVAL_DEREF(object);
if (UNEXPECTED(!make_real_object(object))) {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
- ZVAL_NULL(retval);
+ ZVAL_NULL(EX_VAR(opline->result.var));
break;
}
}
&& EXPECTED((zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_CONST == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL))) != NULL)) {
ZVAL_DEREF(zptr);
- ZVAL_COPY_VALUE(retval, zptr);
+ ZVAL_COPY_VALUE(EX_VAR(opline->result.var), zptr);
zval_opt_copy_ctor(zptr);
incdec_op(zptr);
} else {
}
ZVAL_COPY_VALUE(z, value);
}
- ZVAL_DUP(retval, z);
+ ZVAL_DUP(EX_VAR(opline->result.var), z);
ZVAL_DUP(&z_copy, z);
incdec_op(&z_copy);
if (Z_REFCOUNTED_P(z)) Z_ADDREF_P(z);
zval_ptr_dtor(z);
} else {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
- ZVAL_NULL(retval);
+ ZVAL_NULL(EX_VAR(opline->result.var));
}
}
} while (0);
SAVE_OPLINE();
container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
- offset = EX_CONSTANT(opline->op2);
if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ offset = EX_CONSTANT(opline->op2);
+
if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
if ((IS_VAR & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
container = Z_REFVAL_P(container);
SAVE_OPLINE();
container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
- property = EX_CONSTANT(opline->op2);
if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ property = EX_CONSTANT(opline->op2);
+
if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an object");
SAVE_OPLINE();
object = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
- property_name = EX_CONSTANT(opline->op2);
if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ property_name = EX_CONSTANT(opline->op2);
+
if (IS_VAR == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an array");
SAVE_OPLINE();
object = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
- property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
+
if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
HANDLE_EXCEPTION();
}
+
+ property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
+
if (IS_VAR == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an object");
FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
zend_free_op free_op1;
zval *object;
zval *property;
- zval *retval;
zval *zptr;
SAVE_OPLINE();
object = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
- property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
- retval = EX_VAR(opline->result.var);
if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
+
if (IS_VAR == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot increment/decrement overloaded objects nor string offsets");
if (UNEXPECTED(!make_real_object(object))) {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(retval);
+ ZVAL_NULL(EX_VAR(opline->result.var));
}
break;
}
incdec_op(zptr);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_COPY(retval, zptr);
+ ZVAL_COPY(EX_VAR(opline->result.var), zptr);
}
} else {
zval rv;
SEPARATE_ZVAL_NOREF(z);
incdec_op(z);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_COPY(retval, z);
+ ZVAL_COPY(EX_VAR(opline->result.var), z);
}
Z_OBJ_HT(obj)->write_property(&obj, property, z, ((IS_CV == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL));
OBJ_RELEASE(Z_OBJ(obj));
} else {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(retval);
+ ZVAL_NULL(EX_VAR(opline->result.var));
}
}
}
zend_free_op free_op1;
zval *object;
zval *property;
- zval *retval;
zval *zptr;
SAVE_OPLINE();
object = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
- property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
- retval = EX_VAR(opline->result.var);
if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
+
if (IS_VAR == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot increment/decrement overloaded objects nor string offsets");
ZVAL_DEREF(object);
if (UNEXPECTED(!make_real_object(object))) {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
- ZVAL_NULL(retval);
+ ZVAL_NULL(EX_VAR(opline->result.var));
break;
}
}
&& EXPECTED((zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_CV == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL))) != NULL)) {
ZVAL_DEREF(zptr);
- ZVAL_COPY_VALUE(retval, zptr);
+ ZVAL_COPY_VALUE(EX_VAR(opline->result.var), zptr);
zval_opt_copy_ctor(zptr);
incdec_op(zptr);
} else {
}
ZVAL_COPY_VALUE(z, value);
}
- ZVAL_DUP(retval, z);
+ ZVAL_DUP(EX_VAR(opline->result.var), z);
ZVAL_DUP(&z_copy, z);
incdec_op(&z_copy);
if (Z_REFCOUNTED_P(z)) Z_ADDREF_P(z);
zval_ptr_dtor(z);
} else {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
- ZVAL_NULL(retval);
+ ZVAL_NULL(EX_VAR(opline->result.var));
}
}
} while (0);
SAVE_OPLINE();
container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
- offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
+
if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
if ((IS_VAR & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
container = Z_REFVAL_P(container);
SAVE_OPLINE();
container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
- property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
+
if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an object");
SAVE_OPLINE();
object = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
- property_name = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ property_name = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
+
if (IS_VAR == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an array");
SAVE_OPLINE();
object = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
- property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
+
if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
- zval_ptr_dtor_nogc(free_op2);
+ zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
HANDLE_EXCEPTION();
}
+
+ property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
+
if (IS_VAR == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an object");
FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
zend_free_op free_op1, free_op2;
zval *object;
zval *property;
- zval *retval;
zval *zptr;
SAVE_OPLINE();
object = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
- property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
- retval = EX_VAR(opline->result.var);
if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
- zval_ptr_dtor_nogc(free_op2);
+ zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
HANDLE_EXCEPTION();
}
+
+ property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
+
if (IS_VAR == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot increment/decrement overloaded objects nor string offsets");
zval_ptr_dtor_nogc(free_op2);
if (UNEXPECTED(!make_real_object(object))) {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(retval);
+ ZVAL_NULL(EX_VAR(opline->result.var));
}
break;
}
incdec_op(zptr);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_COPY(retval, zptr);
+ ZVAL_COPY(EX_VAR(opline->result.var), zptr);
}
} else {
zval rv;
SEPARATE_ZVAL_NOREF(z);
incdec_op(z);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_COPY(retval, z);
+ ZVAL_COPY(EX_VAR(opline->result.var), z);
}
Z_OBJ_HT(obj)->write_property(&obj, property, z, (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL));
OBJ_RELEASE(Z_OBJ(obj));
} else {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(retval);
+ ZVAL_NULL(EX_VAR(opline->result.var));
}
}
}
zend_free_op free_op1, free_op2;
zval *object;
zval *property;
- zval *retval;
zval *zptr;
SAVE_OPLINE();
object = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
- property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
- retval = EX_VAR(opline->result.var);
if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
- zval_ptr_dtor_nogc(free_op2);
+ zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
HANDLE_EXCEPTION();
}
+
+ property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
+
if (IS_VAR == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot increment/decrement overloaded objects nor string offsets");
zval_ptr_dtor_nogc(free_op2);
ZVAL_DEREF(object);
if (UNEXPECTED(!make_real_object(object))) {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
- ZVAL_NULL(retval);
+ ZVAL_NULL(EX_VAR(opline->result.var));
break;
}
}
&& EXPECTED((zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL))) != NULL)) {
ZVAL_DEREF(zptr);
- ZVAL_COPY_VALUE(retval, zptr);
+ ZVAL_COPY_VALUE(EX_VAR(opline->result.var), zptr);
zval_opt_copy_ctor(zptr);
incdec_op(zptr);
} else {
}
ZVAL_COPY_VALUE(z, value);
}
- ZVAL_DUP(retval, z);
+ ZVAL_DUP(EX_VAR(opline->result.var), z);
ZVAL_DUP(&z_copy, z);
incdec_op(&z_copy);
if (Z_REFCOUNTED_P(z)) Z_ADDREF_P(z);
zval_ptr_dtor(z);
} else {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
- ZVAL_NULL(retval);
+ ZVAL_NULL(EX_VAR(opline->result.var));
}
}
} while (0);
SAVE_OPLINE();
container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
- offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
- zval_ptr_dtor_nogc(free_op2);
+ zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
HANDLE_EXCEPTION();
}
+
+ offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
+
if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
if ((IS_VAR & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
container = Z_REFVAL_P(container);
SAVE_OPLINE();
container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
- property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
- zval_ptr_dtor_nogc(free_op2);
+ zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
HANDLE_EXCEPTION();
}
+
+ property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
+
if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an object");
zval_ptr_dtor_nogc(free_op2);
SAVE_OPLINE();
object = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
- property_name = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
- zval_ptr_dtor_nogc(free_op2);
+ zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
HANDLE_EXCEPTION();
}
+
+ property_name = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
+
if (IS_VAR == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an array");
zval_ptr_dtor_nogc(free_op2);
SAVE_OPLINE();
object = _get_obj_zval_ptr_unused(execute_data);
- property = EX_CONSTANT(opline->op2);
+
if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
HANDLE_EXCEPTION();
}
+
+ property = EX_CONSTANT(opline->op2);
+
if (IS_UNUSED == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an object");
FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
zval *object;
zval *property;
- zval *retval;
zval *zptr;
SAVE_OPLINE();
object = _get_obj_zval_ptr_unused(execute_data);
- property = EX_CONSTANT(opline->op2);
- retval = EX_VAR(opline->result.var);
if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ property = EX_CONSTANT(opline->op2);
+
if (IS_UNUSED == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot increment/decrement overloaded objects nor string offsets");
if (UNEXPECTED(!make_real_object(object))) {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(retval);
+ ZVAL_NULL(EX_VAR(opline->result.var));
}
break;
}
incdec_op(zptr);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_COPY(retval, zptr);
+ ZVAL_COPY(EX_VAR(opline->result.var), zptr);
}
} else {
zval rv;
SEPARATE_ZVAL_NOREF(z);
incdec_op(z);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_COPY(retval, z);
+ ZVAL_COPY(EX_VAR(opline->result.var), z);
}
Z_OBJ_HT(obj)->write_property(&obj, property, z, ((IS_CONST == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL));
OBJ_RELEASE(Z_OBJ(obj));
} else {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(retval);
+ ZVAL_NULL(EX_VAR(opline->result.var));
}
}
}
zval *object;
zval *property;
- zval *retval;
zval *zptr;
SAVE_OPLINE();
object = _get_obj_zval_ptr_unused(execute_data);
- property = EX_CONSTANT(opline->op2);
- retval = EX_VAR(opline->result.var);
if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ property = EX_CONSTANT(opline->op2);
+
if (IS_UNUSED == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot increment/decrement overloaded objects nor string offsets");
ZVAL_DEREF(object);
if (UNEXPECTED(!make_real_object(object))) {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
- ZVAL_NULL(retval);
+ ZVAL_NULL(EX_VAR(opline->result.var));
break;
}
}
&& EXPECTED((zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_CONST == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL))) != NULL)) {
ZVAL_DEREF(zptr);
- ZVAL_COPY_VALUE(retval, zptr);
+ ZVAL_COPY_VALUE(EX_VAR(opline->result.var), zptr);
zval_opt_copy_ctor(zptr);
incdec_op(zptr);
} else {
}
ZVAL_COPY_VALUE(z, value);
}
- ZVAL_DUP(retval, z);
+ ZVAL_DUP(EX_VAR(opline->result.var), z);
ZVAL_DUP(&z_copy, z);
incdec_op(&z_copy);
if (Z_REFCOUNTED_P(z)) Z_ADDREF_P(z);
zval_ptr_dtor(z);
} else {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
- ZVAL_NULL(retval);
+ ZVAL_NULL(EX_VAR(opline->result.var));
}
}
} while (0);
SAVE_OPLINE();
container = _get_obj_zval_ptr_unused(execute_data);
- offset = EX_CONSTANT(opline->op2);
if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ offset = EX_CONSTANT(opline->op2);
+
if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
container = Z_REFVAL_P(container);
SAVE_OPLINE();
container = _get_obj_zval_ptr_unused(execute_data);
- offset = EX_CONSTANT(opline->op2);
if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ offset = EX_CONSTANT(opline->op2);
+
if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
container = Z_REFVAL_P(container);
SAVE_OPLINE();
container = _get_obj_zval_ptr_unused(execute_data);
- property = EX_CONSTANT(opline->op2);
if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ property = EX_CONSTANT(opline->op2);
+
if (IS_UNUSED == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an object");
SAVE_OPLINE();
object = _get_obj_zval_ptr_unused(execute_data);
- property_name = EX_CONSTANT(opline->op2);
if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ property_name = EX_CONSTANT(opline->op2);
+
if (IS_UNUSED == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an array");
SAVE_OPLINE();
container = _get_obj_zval_ptr_unused(execute_data);
- offset = EX_CONSTANT(opline->op2);
if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ offset = EX_CONSTANT(opline->op2);
+
isset_dim_obj_again:
if (IS_UNUSED != IS_UNUSED && EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
HashTable *ht = Z_ARRVAL_P(container);
SAVE_OPLINE();
container = _get_obj_zval_ptr_unused(execute_data);
- offset = EX_CONSTANT(opline->op2);
if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ offset = EX_CONSTANT(opline->op2);
+
if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
container = Z_REFVAL_P(container);
SAVE_OPLINE();
object = _get_obj_zval_ptr_unused(execute_data);
- property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
+
if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
HANDLE_EXCEPTION();
}
+
+ property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
+
if (IS_UNUSED == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an object");
FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
zval *object;
zval *property;
- zval *retval;
zval *zptr;
SAVE_OPLINE();
object = _get_obj_zval_ptr_unused(execute_data);
- property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
- retval = EX_VAR(opline->result.var);
if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
+
if (IS_UNUSED == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot increment/decrement overloaded objects nor string offsets");
if (UNEXPECTED(!make_real_object(object))) {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(retval);
+ ZVAL_NULL(EX_VAR(opline->result.var));
}
break;
}
incdec_op(zptr);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_COPY(retval, zptr);
+ ZVAL_COPY(EX_VAR(opline->result.var), zptr);
}
} else {
zval rv;
SEPARATE_ZVAL_NOREF(z);
incdec_op(z);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_COPY(retval, z);
+ ZVAL_COPY(EX_VAR(opline->result.var), z);
}
Z_OBJ_HT(obj)->write_property(&obj, property, z, ((IS_CV == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL));
OBJ_RELEASE(Z_OBJ(obj));
} else {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(retval);
+ ZVAL_NULL(EX_VAR(opline->result.var));
}
}
}
zval *object;
zval *property;
- zval *retval;
zval *zptr;
SAVE_OPLINE();
object = _get_obj_zval_ptr_unused(execute_data);
- property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
- retval = EX_VAR(opline->result.var);
if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
+
if (IS_UNUSED == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot increment/decrement overloaded objects nor string offsets");
ZVAL_DEREF(object);
if (UNEXPECTED(!make_real_object(object))) {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
- ZVAL_NULL(retval);
+ ZVAL_NULL(EX_VAR(opline->result.var));
break;
}
}
&& EXPECTED((zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_CV == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL))) != NULL)) {
ZVAL_DEREF(zptr);
- ZVAL_COPY_VALUE(retval, zptr);
+ ZVAL_COPY_VALUE(EX_VAR(opline->result.var), zptr);
zval_opt_copy_ctor(zptr);
incdec_op(zptr);
} else {
}
ZVAL_COPY_VALUE(z, value);
}
- ZVAL_DUP(retval, z);
+ ZVAL_DUP(EX_VAR(opline->result.var), z);
ZVAL_DUP(&z_copy, z);
incdec_op(&z_copy);
if (Z_REFCOUNTED_P(z)) Z_ADDREF_P(z);
zval_ptr_dtor(z);
} else {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
- ZVAL_NULL(retval);
+ ZVAL_NULL(EX_VAR(opline->result.var));
}
}
} while (0);
SAVE_OPLINE();
container = _get_obj_zval_ptr_unused(execute_data);
- offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
+
if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
container = Z_REFVAL_P(container);
SAVE_OPLINE();
container = _get_obj_zval_ptr_unused(execute_data);
- offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
+
if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
container = Z_REFVAL_P(container);
SAVE_OPLINE();
container = _get_obj_zval_ptr_unused(execute_data);
- property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
+
if (IS_UNUSED == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an object");
SAVE_OPLINE();
object = _get_obj_zval_ptr_unused(execute_data);
- property_name = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ property_name = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
+
if (IS_UNUSED == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an array");
SAVE_OPLINE();
container = _get_obj_zval_ptr_unused(execute_data);
- offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
+
isset_dim_obj_again:
if (IS_UNUSED != IS_UNUSED && EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
HashTable *ht = Z_ARRVAL_P(container);
SAVE_OPLINE();
container = _get_obj_zval_ptr_unused(execute_data);
- offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
+
if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
container = Z_REFVAL_P(container);
SAVE_OPLINE();
object = _get_obj_zval_ptr_unused(execute_data);
- property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
+
if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
- zval_ptr_dtor_nogc(free_op2);
+ zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
HANDLE_EXCEPTION();
}
+
+ property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
+
if (IS_UNUSED == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an object");
FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
zend_free_op free_op2;
zval *object;
zval *property;
- zval *retval;
zval *zptr;
SAVE_OPLINE();
object = _get_obj_zval_ptr_unused(execute_data);
- property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
- retval = EX_VAR(opline->result.var);
if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
- zval_ptr_dtor_nogc(free_op2);
+ zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
HANDLE_EXCEPTION();
}
+
+ property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
+
if (IS_UNUSED == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot increment/decrement overloaded objects nor string offsets");
zval_ptr_dtor_nogc(free_op2);
if (UNEXPECTED(!make_real_object(object))) {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(retval);
+ ZVAL_NULL(EX_VAR(opline->result.var));
}
break;
}
incdec_op(zptr);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_COPY(retval, zptr);
+ ZVAL_COPY(EX_VAR(opline->result.var), zptr);
}
} else {
zval rv;
SEPARATE_ZVAL_NOREF(z);
incdec_op(z);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_COPY(retval, z);
+ ZVAL_COPY(EX_VAR(opline->result.var), z);
}
Z_OBJ_HT(obj)->write_property(&obj, property, z, (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL));
OBJ_RELEASE(Z_OBJ(obj));
} else {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(retval);
+ ZVAL_NULL(EX_VAR(opline->result.var));
}
}
}
zend_free_op free_op2;
zval *object;
zval *property;
- zval *retval;
zval *zptr;
SAVE_OPLINE();
object = _get_obj_zval_ptr_unused(execute_data);
- property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
- retval = EX_VAR(opline->result.var);
if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
- zval_ptr_dtor_nogc(free_op2);
+ zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
HANDLE_EXCEPTION();
}
+
+ property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
+
if (IS_UNUSED == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot increment/decrement overloaded objects nor string offsets");
zval_ptr_dtor_nogc(free_op2);
ZVAL_DEREF(object);
if (UNEXPECTED(!make_real_object(object))) {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
- ZVAL_NULL(retval);
+ ZVAL_NULL(EX_VAR(opline->result.var));
break;
}
}
&& EXPECTED((zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL))) != NULL)) {
ZVAL_DEREF(zptr);
- ZVAL_COPY_VALUE(retval, zptr);
+ ZVAL_COPY_VALUE(EX_VAR(opline->result.var), zptr);
zval_opt_copy_ctor(zptr);
incdec_op(zptr);
} else {
}
ZVAL_COPY_VALUE(z, value);
}
- ZVAL_DUP(retval, z);
+ ZVAL_DUP(EX_VAR(opline->result.var), z);
ZVAL_DUP(&z_copy, z);
incdec_op(&z_copy);
if (Z_REFCOUNTED_P(z)) Z_ADDREF_P(z);
zval_ptr_dtor(z);
} else {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
- ZVAL_NULL(retval);
+ ZVAL_NULL(EX_VAR(opline->result.var));
}
}
} while (0);
SAVE_OPLINE();
container = _get_obj_zval_ptr_unused(execute_data);
- offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
- zval_ptr_dtor_nogc(free_op2);
+ zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
HANDLE_EXCEPTION();
}
+
+ offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
+
if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
container = Z_REFVAL_P(container);
SAVE_OPLINE();
container = _get_obj_zval_ptr_unused(execute_data);
- offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
- zval_ptr_dtor_nogc(free_op2);
+ zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
HANDLE_EXCEPTION();
}
+
+ offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
+
if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
container = Z_REFVAL_P(container);
SAVE_OPLINE();
container = _get_obj_zval_ptr_unused(execute_data);
- property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
- zval_ptr_dtor_nogc(free_op2);
+ zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
HANDLE_EXCEPTION();
}
+
+ property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
+
if (IS_UNUSED == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an object");
zval_ptr_dtor_nogc(free_op2);
SAVE_OPLINE();
object = _get_obj_zval_ptr_unused(execute_data);
- property_name = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
- zval_ptr_dtor_nogc(free_op2);
+ zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
HANDLE_EXCEPTION();
}
+
+ property_name = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
+
if (IS_UNUSED == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an array");
zval_ptr_dtor_nogc(free_op2);
SAVE_OPLINE();
container = _get_obj_zval_ptr_unused(execute_data);
- offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
- zval_ptr_dtor_nogc(free_op2);
+ zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
HANDLE_EXCEPTION();
}
+
+ offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
+
isset_dim_obj_again:
if (IS_UNUSED != IS_UNUSED && EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
HashTable *ht = Z_ARRVAL_P(container);
SAVE_OPLINE();
container = _get_obj_zval_ptr_unused(execute_data);
- offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
- zval_ptr_dtor_nogc(free_op2);
+ zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
HANDLE_EXCEPTION();
}
+
+ offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
+
if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
container = Z_REFVAL_P(container);
SAVE_OPLINE();
object = _get_zval_ptr_cv_BP_VAR_RW(execute_data, opline->op1.var);
- property = EX_CONSTANT(opline->op2);
+
if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
HANDLE_EXCEPTION();
}
+
+ property = EX_CONSTANT(opline->op2);
+
if (IS_CV == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an object");
FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
zval *object;
zval *property;
- zval *retval;
zval *zptr;
SAVE_OPLINE();
object = _get_zval_ptr_cv_BP_VAR_RW(execute_data, opline->op1.var);
- property = EX_CONSTANT(opline->op2);
- retval = EX_VAR(opline->result.var);
if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ property = EX_CONSTANT(opline->op2);
+
if (IS_CV == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot increment/decrement overloaded objects nor string offsets");
if (UNEXPECTED(!make_real_object(object))) {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(retval);
+ ZVAL_NULL(EX_VAR(opline->result.var));
}
break;
}
incdec_op(zptr);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_COPY(retval, zptr);
+ ZVAL_COPY(EX_VAR(opline->result.var), zptr);
}
} else {
zval rv;
SEPARATE_ZVAL_NOREF(z);
incdec_op(z);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_COPY(retval, z);
+ ZVAL_COPY(EX_VAR(opline->result.var), z);
}
Z_OBJ_HT(obj)->write_property(&obj, property, z, ((IS_CONST == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL));
OBJ_RELEASE(Z_OBJ(obj));
} else {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(retval);
+ ZVAL_NULL(EX_VAR(opline->result.var));
}
}
}
zval *object;
zval *property;
- zval *retval;
zval *zptr;
SAVE_OPLINE();
object = _get_zval_ptr_cv_BP_VAR_RW(execute_data, opline->op1.var);
- property = EX_CONSTANT(opline->op2);
- retval = EX_VAR(opline->result.var);
if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ property = EX_CONSTANT(opline->op2);
+
if (IS_CV == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot increment/decrement overloaded objects nor string offsets");
ZVAL_DEREF(object);
if (UNEXPECTED(!make_real_object(object))) {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
- ZVAL_NULL(retval);
+ ZVAL_NULL(EX_VAR(opline->result.var));
break;
}
}
&& EXPECTED((zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_CONST == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL))) != NULL)) {
ZVAL_DEREF(zptr);
- ZVAL_COPY_VALUE(retval, zptr);
+ ZVAL_COPY_VALUE(EX_VAR(opline->result.var), zptr);
zval_opt_copy_ctor(zptr);
incdec_op(zptr);
} else {
}
ZVAL_COPY_VALUE(z, value);
}
- ZVAL_DUP(retval, z);
+ ZVAL_DUP(EX_VAR(opline->result.var), z);
ZVAL_DUP(&z_copy, z);
incdec_op(&z_copy);
if (Z_REFCOUNTED_P(z)) Z_ADDREF_P(z);
zval_ptr_dtor(z);
} else {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
- ZVAL_NULL(retval);
+ ZVAL_NULL(EX_VAR(opline->result.var));
}
}
} while (0);
SAVE_OPLINE();
container = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var);
- offset = EX_CONSTANT(opline->op2);
if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ offset = EX_CONSTANT(opline->op2);
+
if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
container = Z_REFVAL_P(container);
SAVE_OPLINE();
container = _get_zval_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var);
- offset = EX_CONSTANT(opline->op2);
if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ offset = EX_CONSTANT(opline->op2);
+
if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
container = Z_REFVAL_P(container);
SAVE_OPLINE();
container = _get_zval_ptr_cv_BP_VAR_UNSET(execute_data, opline->op1.var);
- property = EX_CONSTANT(opline->op2);
if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ property = EX_CONSTANT(opline->op2);
+
if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an object");
SAVE_OPLINE();
object = _get_zval_ptr_cv_undef_BP_VAR_W(execute_data, opline->op1.var);
- property_name = EX_CONSTANT(opline->op2);
if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ property_name = EX_CONSTANT(opline->op2);
+
if (IS_CV == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an array");
SAVE_OPLINE();
container = _get_zval_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var);
- offset = EX_CONSTANT(opline->op2);
if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ offset = EX_CONSTANT(opline->op2);
+
isset_dim_obj_again:
if (IS_CV != IS_UNUSED && EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
HashTable *ht = Z_ARRVAL_P(container);
SAVE_OPLINE();
container = _get_zval_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var);
- offset = EX_CONSTANT(opline->op2);
if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ offset = EX_CONSTANT(opline->op2);
+
if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
container = Z_REFVAL_P(container);
SAVE_OPLINE();
object = _get_zval_ptr_cv_BP_VAR_RW(execute_data, opline->op1.var);
- property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
+
if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
HANDLE_EXCEPTION();
}
+
+ property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
+
if (IS_CV == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an object");
FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
zval *object;
zval *property;
- zval *retval;
zval *zptr;
SAVE_OPLINE();
object = _get_zval_ptr_cv_BP_VAR_RW(execute_data, opline->op1.var);
- property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
- retval = EX_VAR(opline->result.var);
if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
+
if (IS_CV == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot increment/decrement overloaded objects nor string offsets");
if (UNEXPECTED(!make_real_object(object))) {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(retval);
+ ZVAL_NULL(EX_VAR(opline->result.var));
}
break;
}
incdec_op(zptr);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_COPY(retval, zptr);
+ ZVAL_COPY(EX_VAR(opline->result.var), zptr);
}
} else {
zval rv;
SEPARATE_ZVAL_NOREF(z);
incdec_op(z);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_COPY(retval, z);
+ ZVAL_COPY(EX_VAR(opline->result.var), z);
}
Z_OBJ_HT(obj)->write_property(&obj, property, z, ((IS_CV == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL));
OBJ_RELEASE(Z_OBJ(obj));
} else {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(retval);
+ ZVAL_NULL(EX_VAR(opline->result.var));
}
}
}
zval *object;
zval *property;
- zval *retval;
zval *zptr;
SAVE_OPLINE();
object = _get_zval_ptr_cv_BP_VAR_RW(execute_data, opline->op1.var);
- property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
- retval = EX_VAR(opline->result.var);
if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
+
if (IS_CV == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot increment/decrement overloaded objects nor string offsets");
ZVAL_DEREF(object);
if (UNEXPECTED(!make_real_object(object))) {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
- ZVAL_NULL(retval);
+ ZVAL_NULL(EX_VAR(opline->result.var));
break;
}
}
&& EXPECTED((zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, ((IS_CV == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL))) != NULL)) {
ZVAL_DEREF(zptr);
- ZVAL_COPY_VALUE(retval, zptr);
+ ZVAL_COPY_VALUE(EX_VAR(opline->result.var), zptr);
zval_opt_copy_ctor(zptr);
incdec_op(zptr);
} else {
}
ZVAL_COPY_VALUE(z, value);
}
- ZVAL_DUP(retval, z);
+ ZVAL_DUP(EX_VAR(opline->result.var), z);
ZVAL_DUP(&z_copy, z);
incdec_op(&z_copy);
if (Z_REFCOUNTED_P(z)) Z_ADDREF_P(z);
zval_ptr_dtor(z);
} else {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
- ZVAL_NULL(retval);
+ ZVAL_NULL(EX_VAR(opline->result.var));
}
}
} while (0);
SAVE_OPLINE();
container = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var);
- offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
+
if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
container = Z_REFVAL_P(container);
SAVE_OPLINE();
container = _get_zval_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var);
- offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
+
if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
container = Z_REFVAL_P(container);
SAVE_OPLINE();
container = _get_zval_ptr_cv_BP_VAR_UNSET(execute_data, opline->op1.var);
- property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
+
if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an object");
SAVE_OPLINE();
object = _get_zval_ptr_cv_undef_BP_VAR_W(execute_data, opline->op1.var);
- property_name = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ property_name = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
+
if (IS_CV == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an array");
SAVE_OPLINE();
container = _get_zval_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var);
- offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
+
isset_dim_obj_again:
if (IS_CV != IS_UNUSED && EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
HashTable *ht = Z_ARRVAL_P(container);
SAVE_OPLINE();
container = _get_zval_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var);
- offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
+
if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
container = Z_REFVAL_P(container);
SAVE_OPLINE();
object = _get_zval_ptr_cv_BP_VAR_RW(execute_data, opline->op1.var);
- property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
+
if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
- zval_ptr_dtor_nogc(free_op2);
+ zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
HANDLE_EXCEPTION();
}
+
+ property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
+
if (IS_CV == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an object");
FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
zend_free_op free_op2;
zval *object;
zval *property;
- zval *retval;
zval *zptr;
SAVE_OPLINE();
object = _get_zval_ptr_cv_BP_VAR_RW(execute_data, opline->op1.var);
- property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
- retval = EX_VAR(opline->result.var);
if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
- zval_ptr_dtor_nogc(free_op2);
+ zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
HANDLE_EXCEPTION();
}
+
+ property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
+
if (IS_CV == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot increment/decrement overloaded objects nor string offsets");
zval_ptr_dtor_nogc(free_op2);
if (UNEXPECTED(!make_real_object(object))) {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(retval);
+ ZVAL_NULL(EX_VAR(opline->result.var));
}
break;
}
incdec_op(zptr);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_COPY(retval, zptr);
+ ZVAL_COPY(EX_VAR(opline->result.var), zptr);
}
} else {
zval rv;
SEPARATE_ZVAL_NOREF(z);
incdec_op(z);
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_COPY(retval, z);
+ ZVAL_COPY(EX_VAR(opline->result.var), z);
}
Z_OBJ_HT(obj)->write_property(&obj, property, z, (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL));
OBJ_RELEASE(Z_OBJ(obj));
} else {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
- ZVAL_NULL(retval);
+ ZVAL_NULL(EX_VAR(opline->result.var));
}
}
}
zend_free_op free_op2;
zval *object;
zval *property;
- zval *retval;
zval *zptr;
SAVE_OPLINE();
object = _get_zval_ptr_cv_BP_VAR_RW(execute_data, opline->op1.var);
- property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
- retval = EX_VAR(opline->result.var);
if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
- zval_ptr_dtor_nogc(free_op2);
+ zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
HANDLE_EXCEPTION();
}
+
+ property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
+
if (IS_CV == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot increment/decrement overloaded objects nor string offsets");
zval_ptr_dtor_nogc(free_op2);
ZVAL_DEREF(object);
if (UNEXPECTED(!make_real_object(object))) {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
- ZVAL_NULL(retval);
+ ZVAL_NULL(EX_VAR(opline->result.var));
break;
}
}
&& EXPECTED((zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL))) != NULL)) {
ZVAL_DEREF(zptr);
- ZVAL_COPY_VALUE(retval, zptr);
+ ZVAL_COPY_VALUE(EX_VAR(opline->result.var), zptr);
zval_opt_copy_ctor(zptr);
incdec_op(zptr);
} else {
}
ZVAL_COPY_VALUE(z, value);
}
- ZVAL_DUP(retval, z);
+ ZVAL_DUP(EX_VAR(opline->result.var), z);
ZVAL_DUP(&z_copy, z);
incdec_op(&z_copy);
if (Z_REFCOUNTED_P(z)) Z_ADDREF_P(z);
zval_ptr_dtor(z);
} else {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
- ZVAL_NULL(retval);
+ ZVAL_NULL(EX_VAR(opline->result.var));
}
}
} while (0);
SAVE_OPLINE();
container = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var);
- offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
- zval_ptr_dtor_nogc(free_op2);
+ zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
HANDLE_EXCEPTION();
}
+
+ offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
+
if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
container = Z_REFVAL_P(container);
SAVE_OPLINE();
container = _get_zval_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var);
- offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
- zval_ptr_dtor_nogc(free_op2);
+ zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
HANDLE_EXCEPTION();
}
+
+ offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
+
if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
container = Z_REFVAL_P(container);
SAVE_OPLINE();
container = _get_zval_ptr_cv_BP_VAR_UNSET(execute_data, opline->op1.var);
- property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
- zval_ptr_dtor_nogc(free_op2);
+ zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
HANDLE_EXCEPTION();
}
+
+ property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
+
if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an object");
zval_ptr_dtor_nogc(free_op2);
SAVE_OPLINE();
object = _get_zval_ptr_cv_undef_BP_VAR_W(execute_data, opline->op1.var);
- property_name = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
- zval_ptr_dtor_nogc(free_op2);
+ zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
HANDLE_EXCEPTION();
}
+
+ property_name = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
+
if (IS_CV == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an array");
zval_ptr_dtor_nogc(free_op2);
SAVE_OPLINE();
container = _get_zval_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var);
- offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
- zval_ptr_dtor_nogc(free_op2);
+ zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
HANDLE_EXCEPTION();
}
+
+ offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
+
isset_dim_obj_again:
if (IS_CV != IS_UNUSED && EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
HashTable *ht = Z_ARRVAL_P(container);
SAVE_OPLINE();
container = _get_zval_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var);
- offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
- zval_ptr_dtor_nogc(free_op2);
+ zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
HANDLE_EXCEPTION();
}
+
+ offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
+
if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
container = Z_REFVAL_P(container);
SAVE_OPLINE();
container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
- offset = EX_CONSTANT(opline->op2);
if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ offset = EX_CONSTANT(opline->op2);
+
if ((IS_TMP_VAR|IS_VAR) != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
container = Z_REFVAL_P(container);
SAVE_OPLINE();
container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
- offset = EX_CONSTANT(opline->op2);
if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ offset = EX_CONSTANT(opline->op2);
+
isset_dim_obj_again:
if ((IS_TMP_VAR|IS_VAR) != IS_UNUSED && EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
HashTable *ht = Z_ARRVAL_P(container);
SAVE_OPLINE();
container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
- offset = EX_CONSTANT(opline->op2);
if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ offset = EX_CONSTANT(opline->op2);
+
if ((IS_TMP_VAR|IS_VAR) != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
container = Z_REFVAL_P(container);
SAVE_OPLINE();
container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
- offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
+
if ((IS_TMP_VAR|IS_VAR) != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
container = Z_REFVAL_P(container);
SAVE_OPLINE();
container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
- offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
+
isset_dim_obj_again:
if ((IS_TMP_VAR|IS_VAR) != IS_UNUSED && EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
HashTable *ht = Z_ARRVAL_P(container);
SAVE_OPLINE();
container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
- offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
HANDLE_EXCEPTION();
}
+
+ offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
+
if ((IS_TMP_VAR|IS_VAR) != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
container = Z_REFVAL_P(container);
SAVE_OPLINE();
container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
- offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
- zval_ptr_dtor_nogc(free_op2);
+ zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
HANDLE_EXCEPTION();
}
+
+ offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
+
if ((IS_TMP_VAR|IS_VAR) != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
container = Z_REFVAL_P(container);
SAVE_OPLINE();
container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
- offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
- zval_ptr_dtor_nogc(free_op2);
+ zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
HANDLE_EXCEPTION();
}
+
+ offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
+
isset_dim_obj_again:
if ((IS_TMP_VAR|IS_VAR) != IS_UNUSED && EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
HashTable *ht = Z_ARRVAL_P(container);
SAVE_OPLINE();
container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
- offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
- zval_ptr_dtor_nogc(free_op2);
+ zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
HANDLE_EXCEPTION();
}
+
+ offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
+
if ((IS_TMP_VAR|IS_VAR) != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) {
container = Z_REFVAL_P(container);