]> granicus.if.org Git - php/commitdiff
Don't dup after fetch_dimension_const
authorNikita Popov <nikita.ppv@gmail.com>
Thu, 2 Nov 2017 18:20:14 +0000 (19:20 +0100)
committerNikita Popov <nikita.ppv@gmail.com>
Thu, 2 Nov 2017 18:20:14 +0000 (19:20 +0100)
Any duplication that may be necessary must have happened earlier
already. Also I'm not sure what the IS_REF branch was there for
originally, but it does not appear to be relevant anymore.

Zend/zend_ast.c

index 884caf2be2c9cd810e3a4790c2983ec2f24f452c..f4e7c09a83d69409ad9b9e853ccf0db8cf014966 100644 (file)
@@ -452,16 +452,8 @@ ZEND_API int zend_ast_evaluate(zval *result, zend_ast *ast, zend_class_entry *sc
                                zval_dtor(&op1);
                                ret = FAILURE;
                        } else {
-                               zval tmp;
+                               zend_fetch_dimension_const(result, &op1, &op2, (ast->attr == ZEND_DIM_IS) ? BP_VAR_IS : BP_VAR_R);
 
-                               zend_fetch_dimension_const(&tmp, &op1, &op2, (ast->attr == ZEND_DIM_IS) ? BP_VAR_IS : BP_VAR_R);
-
-                               if (UNEXPECTED(Z_ISREF(tmp))) {
-                                       ZVAL_COPY_OR_DUP(result, Z_REFVAL(tmp));
-                               } else {
-                                       ZVAL_COPY_OR_DUP(result, &tmp);
-                               }
-                               zval_ptr_dtor(&tmp);
                                zval_dtor(&op1);
                                zval_dtor(&op2);
                        }