]> granicus.if.org Git - php/commitdiff
Fixed Bug #62202 (ReflectionParameter::getDefaultValue() memory leaks with constant)
authorXinchen Hui <laruence@php.net>
Fri, 1 Jun 2012 06:55:14 +0000 (14:55 +0800)
committerXinchen Hui <laruence@php.net>
Fri, 1 Jun 2012 06:57:27 +0000 (14:57 +0800)
NEWS
ext/reflection/php_reflection.c

diff --git a/NEWS b/NEWS
index 0297393363c418ab8ba987983f2eb340a36ad11e..d031c3c0d466471120f2c14a3950abf666e8bfc8 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -35,6 +35,10 @@ PHP                                                                        NEWS
     pattern). (Gustavo)
   . Fixed bug #60785 (memory leak in IntlDateFormatter constructor). (Gustavo)
 
+- Reflection:
+  . Fixed bug #62202 (ReflectionParameter::getDefaultValue() memory leaks 
+    with constant). (Laruence)
+
 - XML Writer:
   . Fixed bug #62064 (memory leak in the XML Writer module). 
     (jean-pierre dot lozi at lip6 dot fr)
index 8141275e7b8601b2bde272133d642e3cc481f78d..ca90269fcde2e5339c5189ae74e5f14d2dcfef48 100644 (file)
@@ -2420,7 +2420,8 @@ ZEND_METHOD(reflection_parameter, getDefaultValue)
 
        *return_value = precv->op2.u.constant;
        INIT_PZVAL(return_value);
-       if (Z_TYPE_P(return_value) != IS_CONSTANT && Z_TYPE_P(return_value) != IS_CONSTANT_ARRAY) {
+       if ((Z_TYPE_P(return_value) & IS_CONSTANT_TYPE_MASK) != IS_CONSTANT
+                       && (Z_TYPE_P(return_value) & IS_CONSTANT_TYPE_MASK) != IS_CONSTANT_ARRAY) {
                zval_copy_ctor(return_value);
        }
        zval_update_constant_ex(&return_value, (void*)0, param->fptr->common.scope TSRMLS_CC);