From: Dmitry Stogov Date: Thu, 13 Mar 2014 18:07:14 +0000 (+0400) Subject: Fixed reference conversion X-Git-Tag: POST_PHPNG_MERGE~412^2~333 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5f861768d607b531e2a5c12841acb70d6ad7b1bc;p=php Fixed reference conversion --- diff --git a/Zend/zend_operators.c b/Zend/zend_operators.c index 55e29989b5..fdfa5aba3b 100644 --- a/Zend/zend_operators.c +++ b/Zend/zend_operators.c @@ -183,7 +183,18 @@ ZEND_API double zend_string_to_double(const char *number, zend_uint length) /* { ZEND_API void convert_scalar_to_number(zval *op TSRMLS_DC) /* {{{ */ { +try_again: switch (Z_TYPE_P(op)) { + case IS_REFERENCE: + if (Z_REFCOUNT_P(op) == 1) { + zend_reference *ref = Z_REF_P(op); + ZVAL_COPY_VALUE(op, Z_REFVAL_P(op)); + efree(ref); + } else { + Z_DELREF_P(op); + ZVAL_COPY_VALUE(op, Z_REFVAL_P(op)); + } + goto try_again; case IS_STRING: { zend_string *str;