]> granicus.if.org Git - php/commitdiff
Use zval* instead of zval**
authorDmitry Stogov <dmitry@zend.com>
Mon, 28 Oct 2013 10:44:07 +0000 (14:44 +0400)
committerDmitry Stogov <dmitry@zend.com>
Mon, 28 Oct 2013 10:44:07 +0000 (14:44 +0400)
Zend/zend_vm_def.h
Zend/zend_vm_execute.h

index 201ae49e05a680f0a3fe6a754c3b09148f8256c1..c2c3ae52195fbd122c23c1d5d886db21ddb8f894 100644 (file)
@@ -4453,22 +4453,22 @@ ZEND_VM_HELPER_EX(zend_isset_isempty_dim_prop_obj_handler, VAR|UNUSED|CV, CONST|
 {
        USE_OPLINE
        zend_free_op free_op1, free_op2;
-       zval **container;
+       zval *container;
        zval **value = NULL;
        int result = 0;
        ulong hval;
        zval *offset;
 
        SAVE_OPLINE();
-       container = GET_OP1_OBJ_ZVAL_PTR_PTR(BP_VAR_IS);
+       container = GET_OP1_OBJ_ZVAL_PTR(BP_VAR_IS);
 
        offset = GET_OP2_ZVAL_PTR(BP_VAR_R);
 
-       if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) {
+       if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
                HashTable *ht;
                int isset = 0;
 
-               ht = Z_ARRVAL_PP(container);
+               ht = Z_ARRVAL_P(container);
 
                switch (Z_TYPE_P(offset)) {
                        case IS_DOUBLE:
@@ -4487,9 +4487,7 @@ ZEND_VM_C_LABEL(num_index_prop):
                                if (OP2_TYPE == IS_CONST) {
                                        hval = Z_HASH_P(offset);
                                } else {
-                                       if (!prop_dim) {
-                                               ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, ZEND_VM_C_GOTO(num_index_prop));
-                                       }
+                                       ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, ZEND_VM_C_GOTO(num_index_prop));
                                        if (IS_INTERNED(Z_STRVAL_P(offset))) {
                                                hval = INTERNED_HASH(Z_STRVAL_P(offset));
                                        } else {
@@ -4524,20 +4522,20 @@ ZEND_VM_C_LABEL(num_index_prop):
                        }
                }
                FREE_OP2();
-       } else if (Z_TYPE_PP(container) == IS_OBJECT) {
+       } else if (Z_TYPE_P(container) == IS_OBJECT) {
                if (IS_OP2_TMP_FREE()) {
                        MAKE_REAL_ZVAL_PTR(offset);
                }
                if (prop_dim) {
-                       if (Z_OBJ_HT_P(*container)->has_property) {
-                               result = Z_OBJ_HT_P(*container)->has_property(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((OP2_TYPE == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
+                       if (Z_OBJ_HT_P(container)->has_property) {
+                               result = Z_OBJ_HT_P(container)->has_property(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((OP2_TYPE == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
                        } else {
                                zend_error(E_NOTICE, "Trying to check property of non-object");
                                result = 0;
                        }
                } else {
-                       if (Z_OBJ_HT_P(*container)->has_dimension) {
-                               result = Z_OBJ_HT_P(*container)->has_dimension(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
+                       if (Z_OBJ_HT_P(container)->has_dimension) {
+                               result = Z_OBJ_HT_P(container)->has_dimension(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
                        } else {
                                zend_error(E_NOTICE, "Trying to check element of non-array");
                                result = 0;
@@ -4548,7 +4546,7 @@ ZEND_VM_C_LABEL(num_index_prop):
                } else {
                        FREE_OP2();
                }
-       } else if ((*container)->type == IS_STRING && !prop_dim) { /* string offsets */
+       } else if (Z_TYPE_P(container) == IS_STRING && !prop_dim) { /* string offsets */
                zval tmp;
 
                if (Z_TYPE_P(offset) != IS_LONG) {
@@ -4566,11 +4564,11 @@ ZEND_VM_C_LABEL(num_index_prop):
                }
                if (Z_TYPE_P(offset) == IS_LONG) {
                        if (opline->extended_value & ZEND_ISSET) {
-                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container)) {
+                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container)) {
                                        result = 1;
                                }
                        } else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
-                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container) && Z_STRVAL_PP(container)[offset->value.lval] != '0') {
+                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container) && Z_STRVAL_P(container)[offset->value.lval] != '0') {
                                        result = 1;
                                }
                        }
index 74a8c12d400e49029897f4b9fbcdc7d2636a47bc..b21f6bf895101daf36a3a0bb188f82601fc3e903 100644 (file)
@@ -16074,22 +16074,22 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_VAR_CONST(
 {
        USE_OPLINE
        zend_free_op free_op1;
-       zval **container;
+       zval *container;
        zval **value = NULL;
        int result = 0;
        ulong hval;
        zval *offset;
 
        SAVE_OPLINE();
-       container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
+       container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
 
        offset = opline->op2.zv;
 
-       if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) {
+       if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
                HashTable *ht;
                int isset = 0;
 
-               ht = Z_ARRVAL_PP(container);
+               ht = Z_ARRVAL_P(container);
 
                switch (Z_TYPE_P(offset)) {
                        case IS_DOUBLE:
@@ -16108,9 +16108,7 @@ num_index_prop:
                                if (IS_CONST == IS_CONST) {
                                        hval = Z_HASH_P(offset);
                                } else {
-                                       if (!prop_dim) {
-                                               ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
-                                       }
+                                       ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
                                        if (IS_INTERNED(Z_STRVAL_P(offset))) {
                                                hval = INTERNED_HASH(Z_STRVAL_P(offset));
                                        } else {
@@ -16145,20 +16143,20 @@ num_index_prop:
                        }
                }
 
-       } else if (Z_TYPE_PP(container) == IS_OBJECT) {
+       } else if (Z_TYPE_P(container) == IS_OBJECT) {
                if (0) {
                        MAKE_REAL_ZVAL_PTR(offset);
                }
                if (prop_dim) {
-                       if (Z_OBJ_HT_P(*container)->has_property) {
-                               result = Z_OBJ_HT_P(*container)->has_property(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
+                       if (Z_OBJ_HT_P(container)->has_property) {
+                               result = Z_OBJ_HT_P(container)->has_property(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
                        } else {
                                zend_error(E_NOTICE, "Trying to check property of non-object");
                                result = 0;
                        }
                } else {
-                       if (Z_OBJ_HT_P(*container)->has_dimension) {
-                               result = Z_OBJ_HT_P(*container)->has_dimension(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
+                       if (Z_OBJ_HT_P(container)->has_dimension) {
+                               result = Z_OBJ_HT_P(container)->has_dimension(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
                        } else {
                                zend_error(E_NOTICE, "Trying to check element of non-array");
                                result = 0;
@@ -16169,7 +16167,7 @@ num_index_prop:
                } else {
 
                }
-       } else if ((*container)->type == IS_STRING && !prop_dim) { /* string offsets */
+       } else if (Z_TYPE_P(container) == IS_STRING && !prop_dim) { /* string offsets */
                zval tmp;
 
                if (Z_TYPE_P(offset) != IS_LONG) {
@@ -16187,11 +16185,11 @@ num_index_prop:
                }
                if (Z_TYPE_P(offset) == IS_LONG) {
                        if (opline->extended_value & ZEND_ISSET) {
-                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container)) {
+                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container)) {
                                        result = 1;
                                }
                        } else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
-                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container) && Z_STRVAL_PP(container)[offset->value.lval] != '0') {
+                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container) && Z_STRVAL_P(container)[offset->value.lval] != '0') {
                                        result = 1;
                                }
                        }
@@ -18168,22 +18166,22 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_VAR_TMP(in
 {
        USE_OPLINE
        zend_free_op free_op1, free_op2;
-       zval **container;
+       zval *container;
        zval **value = NULL;
        int result = 0;
        ulong hval;
        zval *offset;
 
        SAVE_OPLINE();
-       container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
+       container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
 
        offset = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
 
-       if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) {
+       if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
                HashTable *ht;
                int isset = 0;
 
-               ht = Z_ARRVAL_PP(container);
+               ht = Z_ARRVAL_P(container);
 
                switch (Z_TYPE_P(offset)) {
                        case IS_DOUBLE:
@@ -18202,9 +18200,7 @@ num_index_prop:
                                if (IS_TMP_VAR == IS_CONST) {
                                        hval = Z_HASH_P(offset);
                                } else {
-                                       if (!prop_dim) {
-                                               ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
-                                       }
+                                       ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
                                        if (IS_INTERNED(Z_STRVAL_P(offset))) {
                                                hval = INTERNED_HASH(Z_STRVAL_P(offset));
                                        } else {
@@ -18239,20 +18235,20 @@ num_index_prop:
                        }
                }
                zval_dtor(free_op2.var);
-       } else if (Z_TYPE_PP(container) == IS_OBJECT) {
+       } else if (Z_TYPE_P(container) == IS_OBJECT) {
                if (1) {
                        MAKE_REAL_ZVAL_PTR(offset);
                }
                if (prop_dim) {
-                       if (Z_OBJ_HT_P(*container)->has_property) {
-                               result = Z_OBJ_HT_P(*container)->has_property(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
+                       if (Z_OBJ_HT_P(container)->has_property) {
+                               result = Z_OBJ_HT_P(container)->has_property(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
                        } else {
                                zend_error(E_NOTICE, "Trying to check property of non-object");
                                result = 0;
                        }
                } else {
-                       if (Z_OBJ_HT_P(*container)->has_dimension) {
-                               result = Z_OBJ_HT_P(*container)->has_dimension(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
+                       if (Z_OBJ_HT_P(container)->has_dimension) {
+                               result = Z_OBJ_HT_P(container)->has_dimension(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
                        } else {
                                zend_error(E_NOTICE, "Trying to check element of non-array");
                                result = 0;
@@ -18263,7 +18259,7 @@ num_index_prop:
                } else {
                        zval_dtor(free_op2.var);
                }
-       } else if ((*container)->type == IS_STRING && !prop_dim) { /* string offsets */
+       } else if (Z_TYPE_P(container) == IS_STRING && !prop_dim) { /* string offsets */
                zval tmp;
 
                if (Z_TYPE_P(offset) != IS_LONG) {
@@ -18281,11 +18277,11 @@ num_index_prop:
                }
                if (Z_TYPE_P(offset) == IS_LONG) {
                        if (opline->extended_value & ZEND_ISSET) {
-                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container)) {
+                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container)) {
                                        result = 1;
                                }
                        } else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
-                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container) && Z_STRVAL_PP(container)[offset->value.lval] != '0') {
+                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container) && Z_STRVAL_P(container)[offset->value.lval] != '0') {
                                        result = 1;
                                }
                        }
@@ -20644,22 +20640,22 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_VAR_VAR(in
 {
        USE_OPLINE
        zend_free_op free_op1, free_op2;
-       zval **container;
+       zval *container;
        zval **value = NULL;
        int result = 0;
        ulong hval;
        zval *offset;
 
        SAVE_OPLINE();
-       container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
+       container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
 
        offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
 
-       if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) {
+       if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
                HashTable *ht;
                int isset = 0;
 
-               ht = Z_ARRVAL_PP(container);
+               ht = Z_ARRVAL_P(container);
 
                switch (Z_TYPE_P(offset)) {
                        case IS_DOUBLE:
@@ -20678,9 +20674,7 @@ num_index_prop:
                                if (IS_VAR == IS_CONST) {
                                        hval = Z_HASH_P(offset);
                                } else {
-                                       if (!prop_dim) {
-                                               ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
-                                       }
+                                       ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
                                        if (IS_INTERNED(Z_STRVAL_P(offset))) {
                                                hval = INTERNED_HASH(Z_STRVAL_P(offset));
                                        } else {
@@ -20715,20 +20709,20 @@ num_index_prop:
                        }
                }
                if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
-       } else if (Z_TYPE_PP(container) == IS_OBJECT) {
+       } else if (Z_TYPE_P(container) == IS_OBJECT) {
                if (0) {
                        MAKE_REAL_ZVAL_PTR(offset);
                }
                if (prop_dim) {
-                       if (Z_OBJ_HT_P(*container)->has_property) {
-                               result = Z_OBJ_HT_P(*container)->has_property(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
+                       if (Z_OBJ_HT_P(container)->has_property) {
+                               result = Z_OBJ_HT_P(container)->has_property(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
                        } else {
                                zend_error(E_NOTICE, "Trying to check property of non-object");
                                result = 0;
                        }
                } else {
-                       if (Z_OBJ_HT_P(*container)->has_dimension) {
-                               result = Z_OBJ_HT_P(*container)->has_dimension(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
+                       if (Z_OBJ_HT_P(container)->has_dimension) {
+                               result = Z_OBJ_HT_P(container)->has_dimension(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
                        } else {
                                zend_error(E_NOTICE, "Trying to check element of non-array");
                                result = 0;
@@ -20739,7 +20733,7 @@ num_index_prop:
                } else {
                        if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
                }
-       } else if ((*container)->type == IS_STRING && !prop_dim) { /* string offsets */
+       } else if (Z_TYPE_P(container) == IS_STRING && !prop_dim) { /* string offsets */
                zval tmp;
 
                if (Z_TYPE_P(offset) != IS_LONG) {
@@ -20757,11 +20751,11 @@ num_index_prop:
                }
                if (Z_TYPE_P(offset) == IS_LONG) {
                        if (opline->extended_value & ZEND_ISSET) {
-                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container)) {
+                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container)) {
                                        result = 1;
                                }
                        } else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
-                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container) && Z_STRVAL_PP(container)[offset->value.lval] != '0') {
+                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container) && Z_STRVAL_P(container)[offset->value.lval] != '0') {
                                        result = 1;
                                }
                        }
@@ -23936,22 +23930,22 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_VAR_CV(int
 {
        USE_OPLINE
        zend_free_op free_op1;
-       zval **container;
+       zval *container;
        zval **value = NULL;
        int result = 0;
        ulong hval;
        zval *offset;
 
        SAVE_OPLINE();
-       container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
+       container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
 
        offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC);
 
-       if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) {
+       if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
                HashTable *ht;
                int isset = 0;
 
-               ht = Z_ARRVAL_PP(container);
+               ht = Z_ARRVAL_P(container);
 
                switch (Z_TYPE_P(offset)) {
                        case IS_DOUBLE:
@@ -23970,9 +23964,7 @@ num_index_prop:
                                if (IS_CV == IS_CONST) {
                                        hval = Z_HASH_P(offset);
                                } else {
-                                       if (!prop_dim) {
-                                               ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
-                                       }
+                                       ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
                                        if (IS_INTERNED(Z_STRVAL_P(offset))) {
                                                hval = INTERNED_HASH(Z_STRVAL_P(offset));
                                        } else {
@@ -24007,20 +23999,20 @@ num_index_prop:
                        }
                }
 
-       } else if (Z_TYPE_PP(container) == IS_OBJECT) {
+       } else if (Z_TYPE_P(container) == IS_OBJECT) {
                if (0) {
                        MAKE_REAL_ZVAL_PTR(offset);
                }
                if (prop_dim) {
-                       if (Z_OBJ_HT_P(*container)->has_property) {
-                               result = Z_OBJ_HT_P(*container)->has_property(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
+                       if (Z_OBJ_HT_P(container)->has_property) {
+                               result = Z_OBJ_HT_P(container)->has_property(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
                        } else {
                                zend_error(E_NOTICE, "Trying to check property of non-object");
                                result = 0;
                        }
                } else {
-                       if (Z_OBJ_HT_P(*container)->has_dimension) {
-                               result = Z_OBJ_HT_P(*container)->has_dimension(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
+                       if (Z_OBJ_HT_P(container)->has_dimension) {
+                               result = Z_OBJ_HT_P(container)->has_dimension(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
                        } else {
                                zend_error(E_NOTICE, "Trying to check element of non-array");
                                result = 0;
@@ -24031,7 +24023,7 @@ num_index_prop:
                } else {
 
                }
-       } else if ((*container)->type == IS_STRING && !prop_dim) { /* string offsets */
+       } else if (Z_TYPE_P(container) == IS_STRING && !prop_dim) { /* string offsets */
                zval tmp;
 
                if (Z_TYPE_P(offset) != IS_LONG) {
@@ -24049,11 +24041,11 @@ num_index_prop:
                }
                if (Z_TYPE_P(offset) == IS_LONG) {
                        if (opline->extended_value & ZEND_ISSET) {
-                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container)) {
+                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container)) {
                                        result = 1;
                                }
                        } else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
-                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container) && Z_STRVAL_PP(container)[offset->value.lval] != '0') {
+                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container) && Z_STRVAL_P(container)[offset->value.lval] != '0') {
                                        result = 1;
                                }
                        }
@@ -25440,22 +25432,22 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_UNUSED_CON
 {
        USE_OPLINE
 
-       zval **container;
+       zval *container;
        zval **value = NULL;
        int result = 0;
        ulong hval;
        zval *offset;
 
        SAVE_OPLINE();
-       container = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
+       container = _get_obj_zval_ptr_unused(TSRMLS_C);
 
        offset = opline->op2.zv;
 
-       if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) {
+       if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
                HashTable *ht;
                int isset = 0;
 
-               ht = Z_ARRVAL_PP(container);
+               ht = Z_ARRVAL_P(container);
 
                switch (Z_TYPE_P(offset)) {
                        case IS_DOUBLE:
@@ -25474,9 +25466,7 @@ num_index_prop:
                                if (IS_CONST == IS_CONST) {
                                        hval = Z_HASH_P(offset);
                                } else {
-                                       if (!prop_dim) {
-                                               ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
-                                       }
+                                       ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
                                        if (IS_INTERNED(Z_STRVAL_P(offset))) {
                                                hval = INTERNED_HASH(Z_STRVAL_P(offset));
                                        } else {
@@ -25511,20 +25501,20 @@ num_index_prop:
                        }
                }
 
-       } else if (Z_TYPE_PP(container) == IS_OBJECT) {
+       } else if (Z_TYPE_P(container) == IS_OBJECT) {
                if (0) {
                        MAKE_REAL_ZVAL_PTR(offset);
                }
                if (prop_dim) {
-                       if (Z_OBJ_HT_P(*container)->has_property) {
-                               result = Z_OBJ_HT_P(*container)->has_property(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
+                       if (Z_OBJ_HT_P(container)->has_property) {
+                               result = Z_OBJ_HT_P(container)->has_property(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
                        } else {
                                zend_error(E_NOTICE, "Trying to check property of non-object");
                                result = 0;
                        }
                } else {
-                       if (Z_OBJ_HT_P(*container)->has_dimension) {
-                               result = Z_OBJ_HT_P(*container)->has_dimension(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
+                       if (Z_OBJ_HT_P(container)->has_dimension) {
+                               result = Z_OBJ_HT_P(container)->has_dimension(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
                        } else {
                                zend_error(E_NOTICE, "Trying to check element of non-array");
                                result = 0;
@@ -25535,7 +25525,7 @@ num_index_prop:
                } else {
 
                }
-       } else if ((*container)->type == IS_STRING && !prop_dim) { /* string offsets */
+       } else if (Z_TYPE_P(container) == IS_STRING && !prop_dim) { /* string offsets */
                zval tmp;
 
                if (Z_TYPE_P(offset) != IS_LONG) {
@@ -25553,11 +25543,11 @@ num_index_prop:
                }
                if (Z_TYPE_P(offset) == IS_LONG) {
                        if (opline->extended_value & ZEND_ISSET) {
-                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container)) {
+                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container)) {
                                        result = 1;
                                }
                        } else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
-                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container) && Z_STRVAL_PP(container)[offset->value.lval] != '0') {
+                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container) && Z_STRVAL_P(container)[offset->value.lval] != '0') {
                                        result = 1;
                                }
                        }
@@ -26756,22 +26746,22 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_UNUSED_TMP
 {
        USE_OPLINE
        zend_free_op free_op2;
-       zval **container;
+       zval *container;
        zval **value = NULL;
        int result = 0;
        ulong hval;
        zval *offset;
 
        SAVE_OPLINE();
-       container = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
+       container = _get_obj_zval_ptr_unused(TSRMLS_C);
 
        offset = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
 
-       if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) {
+       if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
                HashTable *ht;
                int isset = 0;
 
-               ht = Z_ARRVAL_PP(container);
+               ht = Z_ARRVAL_P(container);
 
                switch (Z_TYPE_P(offset)) {
                        case IS_DOUBLE:
@@ -26790,9 +26780,7 @@ num_index_prop:
                                if (IS_TMP_VAR == IS_CONST) {
                                        hval = Z_HASH_P(offset);
                                } else {
-                                       if (!prop_dim) {
-                                               ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
-                                       }
+                                       ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
                                        if (IS_INTERNED(Z_STRVAL_P(offset))) {
                                                hval = INTERNED_HASH(Z_STRVAL_P(offset));
                                        } else {
@@ -26827,20 +26815,20 @@ num_index_prop:
                        }
                }
                zval_dtor(free_op2.var);
-       } else if (Z_TYPE_PP(container) == IS_OBJECT) {
+       } else if (Z_TYPE_P(container) == IS_OBJECT) {
                if (1) {
                        MAKE_REAL_ZVAL_PTR(offset);
                }
                if (prop_dim) {
-                       if (Z_OBJ_HT_P(*container)->has_property) {
-                               result = Z_OBJ_HT_P(*container)->has_property(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
+                       if (Z_OBJ_HT_P(container)->has_property) {
+                               result = Z_OBJ_HT_P(container)->has_property(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
                        } else {
                                zend_error(E_NOTICE, "Trying to check property of non-object");
                                result = 0;
                        }
                } else {
-                       if (Z_OBJ_HT_P(*container)->has_dimension) {
-                               result = Z_OBJ_HT_P(*container)->has_dimension(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
+                       if (Z_OBJ_HT_P(container)->has_dimension) {
+                               result = Z_OBJ_HT_P(container)->has_dimension(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
                        } else {
                                zend_error(E_NOTICE, "Trying to check element of non-array");
                                result = 0;
@@ -26851,7 +26839,7 @@ num_index_prop:
                } else {
                        zval_dtor(free_op2.var);
                }
-       } else if ((*container)->type == IS_STRING && !prop_dim) { /* string offsets */
+       } else if (Z_TYPE_P(container) == IS_STRING && !prop_dim) { /* string offsets */
                zval tmp;
 
                if (Z_TYPE_P(offset) != IS_LONG) {
@@ -26869,11 +26857,11 @@ num_index_prop:
                }
                if (Z_TYPE_P(offset) == IS_LONG) {
                        if (opline->extended_value & ZEND_ISSET) {
-                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container)) {
+                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container)) {
                                        result = 1;
                                }
                        } else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
-                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container) && Z_STRVAL_PP(container)[offset->value.lval] != '0') {
+                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container) && Z_STRVAL_P(container)[offset->value.lval] != '0') {
                                        result = 1;
                                }
                        }
@@ -28072,22 +28060,22 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_UNUSED_VAR
 {
        USE_OPLINE
        zend_free_op free_op2;
-       zval **container;
+       zval *container;
        zval **value = NULL;
        int result = 0;
        ulong hval;
        zval *offset;
 
        SAVE_OPLINE();
-       container = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
+       container = _get_obj_zval_ptr_unused(TSRMLS_C);
 
        offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
 
-       if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) {
+       if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
                HashTable *ht;
                int isset = 0;
 
-               ht = Z_ARRVAL_PP(container);
+               ht = Z_ARRVAL_P(container);
 
                switch (Z_TYPE_P(offset)) {
                        case IS_DOUBLE:
@@ -28106,9 +28094,7 @@ num_index_prop:
                                if (IS_VAR == IS_CONST) {
                                        hval = Z_HASH_P(offset);
                                } else {
-                                       if (!prop_dim) {
-                                               ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
-                                       }
+                                       ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
                                        if (IS_INTERNED(Z_STRVAL_P(offset))) {
                                                hval = INTERNED_HASH(Z_STRVAL_P(offset));
                                        } else {
@@ -28143,20 +28129,20 @@ num_index_prop:
                        }
                }
                if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
-       } else if (Z_TYPE_PP(container) == IS_OBJECT) {
+       } else if (Z_TYPE_P(container) == IS_OBJECT) {
                if (0) {
                        MAKE_REAL_ZVAL_PTR(offset);
                }
                if (prop_dim) {
-                       if (Z_OBJ_HT_P(*container)->has_property) {
-                               result = Z_OBJ_HT_P(*container)->has_property(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
+                       if (Z_OBJ_HT_P(container)->has_property) {
+                               result = Z_OBJ_HT_P(container)->has_property(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
                        } else {
                                zend_error(E_NOTICE, "Trying to check property of non-object");
                                result = 0;
                        }
                } else {
-                       if (Z_OBJ_HT_P(*container)->has_dimension) {
-                               result = Z_OBJ_HT_P(*container)->has_dimension(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
+                       if (Z_OBJ_HT_P(container)->has_dimension) {
+                               result = Z_OBJ_HT_P(container)->has_dimension(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
                        } else {
                                zend_error(E_NOTICE, "Trying to check element of non-array");
                                result = 0;
@@ -28167,7 +28153,7 @@ num_index_prop:
                } else {
                        if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
                }
-       } else if ((*container)->type == IS_STRING && !prop_dim) { /* string offsets */
+       } else if (Z_TYPE_P(container) == IS_STRING && !prop_dim) { /* string offsets */
                zval tmp;
 
                if (Z_TYPE_P(offset) != IS_LONG) {
@@ -28185,11 +28171,11 @@ num_index_prop:
                }
                if (Z_TYPE_P(offset) == IS_LONG) {
                        if (opline->extended_value & ZEND_ISSET) {
-                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container)) {
+                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container)) {
                                        result = 1;
                                }
                        } else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
-                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container) && Z_STRVAL_PP(container)[offset->value.lval] != '0') {
+                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container) && Z_STRVAL_P(container)[offset->value.lval] != '0') {
                                        result = 1;
                                }
                        }
@@ -29808,22 +29794,22 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_UNUSED_CV(
 {
        USE_OPLINE
 
-       zval **container;
+       zval *container;
        zval **value = NULL;
        int result = 0;
        ulong hval;
        zval *offset;
 
        SAVE_OPLINE();
-       container = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
+       container = _get_obj_zval_ptr_unused(TSRMLS_C);
 
        offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC);
 
-       if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) {
+       if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
                HashTable *ht;
                int isset = 0;
 
-               ht = Z_ARRVAL_PP(container);
+               ht = Z_ARRVAL_P(container);
 
                switch (Z_TYPE_P(offset)) {
                        case IS_DOUBLE:
@@ -29842,9 +29828,7 @@ num_index_prop:
                                if (IS_CV == IS_CONST) {
                                        hval = Z_HASH_P(offset);
                                } else {
-                                       if (!prop_dim) {
-                                               ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
-                                       }
+                                       ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
                                        if (IS_INTERNED(Z_STRVAL_P(offset))) {
                                                hval = INTERNED_HASH(Z_STRVAL_P(offset));
                                        } else {
@@ -29879,20 +29863,20 @@ num_index_prop:
                        }
                }
 
-       } else if (Z_TYPE_PP(container) == IS_OBJECT) {
+       } else if (Z_TYPE_P(container) == IS_OBJECT) {
                if (0) {
                        MAKE_REAL_ZVAL_PTR(offset);
                }
                if (prop_dim) {
-                       if (Z_OBJ_HT_P(*container)->has_property) {
-                               result = Z_OBJ_HT_P(*container)->has_property(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
+                       if (Z_OBJ_HT_P(container)->has_property) {
+                               result = Z_OBJ_HT_P(container)->has_property(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
                        } else {
                                zend_error(E_NOTICE, "Trying to check property of non-object");
                                result = 0;
                        }
                } else {
-                       if (Z_OBJ_HT_P(*container)->has_dimension) {
-                               result = Z_OBJ_HT_P(*container)->has_dimension(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
+                       if (Z_OBJ_HT_P(container)->has_dimension) {
+                               result = Z_OBJ_HT_P(container)->has_dimension(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
                        } else {
                                zend_error(E_NOTICE, "Trying to check element of non-array");
                                result = 0;
@@ -29903,7 +29887,7 @@ num_index_prop:
                } else {
 
                }
-       } else if ((*container)->type == IS_STRING && !prop_dim) { /* string offsets */
+       } else if (Z_TYPE_P(container) == IS_STRING && !prop_dim) { /* string offsets */
                zval tmp;
 
                if (Z_TYPE_P(offset) != IS_LONG) {
@@ -29921,11 +29905,11 @@ num_index_prop:
                }
                if (Z_TYPE_P(offset) == IS_LONG) {
                        if (opline->extended_value & ZEND_ISSET) {
-                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container)) {
+                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container)) {
                                        result = 1;
                                }
                        } else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
-                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container) && Z_STRVAL_PP(container)[offset->value.lval] != '0') {
+                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container) && Z_STRVAL_P(container)[offset->value.lval] != '0') {
                                        result = 1;
                                }
                        }
@@ -33302,22 +33286,22 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_CV_CONST(i
 {
        USE_OPLINE
 
-       zval **container;
+       zval *container;
        zval **value = NULL;
        int result = 0;
        ulong hval;
        zval *offset;
 
        SAVE_OPLINE();
-       container = _get_zval_ptr_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var TSRMLS_CC);
+       container = _get_zval_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var TSRMLS_CC);
 
        offset = opline->op2.zv;
 
-       if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) {
+       if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
                HashTable *ht;
                int isset = 0;
 
-               ht = Z_ARRVAL_PP(container);
+               ht = Z_ARRVAL_P(container);
 
                switch (Z_TYPE_P(offset)) {
                        case IS_DOUBLE:
@@ -33336,9 +33320,7 @@ num_index_prop:
                                if (IS_CONST == IS_CONST) {
                                        hval = Z_HASH_P(offset);
                                } else {
-                                       if (!prop_dim) {
-                                               ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
-                                       }
+                                       ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
                                        if (IS_INTERNED(Z_STRVAL_P(offset))) {
                                                hval = INTERNED_HASH(Z_STRVAL_P(offset));
                                        } else {
@@ -33373,20 +33355,20 @@ num_index_prop:
                        }
                }
 
-       } else if (Z_TYPE_PP(container) == IS_OBJECT) {
+       } else if (Z_TYPE_P(container) == IS_OBJECT) {
                if (0) {
                        MAKE_REAL_ZVAL_PTR(offset);
                }
                if (prop_dim) {
-                       if (Z_OBJ_HT_P(*container)->has_property) {
-                               result = Z_OBJ_HT_P(*container)->has_property(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
+                       if (Z_OBJ_HT_P(container)->has_property) {
+                               result = Z_OBJ_HT_P(container)->has_property(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
                        } else {
                                zend_error(E_NOTICE, "Trying to check property of non-object");
                                result = 0;
                        }
                } else {
-                       if (Z_OBJ_HT_P(*container)->has_dimension) {
-                               result = Z_OBJ_HT_P(*container)->has_dimension(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
+                       if (Z_OBJ_HT_P(container)->has_dimension) {
+                               result = Z_OBJ_HT_P(container)->has_dimension(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
                        } else {
                                zend_error(E_NOTICE, "Trying to check element of non-array");
                                result = 0;
@@ -33397,7 +33379,7 @@ num_index_prop:
                } else {
 
                }
-       } else if ((*container)->type == IS_STRING && !prop_dim) { /* string offsets */
+       } else if (Z_TYPE_P(container) == IS_STRING && !prop_dim) { /* string offsets */
                zval tmp;
 
                if (Z_TYPE_P(offset) != IS_LONG) {
@@ -33415,11 +33397,11 @@ num_index_prop:
                }
                if (Z_TYPE_P(offset) == IS_LONG) {
                        if (opline->extended_value & ZEND_ISSET) {
-                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container)) {
+                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container)) {
                                        result = 1;
                                }
                        } else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
-                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container) && Z_STRVAL_PP(container)[offset->value.lval] != '0') {
+                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container) && Z_STRVAL_P(container)[offset->value.lval] != '0') {
                                        result = 1;
                                }
                        }
@@ -35258,22 +35240,22 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_CV_TMP(int
 {
        USE_OPLINE
        zend_free_op free_op2;
-       zval **container;
+       zval *container;
        zval **value = NULL;
        int result = 0;
        ulong hval;
        zval *offset;
 
        SAVE_OPLINE();
-       container = _get_zval_ptr_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var TSRMLS_CC);
+       container = _get_zval_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var TSRMLS_CC);
 
        offset = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
 
-       if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) {
+       if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
                HashTable *ht;
                int isset = 0;
 
-               ht = Z_ARRVAL_PP(container);
+               ht = Z_ARRVAL_P(container);
 
                switch (Z_TYPE_P(offset)) {
                        case IS_DOUBLE:
@@ -35292,9 +35274,7 @@ num_index_prop:
                                if (IS_TMP_VAR == IS_CONST) {
                                        hval = Z_HASH_P(offset);
                                } else {
-                                       if (!prop_dim) {
-                                               ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
-                                       }
+                                       ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
                                        if (IS_INTERNED(Z_STRVAL_P(offset))) {
                                                hval = INTERNED_HASH(Z_STRVAL_P(offset));
                                        } else {
@@ -35329,20 +35309,20 @@ num_index_prop:
                        }
                }
                zval_dtor(free_op2.var);
-       } else if (Z_TYPE_PP(container) == IS_OBJECT) {
+       } else if (Z_TYPE_P(container) == IS_OBJECT) {
                if (1) {
                        MAKE_REAL_ZVAL_PTR(offset);
                }
                if (prop_dim) {
-                       if (Z_OBJ_HT_P(*container)->has_property) {
-                               result = Z_OBJ_HT_P(*container)->has_property(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
+                       if (Z_OBJ_HT_P(container)->has_property) {
+                               result = Z_OBJ_HT_P(container)->has_property(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
                        } else {
                                zend_error(E_NOTICE, "Trying to check property of non-object");
                                result = 0;
                        }
                } else {
-                       if (Z_OBJ_HT_P(*container)->has_dimension) {
-                               result = Z_OBJ_HT_P(*container)->has_dimension(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
+                       if (Z_OBJ_HT_P(container)->has_dimension) {
+                               result = Z_OBJ_HT_P(container)->has_dimension(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
                        } else {
                                zend_error(E_NOTICE, "Trying to check element of non-array");
                                result = 0;
@@ -35353,7 +35333,7 @@ num_index_prop:
                } else {
                        zval_dtor(free_op2.var);
                }
-       } else if ((*container)->type == IS_STRING && !prop_dim) { /* string offsets */
+       } else if (Z_TYPE_P(container) == IS_STRING && !prop_dim) { /* string offsets */
                zval tmp;
 
                if (Z_TYPE_P(offset) != IS_LONG) {
@@ -35371,11 +35351,11 @@ num_index_prop:
                }
                if (Z_TYPE_P(offset) == IS_LONG) {
                        if (opline->extended_value & ZEND_ISSET) {
-                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container)) {
+                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container)) {
                                        result = 1;
                                }
                        } else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
-                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container) && Z_STRVAL_PP(container)[offset->value.lval] != '0') {
+                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container) && Z_STRVAL_P(container)[offset->value.lval] != '0') {
                                        result = 1;
                                }
                        }
@@ -37595,22 +37575,22 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_CV_VAR(int
 {
        USE_OPLINE
        zend_free_op free_op2;
-       zval **container;
+       zval *container;
        zval **value = NULL;
        int result = 0;
        ulong hval;
        zval *offset;
 
        SAVE_OPLINE();
-       container = _get_zval_ptr_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var TSRMLS_CC);
+       container = _get_zval_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var TSRMLS_CC);
 
        offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
 
-       if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) {
+       if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
                HashTable *ht;
                int isset = 0;
 
-               ht = Z_ARRVAL_PP(container);
+               ht = Z_ARRVAL_P(container);
 
                switch (Z_TYPE_P(offset)) {
                        case IS_DOUBLE:
@@ -37629,9 +37609,7 @@ num_index_prop:
                                if (IS_VAR == IS_CONST) {
                                        hval = Z_HASH_P(offset);
                                } else {
-                                       if (!prop_dim) {
-                                               ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
-                                       }
+                                       ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
                                        if (IS_INTERNED(Z_STRVAL_P(offset))) {
                                                hval = INTERNED_HASH(Z_STRVAL_P(offset));
                                        } else {
@@ -37666,20 +37644,20 @@ num_index_prop:
                        }
                }
                if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
-       } else if (Z_TYPE_PP(container) == IS_OBJECT) {
+       } else if (Z_TYPE_P(container) == IS_OBJECT) {
                if (0) {
                        MAKE_REAL_ZVAL_PTR(offset);
                }
                if (prop_dim) {
-                       if (Z_OBJ_HT_P(*container)->has_property) {
-                               result = Z_OBJ_HT_P(*container)->has_property(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
+                       if (Z_OBJ_HT_P(container)->has_property) {
+                               result = Z_OBJ_HT_P(container)->has_property(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
                        } else {
                                zend_error(E_NOTICE, "Trying to check property of non-object");
                                result = 0;
                        }
                } else {
-                       if (Z_OBJ_HT_P(*container)->has_dimension) {
-                               result = Z_OBJ_HT_P(*container)->has_dimension(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
+                       if (Z_OBJ_HT_P(container)->has_dimension) {
+                               result = Z_OBJ_HT_P(container)->has_dimension(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
                        } else {
                                zend_error(E_NOTICE, "Trying to check element of non-array");
                                result = 0;
@@ -37690,7 +37668,7 @@ num_index_prop:
                } else {
                        if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
                }
-       } else if ((*container)->type == IS_STRING && !prop_dim) { /* string offsets */
+       } else if (Z_TYPE_P(container) == IS_STRING && !prop_dim) { /* string offsets */
                zval tmp;
 
                if (Z_TYPE_P(offset) != IS_LONG) {
@@ -37708,11 +37686,11 @@ num_index_prop:
                }
                if (Z_TYPE_P(offset) == IS_LONG) {
                        if (opline->extended_value & ZEND_ISSET) {
-                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container)) {
+                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container)) {
                                        result = 1;
                                }
                        } else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
-                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container) && Z_STRVAL_PP(container)[offset->value.lval] != '0') {
+                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container) && Z_STRVAL_P(container)[offset->value.lval] != '0') {
                                        result = 1;
                                }
                        }
@@ -40600,22 +40578,22 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_CV_CV(int
 {
        USE_OPLINE
 
-       zval **container;
+       zval *container;
        zval **value = NULL;
        int result = 0;
        ulong hval;
        zval *offset;
 
        SAVE_OPLINE();
-       container = _get_zval_ptr_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var TSRMLS_CC);
+       container = _get_zval_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var TSRMLS_CC);
 
        offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC);
 
-       if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) {
+       if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
                HashTable *ht;
                int isset = 0;
 
-               ht = Z_ARRVAL_PP(container);
+               ht = Z_ARRVAL_P(container);
 
                switch (Z_TYPE_P(offset)) {
                        case IS_DOUBLE:
@@ -40634,9 +40612,7 @@ num_index_prop:
                                if (IS_CV == IS_CONST) {
                                        hval = Z_HASH_P(offset);
                                } else {
-                                       if (!prop_dim) {
-                                               ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
-                                       }
+                                       ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
                                        if (IS_INTERNED(Z_STRVAL_P(offset))) {
                                                hval = INTERNED_HASH(Z_STRVAL_P(offset));
                                        } else {
@@ -40671,20 +40647,20 @@ num_index_prop:
                        }
                }
 
-       } else if (Z_TYPE_PP(container) == IS_OBJECT) {
+       } else if (Z_TYPE_P(container) == IS_OBJECT) {
                if (0) {
                        MAKE_REAL_ZVAL_PTR(offset);
                }
                if (prop_dim) {
-                       if (Z_OBJ_HT_P(*container)->has_property) {
-                               result = Z_OBJ_HT_P(*container)->has_property(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
+                       if (Z_OBJ_HT_P(container)->has_property) {
+                               result = Z_OBJ_HT_P(container)->has_property(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
                        } else {
                                zend_error(E_NOTICE, "Trying to check property of non-object");
                                result = 0;
                        }
                } else {
-                       if (Z_OBJ_HT_P(*container)->has_dimension) {
-                               result = Z_OBJ_HT_P(*container)->has_dimension(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
+                       if (Z_OBJ_HT_P(container)->has_dimension) {
+                               result = Z_OBJ_HT_P(container)->has_dimension(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
                        } else {
                                zend_error(E_NOTICE, "Trying to check element of non-array");
                                result = 0;
@@ -40695,7 +40671,7 @@ num_index_prop:
                } else {
 
                }
-       } else if ((*container)->type == IS_STRING && !prop_dim) { /* string offsets */
+       } else if (Z_TYPE_P(container) == IS_STRING && !prop_dim) { /* string offsets */
                zval tmp;
 
                if (Z_TYPE_P(offset) != IS_LONG) {
@@ -40713,11 +40689,11 @@ num_index_prop:
                }
                if (Z_TYPE_P(offset) == IS_LONG) {
                        if (opline->extended_value & ZEND_ISSET) {
-                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container)) {
+                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container)) {
                                        result = 1;
                                }
                        } else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
-                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container) && Z_STRVAL_PP(container)[offset->value.lval] != '0') {
+                               if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container) && Z_STRVAL_P(container)[offset->value.lval] != '0') {
                                        result = 1;
                                }
                        }