wez Wed Dec 22 20:10:48 2004 EDT
Modified files: (Branch: PHP_4_3)
/php-src/ext/com COM.c
Log:
Black magic bad.
This will probably fixed reported COM problems (multiple bug #s)
http://cvs.php.net/diff.php/php-src/ext/com/COM.c?r1=1.90.2.10&r2=1.90.2.11&ty=u
Index: php-src/ext/com/COM.c
diff -u php-src/ext/com/COM.c:1.90.2.10 php-src/ext/com/COM.c:1.90.2.11
--- php-src/ext/com/COM.c:1.90.2.10 Tue Apr 27 13:34:05 2004
+++ php-src/ext/com/COM.c Wed Dec 22 20:10:48 2004
@@ -18,7 +18,7 @@
| Wez Furlong <[EMAIL PROTECTED]> |
+----------------------------------------------------------------------+
*/
-/* $Id: COM.c,v 1.90.2.10 2004/04/27 17:34:05 iliaa Exp $ */
+/* $Id: COM.c,v 1.90.2.11 2004/12/23 01:10:48 wez Exp $ */
/*
* This module implements support for COM components that support the IDispatch
* interface. Both local (COM) and remote (DCOM) components can be accessed.
@@ -1972,15 +1972,17 @@
int type;
if (zend_llist_count(property_reference->elements_list)==1
- && !strcmp(Z_STRVAL(function_name->element), "com")) {
+ && !strcmp(Z_STRVAL(function_name->element), "com")) {
+ zval *tmp;
+
/* constructor */
PHP_FN(com_load)(INTERNAL_FUNCTION_PARAM_PASSTHRU);
- /* free instance created by 'new' */
- zval_dtor(object);
- /* and override it with the instance created by 'com_load()' */
- *object = *return_value;
- INIT_ZVAL(*return_value);
+ zend_hash_index_find(Z_OBJPROP_P(return_value), 0,
(void**)&handle);
+ zend_list_addref(Z_RESVAL_PP(handle));
+ MAKE_STD_ZVAL(tmp);
+ ZVAL_RESOURCE(tmp, Z_RESVAL_PP(handle));
+ zend_hash_index_update(Z_OBJPROP_P(object), 0, &tmp,
sizeof(tmp), NULL);
zval_dtor(&function_name->element);
return;
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php