From: Xinchen Hui <laruence@php.net>
Date: Thu, 4 Apr 2013 05:40:21 +0000 (+0800)
Subject: Fixed Bug #64578
X-Git-Tag: php-5.4.15RC1~32^2
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7fc8077e4caf1ac62e9591775f7779eb1a7c25ad;p=php

Fixed Bug #64578
---

diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
index de7cd4a486..16dc08e502 100644
--- a/Zend/zend_execute.c
+++ b/Zend/zend_execute.c
@@ -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);