From 84c9395f1888abbca9267fd2d2bbf1358a97a538 Mon Sep 17 00:00:00 2001 From: Harald Radi Date: Thu, 17 Oct 2002 16:21:00 +0000 Subject: [PATCH] @ fixes bugs #19156 and #19544 (memleak) --- ext/com/COM.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ext/com/COM.c b/ext/com/COM.c index e846aee203..7c923f40dc 100644 --- a/ext/com/COM.c +++ b/ext/com/COM.c @@ -1870,7 +1870,6 @@ PHPAPI pval php_COM_get_property_handler(zend_property_reference *property_refer switch (Z_TYPE_P(overloaded_property)) { case OE_IS_ARRAY: if (do_COM_offget(var_result, obj, &overloaded_property->element, FALSE TSRMLS_CC) == FAILURE) { - pval_destructor(&overloaded_property->element); FREE_VARIANT(var_result); FREE_COM(obj_prop); @@ -1880,7 +1879,6 @@ PHPAPI pval php_COM_get_property_handler(zend_property_reference *property_refer case OE_IS_OBJECT: if (do_COM_propget(var_result, obj, &overloaded_property->element, FALSE TSRMLS_CC) == FAILURE) { - pval_destructor(&overloaded_property->element); FREE_VARIANT(var_result); FREE_COM(obj_prop); @@ -1889,7 +1887,6 @@ PHPAPI pval php_COM_get_property_handler(zend_property_reference *property_refer break; case OE_IS_METHOD: - pval_destructor(&overloaded_property->element); FREE_VARIANT(var_result); if (obj != obj_prop) { @@ -1904,7 +1901,10 @@ PHPAPI pval php_COM_get_property_handler(zend_property_reference *property_refer return return_value; } - pval_destructor(&overloaded_property->element); + if (obj == obj_prop) { + // not head + pval_destructor(&overloaded_property->element); + } if (V_VT(var_result) == VT_DISPATCH) { if (V_DISPATCH(var_result) == NULL) { -- 2.50.1