]> granicus.if.org Git - php/commitdiff
Fixed Bug #64578
authorXinchen Hui <laruence@php.net>
Thu, 4 Apr 2013 05:40:21 +0000 (13:40 +0800)
committerXinchen Hui <laruence@php.net>
Thu, 4 Apr 2013 05:40:21 +0000 (13:40 +0800)
Zend/zend_execute.c

index de7cd4a4864993bcc32de13153eb26788e3b4e7c..16dc08e5020c90684963d6a37d4bc338cad89a77 100644 (file)
@@ -937,6 +937,10 @@ convert_to_array:
                                        zend_error_noreturn(E_ERROR, "[] operator not supported for strings");
                                }
 
+                               if (type != BP_VAR_UNSET) {
+                                       SEPARATE_ZVAL_IF_NOT_REF(container_ptr);
+                               }
+
                                if (Z_TYPE_P(dim) != IS_LONG) {
                                        switch(Z_TYPE_P(dim)) {
                                                /* case IS_LONG: */
@@ -956,9 +960,6 @@ convert_to_array:
                                        convert_to_long(&tmp);
                                        dim = &tmp;
                                }
-                               if (type != BP_VAR_UNSET) {
-                                       SEPARATE_ZVAL_IF_NOT_REF(container_ptr);
-                               }
                                container = *container_ptr;
                                result->str_offset.str = container;
                                PZVAL_LOCK(container);