]> granicus.if.org Git - php/commitdiff
Fixed bug #35316 (Application exception trying to create COM object)
authorRob Richards <rrichards@php.net>
Sun, 27 Nov 2005 12:19:04 +0000 (12:19 +0000)
committerRob Richards <rrichards@php.net>
Sun, 27 Nov 2005 12:19:04 +0000 (12:19 +0000)
ext/com_dotnet/com_handlers.c
ext/com_dotnet/com_misc.c
ext/com_dotnet/com_saproxy.c
ext/com_dotnet/php_com_dotnet_internal.h

index 1564924125d001ab298f456f22a23319e7cd2bbe..374f131d10065be0ca7c5dab6217c6bf0267c280 100644 (file)
@@ -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;
index bee9c7dcf836cb2bde7d3f1ee08d97f15ad1ee1a..0d99895a7d3747205655903f8f59bd7db05a97d0 100644 (file)
@@ -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);
index 15b217fa68deee5abb0609f6cc8c7d7fa394a0fb..d988875273dadd3970480fae847a2cd33c0cb283 100644 (file)
@@ -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;
index 35b0410f4e038fd230a40ed479bd9affcbad5d38..19fc8062334291dd85b8ec9233dd3898ce4b7b9a 100644 (file)
@@ -33,6 +33,8 @@
 #undef php_win_err
 
 typedef struct _php_com_dotnet_object {
+       zend_object zo;
+
        VARIANT v;
 
        ITypeInfo *typeinfo;