SAVE_OPLINE();
obj = EX_CONSTANT(opline->op1);
+ if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_OBJ_P(obj) == NULL)) {
+ zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
+ HANDLE_EXCEPTION();
+ }
+
do {
if (IS_CONST == IS_CONST ||
(IS_CONST != IS_UNUSED && UNEXPECTED(Z_TYPE_P(obj) != IS_OBJECT))) {
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();
+ }
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);
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();
+ }
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);
property = EX_CONSTANT(opline->op2);
container = NULL;
+ 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();
+ }
if (IS_CONST == IS_CONST || IS_CONST == IS_TMP_VAR) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use temporary expression in write context");
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();
+ }
isset_dim_obj_again:
if (IS_CONST != IS_UNUSED && EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
HashTable *ht = Z_ARRVAL_P(container);
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();
+ }
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);
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();
+ }
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);
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();
+ }
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);
property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
container = NULL;
+ 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();
+ }
if (IS_CONST == IS_CONST || IS_CONST == IS_TMP_VAR) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use temporary expression in write context");
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();
+ }
isset_dim_obj_again:
if (IS_CONST != IS_UNUSED && EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
HashTable *ht = Z_ARRVAL_P(container);
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();
+ }
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);
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);
+ HANDLE_EXCEPTION();
+ }
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);
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);
+ HANDLE_EXCEPTION();
+ }
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);
property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
container = NULL;
+ 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);
+ HANDLE_EXCEPTION();
+ }
if (IS_CONST == IS_CONST || IS_CONST == IS_TMP_VAR) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use temporary expression in write context");
zval_ptr_dtor_nogc(free_op2);
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);
+ HANDLE_EXCEPTION();
+ }
isset_dim_obj_again:
if (IS_CONST != IS_UNUSED && EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
HashTable *ht = Z_ARRVAL_P(container);
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);
+ HANDLE_EXCEPTION();
+ }
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);
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();
+ }
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);
property = EX_CONSTANT(opline->op2);
container = NULL;
+ 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();
+ }
if (IS_TMP_VAR == IS_CONST || IS_TMP_VAR == IS_TMP_VAR) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use temporary expression in write context");
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();
+ }
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);
property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
container = NULL;
+ 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();
+ }
if (IS_TMP_VAR == IS_CONST || IS_TMP_VAR == IS_TMP_VAR) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use temporary expression in write context");
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);
+ HANDLE_EXCEPTION();
+ }
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);
property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
container = NULL;
+ 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);
+ HANDLE_EXCEPTION();
+ }
if (IS_TMP_VAR == IS_CONST || IS_TMP_VAR == IS_TMP_VAR) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use temporary expression in write context");
zval_ptr_dtor_nogc(free_op2);
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();
+ }
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);
SAVE_OPLINE();
container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
+ if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == 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();
+ }
if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an array");
FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
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();
+ }
if (IS_VAR == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot increment/decrement overloaded objects nor string offsets");
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();
+ }
if (IS_VAR == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot increment/decrement overloaded objects nor string offsets");
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();
+ }
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);
property = EX_CONSTANT(opline->op2);
container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
+ 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();
+ }
if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an object");
property = EX_CONSTANT(opline->op2);
container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
+ 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();
+ }
if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an object");
property = EX_CONSTANT(opline->op2);
container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
+ 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();
+ }
if (IS_VAR == IS_CONST || IS_VAR == IS_TMP_VAR) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use temporary expression in write context");
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();
+ }
if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an object");
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();
+ }
if (IS_VAR == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an array");
SAVE_OPLINE();
container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
+ 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();
+ }
if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot unset string offsets");
SAVE_OPLINE();
container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
+ 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();
+ }
if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot unset string offsets");
SAVE_OPLINE();
container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
+ if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == 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();
+ }
if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an array");
FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
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();
+ }
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);
SAVE_OPLINE();
container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
+ if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == 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();
+ }
if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an array");
FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
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();
+ }
if (IS_VAR == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot increment/decrement overloaded objects nor string offsets");
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();
+ }
if (IS_VAR == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot increment/decrement overloaded objects nor string offsets");
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();
+ }
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);
property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
+ 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();
+ }
if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an object");
property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
+ 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();
+ }
if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an object");
property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
+ 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();
+ }
if (IS_VAR == IS_CONST || IS_VAR == IS_TMP_VAR) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use temporary expression in write context");
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();
+ }
if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an object");
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();
+ }
if (IS_VAR == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an array");
SAVE_OPLINE();
container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
+ 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();
+ }
if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot unset string offsets");
SAVE_OPLINE();
container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
+ 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();
+ }
if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot unset string offsets");
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);
+ HANDLE_EXCEPTION();
+ }
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);
SAVE_OPLINE();
container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
+ if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == 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(EX_VAR(opline->op2.var));
+ HANDLE_EXCEPTION();
+ }
if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an array");
FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
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);
+ HANDLE_EXCEPTION();
+ }
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);
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);
+ HANDLE_EXCEPTION();
+ }
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);
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);
+ HANDLE_EXCEPTION();
+ }
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);
property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
+ 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);
+ HANDLE_EXCEPTION();
+ }
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);
property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
+ 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);
+ HANDLE_EXCEPTION();
+ }
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);
property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
+ 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);
+ HANDLE_EXCEPTION();
+ }
if (IS_VAR == IS_CONST || IS_VAR == IS_TMP_VAR) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use temporary expression in write context");
zval_ptr_dtor_nogc(free_op2);
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);
+ HANDLE_EXCEPTION();
+ }
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);
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);
+ HANDLE_EXCEPTION();
+ }
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();
container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
+ 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(EX_VAR(opline->op2.var));
+ HANDLE_EXCEPTION();
+ }
if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot unset string offsets");
zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
SAVE_OPLINE();
container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
+ 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(EX_VAR(opline->op2.var));
+ HANDLE_EXCEPTION();
+ }
if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot unset string offsets");
zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
SAVE_OPLINE();
obj = _get_obj_zval_ptr_unused(execute_data);
+ if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(obj) == NULL)) {
+ zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
+ HANDLE_EXCEPTION();
+ }
+
do {
if (IS_UNUSED == IS_CONST ||
(IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(obj) != IS_OBJECT))) {
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();
+ }
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);
SAVE_OPLINE();
container = _get_obj_zval_ptr_unused(execute_data);
+ if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == 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();
+ }
if (IS_UNUSED == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an array");
FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
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();
+ }
if (IS_UNUSED == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot increment/decrement overloaded objects nor string offsets");
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();
+ }
if (IS_UNUSED == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot increment/decrement overloaded objects nor string offsets");
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();
+ }
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);
property = EX_CONSTANT(opline->op2);
container = _get_obj_zval_ptr_unused(execute_data);
+ 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();
+ }
if (IS_UNUSED == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an object");
property = EX_CONSTANT(opline->op2);
container = _get_obj_zval_ptr_unused(execute_data);
+ 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();
+ }
if (IS_UNUSED == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an object");
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();
+ }
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);
property = EX_CONSTANT(opline->op2);
container = _get_obj_zval_ptr_unused(execute_data);
+ 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();
+ }
if (IS_UNUSED == IS_CONST || IS_UNUSED == IS_TMP_VAR) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use temporary expression in write context");
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();
+ }
if (IS_UNUSED == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an object");
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();
+ }
if (IS_UNUSED == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an array");
object = _get_obj_zval_ptr_unused(execute_data);
+ 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();
+ }
+
if (IS_UNUSED != IS_UNUSED) {
ZVAL_DEREF(object);
if (UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
SAVE_OPLINE();
container = _get_obj_zval_ptr_unused(execute_data);
+ 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();
+ }
if (IS_UNUSED == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot unset string offsets");
SAVE_OPLINE();
container = _get_obj_zval_ptr_unused(execute_data);
+ 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();
+ }
if (IS_UNUSED == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot unset string offsets");
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();
+ }
isset_dim_obj_again:
if (IS_UNUSED != IS_UNUSED && EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
HashTable *ht = Z_ARRVAL_P(container);
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();
+ }
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);
+ if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == 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();
+ }
if (IS_UNUSED == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an array");
FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
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();
+ }
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);
SAVE_OPLINE();
container = _get_obj_zval_ptr_unused(execute_data);
+ if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == 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();
+ }
if (IS_UNUSED == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an array");
FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
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();
+ }
if (IS_UNUSED == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot increment/decrement overloaded objects nor string offsets");
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();
+ }
if (IS_UNUSED == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot increment/decrement overloaded objects nor string offsets");
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();
+ }
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);
property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
container = _get_obj_zval_ptr_unused(execute_data);
+ 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();
+ }
if (IS_UNUSED == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an object");
property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
container = _get_obj_zval_ptr_unused(execute_data);
+ 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();
+ }
if (IS_UNUSED == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an object");
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();
+ }
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);
property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
container = _get_obj_zval_ptr_unused(execute_data);
+ 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();
+ }
if (IS_UNUSED == IS_CONST || IS_UNUSED == IS_TMP_VAR) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use temporary expression in write context");
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();
+ }
if (IS_UNUSED == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an object");
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();
+ }
if (IS_UNUSED == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an array");
object = _get_obj_zval_ptr_unused(execute_data);
+ 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();
+ }
+
if (IS_UNUSED != IS_UNUSED) {
ZVAL_DEREF(object);
if (UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
SAVE_OPLINE();
container = _get_obj_zval_ptr_unused(execute_data);
+ 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();
+ }
if (IS_UNUSED == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot unset string offsets");
SAVE_OPLINE();
container = _get_obj_zval_ptr_unused(execute_data);
+ 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();
+ }
if (IS_UNUSED == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot unset string offsets");
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();
+ }
isset_dim_obj_again:
if (IS_UNUSED != IS_UNUSED && EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
HashTable *ht = Z_ARRVAL_P(container);
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();
+ }
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);
+ HANDLE_EXCEPTION();
+ }
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);
SAVE_OPLINE();
container = _get_obj_zval_ptr_unused(execute_data);
+ if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == 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(EX_VAR(opline->op2.var));
+ HANDLE_EXCEPTION();
+ }
if (IS_UNUSED == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an array");
FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
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);
+ HANDLE_EXCEPTION();
+ }
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);
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);
+ HANDLE_EXCEPTION();
+ }
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);
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);
+ HANDLE_EXCEPTION();
+ }
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);
property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
container = _get_obj_zval_ptr_unused(execute_data);
+ 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);
+ HANDLE_EXCEPTION();
+ }
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);
property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
container = _get_obj_zval_ptr_unused(execute_data);
+ 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);
+ HANDLE_EXCEPTION();
+ }
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);
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);
+ HANDLE_EXCEPTION();
+ }
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);
property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
container = _get_obj_zval_ptr_unused(execute_data);
+ 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);
+ HANDLE_EXCEPTION();
+ }
if (IS_UNUSED == IS_CONST || IS_UNUSED == IS_TMP_VAR) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use temporary expression in write context");
zval_ptr_dtor_nogc(free_op2);
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);
+ HANDLE_EXCEPTION();
+ }
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);
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);
+ HANDLE_EXCEPTION();
+ }
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);
object = _get_obj_zval_ptr_unused(execute_data);
+ 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);
+ HANDLE_EXCEPTION();
+ }
+
if (IS_UNUSED != IS_UNUSED) {
ZVAL_DEREF(object);
if (UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
SAVE_OPLINE();
container = _get_obj_zval_ptr_unused(execute_data);
+ 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(EX_VAR(opline->op2.var));
+ HANDLE_EXCEPTION();
+ }
if (IS_UNUSED == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot unset string offsets");
zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
SAVE_OPLINE();
container = _get_obj_zval_ptr_unused(execute_data);
+ 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(EX_VAR(opline->op2.var));
+ HANDLE_EXCEPTION();
+ }
if (IS_UNUSED == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot unset string offsets");
zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
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);
+ HANDLE_EXCEPTION();
+ }
isset_dim_obj_again:
if (IS_UNUSED != IS_UNUSED && EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
HashTable *ht = Z_ARRVAL_P(container);
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);
+ HANDLE_EXCEPTION();
+ }
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();
obj = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var);
+ if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(obj) == NULL)) {
+ zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
+ HANDLE_EXCEPTION();
+ }
+
do {
if (IS_CV == IS_CONST ||
(IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(obj) != IS_OBJECT))) {
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();
+ }
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);
SAVE_OPLINE();
container = _get_zval_ptr_cv_BP_VAR_RW(execute_data, opline->op1.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");
+ FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
+
+ HANDLE_EXCEPTION();
+ }
if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an array");
FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->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();
+ }
if (IS_CV == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot increment/decrement overloaded objects nor string offsets");
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();
+ }
if (IS_CV == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot increment/decrement overloaded objects nor string offsets");
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();
+ }
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);
property = EX_CONSTANT(opline->op2);
container = _get_zval_ptr_cv_undef_BP_VAR_W(execute_data, opline->op1.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();
+ }
if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an object");
property = EX_CONSTANT(opline->op2);
container = _get_zval_ptr_cv_BP_VAR_RW(execute_data, opline->op1.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();
+ }
if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an object");
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();
+ }
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);
property = EX_CONSTANT(opline->op2);
container = _get_zval_ptr_cv_undef_BP_VAR_W(execute_data, opline->op1.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();
+ }
if (IS_CV == IS_CONST || IS_CV == IS_TMP_VAR) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use temporary expression in write context");
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();
+ }
if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an object");
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();
+ }
if (IS_CV == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an array");
object = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.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();
+ }
+
if (IS_CV != IS_UNUSED) {
ZVAL_DEREF(object);
if (UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
SAVE_OPLINE();
container = _get_zval_ptr_cv_BP_VAR_UNSET(execute_data, opline->op1.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();
+ }
if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot unset string offsets");
SAVE_OPLINE();
container = _get_zval_ptr_cv_BP_VAR_UNSET(execute_data, opline->op1.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();
+ }
if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot unset string offsets");
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();
+ }
isset_dim_obj_again:
if (IS_CV != IS_UNUSED && EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
HashTable *ht = Z_ARRVAL_P(container);
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();
+ }
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_RW(execute_data, opline->op1.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");
+ FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
+
+ HANDLE_EXCEPTION();
+ }
if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an array");
FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
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();
+ }
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);
SAVE_OPLINE();
container = _get_zval_ptr_cv_BP_VAR_RW(execute_data, opline->op1.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");
+ FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
+
+ HANDLE_EXCEPTION();
+ }
if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an array");
FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->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();
+ }
if (IS_CV == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot increment/decrement overloaded objects nor string offsets");
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();
+ }
if (IS_CV == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot increment/decrement overloaded objects nor string offsets");
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();
+ }
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);
property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
container = _get_zval_ptr_cv_undef_BP_VAR_W(execute_data, opline->op1.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();
+ }
if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an object");
property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
container = _get_zval_ptr_cv_BP_VAR_RW(execute_data, opline->op1.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();
+ }
if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an object");
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();
+ }
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);
property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
container = _get_zval_ptr_cv_undef_BP_VAR_W(execute_data, opline->op1.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();
+ }
if (IS_CV == IS_CONST || IS_CV == IS_TMP_VAR) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use temporary expression in write context");
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();
+ }
if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an object");
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();
+ }
if (IS_CV == IS_VAR && UNEXPECTED(object == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an array");
object = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.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();
+ }
+
if (IS_CV != IS_UNUSED) {
ZVAL_DEREF(object);
if (UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
SAVE_OPLINE();
container = _get_zval_ptr_cv_BP_VAR_UNSET(execute_data, opline->op1.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();
+ }
if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot unset string offsets");
SAVE_OPLINE();
container = _get_zval_ptr_cv_BP_VAR_UNSET(execute_data, opline->op1.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();
+ }
if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot unset string offsets");
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();
+ }
isset_dim_obj_again:
if (IS_CV != IS_UNUSED && EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
HashTable *ht = Z_ARRVAL_P(container);
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();
+ }
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);
+ HANDLE_EXCEPTION();
+ }
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);
SAVE_OPLINE();
container = _get_zval_ptr_cv_BP_VAR_RW(execute_data, opline->op1.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");
+ FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
+ zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
+ HANDLE_EXCEPTION();
+ }
if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use string offset as an array");
FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->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);
+ HANDLE_EXCEPTION();
+ }
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);
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);
+ HANDLE_EXCEPTION();
+ }
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);
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);
+ HANDLE_EXCEPTION();
+ }
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);
property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
container = _get_zval_ptr_cv_undef_BP_VAR_W(execute_data, opline->op1.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");
+ zval_ptr_dtor_nogc(free_op2);
+ HANDLE_EXCEPTION();
+ }
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);
property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
container = _get_zval_ptr_cv_BP_VAR_RW(execute_data, opline->op1.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");
+ zval_ptr_dtor_nogc(free_op2);
+ HANDLE_EXCEPTION();
+ }
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);
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);
+ HANDLE_EXCEPTION();
+ }
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);
property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
container = _get_zval_ptr_cv_undef_BP_VAR_W(execute_data, opline->op1.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");
+ zval_ptr_dtor_nogc(free_op2);
+ HANDLE_EXCEPTION();
+ }
if (IS_CV == IS_CONST || IS_CV == IS_TMP_VAR) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot use temporary expression in write context");
zval_ptr_dtor_nogc(free_op2);
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);
+ HANDLE_EXCEPTION();
+ }
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);
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);
+ HANDLE_EXCEPTION();
+ }
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);
object = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.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);
+ HANDLE_EXCEPTION();
+ }
+
if (IS_CV != IS_UNUSED) {
ZVAL_DEREF(object);
if (UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
SAVE_OPLINE();
container = _get_zval_ptr_cv_BP_VAR_UNSET(execute_data, opline->op1.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");
+ zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
+ HANDLE_EXCEPTION();
+ }
if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot unset string offsets");
zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
SAVE_OPLINE();
container = _get_zval_ptr_cv_BP_VAR_UNSET(execute_data, opline->op1.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");
+ zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
+ HANDLE_EXCEPTION();
+ }
if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
zend_error(E_EXCEPTION | E_ERROR, "Cannot unset string offsets");
zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
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);
+ HANDLE_EXCEPTION();
+ }
isset_dim_obj_again:
if (IS_CV != IS_UNUSED && EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) {
HashTable *ht = Z_ARRVAL_P(container);
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);
+ HANDLE_EXCEPTION();
+ }
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();
obj = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
+ if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED && UNEXPECTED(Z_OBJ_P(obj) == NULL)) {
+ zend_error(E_EXCEPTION | E_ERROR, "Using $this when not in object context");
+ HANDLE_EXCEPTION();
+ }
+
do {
if ((IS_TMP_VAR|IS_VAR) == IS_CONST ||
((IS_TMP_VAR|IS_VAR) != IS_UNUSED && UNEXPECTED(Z_TYPE_P(obj) != IS_OBJECT))) {
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();
+ }
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);
object = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
+ if ((IS_TMP_VAR|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();
+ }
+
if ((IS_TMP_VAR|IS_VAR) != IS_UNUSED) {
ZVAL_DEREF(object);
if (UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
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();
+ }
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);
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();
+ }
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);
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();
+ }
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);
object = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
+ if ((IS_TMP_VAR|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();
+ }
+
if ((IS_TMP_VAR|IS_VAR) != IS_UNUSED) {
ZVAL_DEREF(object);
if (UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
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();
+ }
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);
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();
+ }
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);
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);
+ HANDLE_EXCEPTION();
+ }
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);
object = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
+ if ((IS_TMP_VAR|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);
+ HANDLE_EXCEPTION();
+ }
+
if ((IS_TMP_VAR|IS_VAR) != IS_UNUSED) {
ZVAL_DEREF(object);
if (UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
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);
+ HANDLE_EXCEPTION();
+ }
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);
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);
+ HANDLE_EXCEPTION();
+ }
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);