From cee824bbef922334a2db1aa6308a6079f08dffd2 Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Fri, 28 Feb 2014 12:21:12 +0400 Subject: [PATCH] Fixed SEPARATE_ZVAL_IF_REF() --- Zend/zend.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Zend/zend.h b/Zend/zend.h index 1ac7914c75..85e1287d50 100644 --- a/Zend/zend.h +++ b/Zend/zend.h @@ -703,6 +703,15 @@ END_EXTERN_C() #define SEPARATE_ZVAL_IF_REF(zv) \ if (Z_ISREF_P(zv)) { \ + if (Z_REFCOUNT_P(zv) == 1) { \ + zend_reference *ref = Z_REF_P(zv); \ + ZVAL_COPY_VALUE(zv, &ref->val); \ + efree(ref); \ + } else { \ + zval *ref = Z_REFVAL_P(zv); \ + Z_DELREF_P(zv); \ + ZVAL_DUP(zv, ref); \ + } \ SEPARATE_ZVAL(zv); \ } -- 2.50.1