MFH: fix #38653 (memory leak in ReflectionClass::getConstant())

This commit is contained in:
Antony Dovgal 2006-08-30 10:42:49 +00:00
parent d6ec9d21ec
commit 86bf55a3d8
3 changed files with 31 additions and 0 deletions

1
NEWS
View File

@ -5,6 +5,7 @@ PHP NEWS
SoapServer::setClass() method). (Dmitry)
- Added support for hexadecimal entity in imagettftext() for the bundled GD.
(Pierre)
- Fixed bug #38653 (memory leak in ReflectionClass::getConstant()). (Tony)
- Fixed bug #38637 (curl_copy_handle() fails to fully copy the cURL handle).
(Tony, Ilia)
- Fixed bug #38624 (Strange warning when incrementing an object property and

View File

@ -211,6 +211,7 @@ static void _default_get_entry(zval *object, char *name, int name_len, zval *ret
*return_value = **value;
zval_copy_ctor(return_value);
INIT_PZVAL(return_value);
}
static void reflection_register_implement(zend_class_entry *class_entry, zend_class_entry *interface_entry TSRMLS_DC)
@ -3224,6 +3225,7 @@ ZEND_METHOD(reflection_class, getConstant)
}
*return_value = **value;
zval_copy_ctor(return_value);
INIT_PZVAL(return_value);
}
/* }}} */

View File

@ -0,0 +1,28 @@
--TEST--
Bug #38653 (memory leak in ReflectionClass::getConstant())
--FILE--
<?php
class foo {
const cons = 10;
const cons1 = "";
const cons2 = "test";
}
class bar extends foo {
}
$foo = new ReflectionClass("foo");
var_dump($foo->getConstant("cons"));
var_dump($foo->getConstant("cons1"));
var_dump($foo->getConstant("cons2"));
var_dump($foo->getConstant("no such const"));
echo "Done\n";
?>
--EXPECTF--
int(10)
string(0) ""
string(4) "test"
bool(false)
Done