From 934e19107de20613cd9bb909d3806d19ce06ace8 Mon Sep 17 00:00:00 2001 From: Rob Richards Date: Sun, 27 Nov 2005 12:19:04 +0000 Subject: [PATCH] Fixed bug #35316 (Application exception trying to create COM object) --- ext/com_dotnet/com_handlers.c | 1 + ext/com_dotnet/com_misc.c | 2 ++ ext/com_dotnet/com_saproxy.c | 2 +- ext/com_dotnet/php_com_dotnet_internal.h | 2 ++ 4 files changed, 6 insertions(+), 1 deletion(-) diff --git a/ext/com_dotnet/com_handlers.c b/ext/com_dotnet/com_handlers.c index 1564924125..374f131d10 100644 --- a/ext/com_dotnet/com_handlers.c +++ b/ext/com_dotnet/com_handlers.c @@ -677,6 +677,7 @@ zend_object_value php_com_object_new(zend_class_entry *ce TSRMLS_DC) VariantInit(&obj->v); obj->code_page = CP_ACP; obj->ce = ce; + obj->zo.ce = ce; retval.handle = zend_objects_store_put(obj, NULL, php_com_object_free_storage, php_com_object_clone TSRMLS_CC); retval.handlers = &php_com_object_handlers; diff --git a/ext/com_dotnet/com_misc.c b/ext/com_dotnet/com_misc.c index bee9c7dcf8..0d99895a7d 100644 --- a/ext/com_dotnet/com_misc.c +++ b/ext/com_dotnet/com_misc.c @@ -51,6 +51,7 @@ PHPAPI void php_com_wrap_dispatch(zval *z, IDispatch *disp, memset(obj, 0, sizeof(*obj)); obj->code_page = codepage; obj->ce = php_com_variant_class_entry; + obj->zo.ce = php_com_variant_class_entry; VariantInit(&obj->v); V_VT(&obj->v) = VT_DISPATCH; @@ -73,6 +74,7 @@ PHPAPI void php_com_wrap_variant(zval *z, VARIANT *v, memset(obj, 0, sizeof(*obj)); obj->code_page = codepage; obj->ce = php_com_variant_class_entry; + obj->zo.ce = php_com_variant_class_entry; VariantInit(&obj->v); VariantCopyInd(&obj->v, v); diff --git a/ext/com_dotnet/com_saproxy.c b/ext/com_dotnet/com_saproxy.c index 15b217fa68..d988875273 100644 --- a/ext/com_dotnet/com_saproxy.c +++ b/ext/com_dotnet/com_saproxy.c @@ -323,7 +323,7 @@ static HashTable *saproxy_properties_get(zval *object TSRMLS_DC) return NULL; } -static union _zend_function *saproxy_method_get(zval *object, char *name, int len TSRMLS_DC) +static union _zend_function *saproxy_method_get(zval **object, char *name, int len TSRMLS_DC) { /* no methods */ return NULL; diff --git a/ext/com_dotnet/php_com_dotnet_internal.h b/ext/com_dotnet/php_com_dotnet_internal.h index 35b0410f4e..19fc806233 100644 --- a/ext/com_dotnet/php_com_dotnet_internal.h +++ b/ext/com_dotnet/php_com_dotnet_internal.h @@ -33,6 +33,8 @@ #undef php_win_err typedef struct _php_com_dotnet_object { + zend_object zo; + VARIANT v; ITypeInfo *typeinfo; -- 2.40.0