cvs: php4 /ext/com COM.c

From: Date: Thu, 03 May 2001 11:20:30 +0000
Subject: cvs: php4 /ext/com COM.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-5502@lists.php.net to get a copy of this message
phanto Thu May 3 04:20:30 2001 EDT Modified files: /php4/ext/com COM.c Log: fixed leaky code #cleaned up dirty hack from yesterday Index: php4/ext/com/COM.c diff -u php4/ext/com/COM.c:1.9 php4/ext/com/COM.c:1.10 --- php4/ext/com/COM.c:1.9 Wed May 2 14:51:18 2001 +++ php4/ext/com/COM.c Thu May 3 04:20:28 2001 @@ -672,7 +672,8 @@ obj_prop = (i_dispatch *) emalloc(sizeof(i_dispatch)); php_COM_clone(obj_prop, obj, FALSE); - + + //leak !!! var_result = (VARIANT *) emalloc(sizeof(VARIANT)); var_result->vt = VT_DISPATCH; var_result->pdispVal = obj_prop->i.dispatch; @@ -705,7 +706,6 @@ break; case OE_IS_METHOD: -// var_result->pdispVal = obj_prop->i.dispatch; efree(obj_prop); return var_result; break; @@ -832,25 +832,28 @@ i_dispatch *obj; pval **arguments; int arg_count = ZEND_NUM_ARGS(); - VARIANTARG var_result; - - var_result.vt = VT_EMPTY; + VARIANT *var_result; obj = (i_dispatch *) emalloc(sizeof(i_dispatch)); - php_COM_set(obj, _php_COM_get_property_handler(property_reference)->pdispVal, TRUE); + + var_result = _php_COM_get_property_handler(property_reference); + php_COM_set(obj, var_result->pdispVal, TRUE); + + var_result->vt = VT_EMPTY; arguments = (pval **) emalloc(sizeof(pval *)*arg_count); getParametersArray(ht, arg_count, arguments); - - if (do_COM_invoke(obj , &function_name->element, &var_result, arguments, arg_count)==FAILURE) { + + if (do_COM_invoke(obj , &function_name->element, var_result, arguments, arg_count)==FAILURE) { RETVAL_FALSE; } pval_destructor(&function_name->element); php_COM_release(obj); + php_variant_to_pval(var_result, return_value, 0, codepage); efree(obj); + efree(var_result); efree(arguments); - php_variant_to_pval(&var_result, return_value, 0, codepage); } for (overloaded_property = (zend_overloaded_element *) zend_llist_get_first(property_reference->elements_list);

« previous php.cvs (#5502) next »