]> granicus.if.org Git - php/commitdiff
Merge branch 'PHP-5.5'
authorDmitry Stogov <dmitry@zend.com>
Mon, 28 Oct 2013 11:23:10 +0000 (15:23 +0400)
committerDmitry Stogov <dmitry@zend.com>
Mon, 28 Oct 2013 11:23:10 +0000 (15:23 +0400)
* PHP-5.5:
  Use zval* instead of zval**

Conflicts:
Zend/zend_vm_def.h
Zend/zend_vm_execute.h

1  2 
Zend/zend_vm_def.h
Zend/zend_vm_execute.h

index 09f567c36f98b026c3488a13b9a8b13ba318db68,c2c3ae52195fbd122c23c1d5d886db21ddb8f894..572aac5a20706d35487f59be85c6bbe943b1af29
@@@ -4499,11 -4460,11 +4499,10 @@@ ZEND_VM_HELPER_EX(zend_isset_isempty_di
        zval *offset;
  
        SAVE_OPLINE();
-       container = GET_OP1_OBJ_ZVAL_PTR_PTR_FAST(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;
  
@@@ -4526,10 -4487,12 +4525,8 @@@ 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 {
 -                                              hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
 -                                      }
 +                                      hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
                                }
                                if (zend_hash_quick_find(ht, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, (void **) &value) == SUCCESS) {
                                        isset = 1;
                Z_LVAL(EX_T(opline->result.var).tmp_var) = !result;
        }
  
-       FREE_OP1_VAR_PTR_FAST();
 -      FREE_OP1_VAR_PTR();
++      FREE_OP1_IF_VAR();
  
        CHECK_EXCEPTION();
        ZEND_VM_NEXT_OPCODE();
index a5b4e72da0b190ff175abe34dc9e5549b1ac061e,b21f6bf895101daf36a3a0bb188f82601fc3e903..869bb199b2320808ab05174ec975c029f2c2fae6
@@@ -16068,11 -16081,11 +16068,10 @@@ static int ZEND_FASTCALL zend_isset_ise
        zval *offset;
  
        SAVE_OPLINE();
-       container = _get_zval_ptr_ptr_var_fast(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;
  
@@@ -16095,10 -16108,12 +16094,8 @@@ 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 {
 -                                              hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
 -                                      }
 +                                      hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
                                }
                                if (zend_hash_quick_find(ht, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, (void **) &value) == SUCCESS) {
                                        isset = 1;
@@@ -18145,11 -18173,11 +18142,10 @@@ static int ZEND_FASTCALL zend_isset_ise
        zval *offset;
  
        SAVE_OPLINE();
-       container = _get_zval_ptr_ptr_var_fast(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;
  
@@@ -18172,10 -18200,12 +18168,8 @@@ 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 {
 -                                              hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
 -                                      }
 +                                      hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
                                }
                                if (zend_hash_quick_find(ht, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, (void **) &value) == SUCCESS) {
                                        isset = 1;
@@@ -20602,11 -20647,11 +20596,10 @@@ static int ZEND_FASTCALL zend_isset_ise
        zval *offset;
  
        SAVE_OPLINE();
-       container = _get_zval_ptr_ptr_var_fast(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;
  
@@@ -20629,10 -20674,12 +20622,8 @@@ 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 {
 -                                              hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
 -                                      }
 +                                      hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
                                }
                                if (zend_hash_quick_find(ht, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, (void **) &value) == SUCCESS) {
                                        isset = 1;
                                result = 1;
                        }
                }
 -              if (free_op2.var) {zval_ptr_dtor(&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 (0) {
                        zval_ptr_dtor(&offset);
                } else {
 -                      if (free_op2.var) {zval_ptr_dtor(&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) {
@@@ -23873,11 -23937,11 +23864,10 @@@ static int ZEND_FASTCALL zend_isset_ise
        zval *offset;
  
        SAVE_OPLINE();
-       container = _get_zval_ptr_ptr_var_fast(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;
  
@@@ -23900,10 -23964,12 +23890,8 @@@ 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 {
 -                                              hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
 -                                      }
 +                                      hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
                                }
                                if (zend_hash_quick_find(ht, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, (void **) &value) == SUCCESS) {
                                        isset = 1;
@@@ -25370,11 -25439,11 +25358,10 @@@ static int ZEND_FASTCALL zend_isset_ise
        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;
  
@@@ -25397,10 -25466,12 +25384,8 @@@ 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 {
 -                                              hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
 -                                      }
 +                                      hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
                                }
                                if (zend_hash_quick_find(ht, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, (void **) &value) == SUCCESS) {
                                        isset = 1;
@@@ -26680,11 -26753,11 +26665,10 @@@ static int ZEND_FASTCALL zend_isset_ise
        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;
  
@@@ -26707,10 -26780,12 +26691,8 @@@ 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 {
 -                                              hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
 -                                      }
 +                                      hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
                                }
                                if (zend_hash_quick_find(ht, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, (void **) &value) == SUCCESS) {
                                        isset = 1;
@@@ -27990,11 -28067,11 +27972,10 @@@ static int ZEND_FASTCALL zend_isset_ise
        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;
  
@@@ -28017,10 -28094,12 +27998,8 @@@ 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 {
 -                                              hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
 -                                      }
 +                                      hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
                                }
                                if (zend_hash_quick_find(ht, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, (void **) &value) == SUCCESS) {
                                        isset = 1;
                                result = 1;
                        }
                }
 -              if (free_op2.var) {zval_ptr_dtor(&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 (0) {
                        zval_ptr_dtor(&offset);
                } else {
 -                      if (free_op2.var) {zval_ptr_dtor(&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) {
@@@ -29722,11 -29801,11 +29701,10 @@@ static int ZEND_FASTCALL zend_isset_ise
        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;
  
@@@ -29749,10 -29828,12 +29727,8 @@@ 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 {
 -                                              hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
 -                                      }
 +                                      hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
                                }
                                if (zend_hash_quick_find(ht, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, (void **) &value) == SUCCESS) {
                                        isset = 1;
@@@ -33219,11 -33293,11 +33195,10 @@@ static int ZEND_FASTCALL zend_isset_ise
        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;
  
@@@ -33246,10 -33320,12 +33221,8 @@@ 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 {
 -                                              hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
 -                                      }
 +                                      hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
                                }
                                if (zend_hash_quick_find(ht, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, (void **) &value) == SUCCESS) {
                                        isset = 1;
@@@ -35159,11 -35247,11 +35132,10 @@@ static int ZEND_FASTCALL zend_isset_ise
        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;
  
@@@ -35186,10 -35274,12 +35158,8 @@@ 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 {
 -                                              hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
 -                                      }
 +                                      hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
                                }
                                if (zend_hash_quick_find(ht, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, (void **) &value) == SUCCESS) {
                                        isset = 1;
@@@ -37478,11 -37582,11 +37448,10 @@@ static int ZEND_FASTCALL zend_isset_ise
        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;
  
@@@ -37505,10 -37609,12 +37474,8 @@@ 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 {
 -                                              hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
 -                                      }
 +                                      hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
                                }
                                if (zend_hash_quick_find(ht, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, (void **) &value) == SUCCESS) {
                                        isset = 1;
                                result = 1;
                        }
                }
 -              if (free_op2.var) {zval_ptr_dtor(&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 (0) {
                        zval_ptr_dtor(&offset);
                } else {
 -                      if (free_op2.var) {zval_ptr_dtor(&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) {
@@@ -40464,11 -40585,11 +40431,10 @@@ static int ZEND_FASTCALL zend_isset_ise
        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;
  
@@@ -40491,10 -40612,12 +40457,8 @@@ 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 {
 -                                              hval = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
 -                                      }
 +                                      hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
                                }
                                if (zend_hash_quick_find(ht, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, (void **) &value) == SUCCESS) {
                                        isset = 1;