cvs: php-src /ext/com_dotnet com_handlers.c com_wrapper.c

From: Date: Thu, 29 Jul 2004 14:06:24 +0000
Subject: cvs: php-src /ext/com_dotnet com_handlers.c com_wrapper.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-28058@lists.php.net to get a copy of this message
wez Thu Jul 29 10:06:24 2004 EDT Modified files: /php-src/ext/com_dotnet com_handlers.c com_wrapper.c Log: Fix my favourite call user func mistake http://cvs.php.net/diff.php/php-src/ext/com_dotnet/com_handlers.c?r1=1.25&r2=1.26&ty=u Index: php-src/ext/com_dotnet/com_handlers.c diff -u php-src/ext/com_dotnet/com_handlers.c:1.25 php-src/ext/com_dotnet/com_handlers.c:1.26 --- php-src/ext/com_dotnet/com_handlers.c:1.25 Tue Jul 27 18:17:00 2004 +++ php-src/ext/com_dotnet/com_handlers.c Thu Jul 29 10:06:24 2004 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: com_handlers.c,v 1.25 2004/07/27 22:17:00 wez Exp $ */ +/* $Id: com_handlers.c,v 1.26 2004/07/29 14:06:24 wez Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -321,7 +321,7 @@ f.handler = PHP_FN(com_method_handler); fptr = &f; - + if (obj->typeinfo) { /* look for byref params */ ITypeComp *comp; @@ -524,7 +524,7 @@ php_com_dotnet_object *obj; VARIANT v; VARTYPE vt = VT_EMPTY; - + if (should_free) { zval_dtor(writeobj); } @@ -535,7 +535,6 @@ VariantInit(&v); if (V_VT(&obj->v) == VT_DISPATCH) { - if (!obj->have_default_bind && !com_get_default_binding(obj TSRMLS_CC)) { return FAILURE; } @@ -561,9 +560,11 @@ case IS_STRING: vt = VT_BSTR; break; + default: + ; } - if (vt != VT_EMPTY) { + if (vt != VT_EMPTY && vt != V_VT(&v)) { VariantChangeType(&v, &v, 0, vt); } http://cvs.php.net/diff.php/php-src/ext/com_dotnet/com_wrapper.c?r1=1.6&r2=1.7&ty=u Index: php-src/ext/com_dotnet/com_wrapper.c diff -u php-src/ext/com_dotnet/com_wrapper.c:1.6 php-src/ext/com_dotnet/com_wrapper.c:1.7 --- php-src/ext/com_dotnet/com_wrapper.c:1.6 Thu Jul 29 02:19:27 2004 +++ php-src/ext/com_dotnet/com_wrapper.c Thu Jul 29 10:06:24 2004 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: com_wrapper.c,v 1.6 2004/07/29 06:19:27 wez Exp $ */ +/* $Id: com_wrapper.c,v 1.7 2004/07/29 14:06:24 wez Exp $ */ /* This module exports a PHP object as a COM object by wrapping it * using IDispatchEx */ @@ -90,7 +90,7 @@ php_dispatchex *disp = (php_dispatchex*)This; \ trace(" PHP:%s %s\n", Z_OBJCE_P(disp->object)->name, methname); \ if (tsrm_thread_id() != disp->engine_thread) \ - return E_UNEXPECTED; + return RPC_E_WRONG_THREAD; static HRESULT STDMETHODCALLTYPE disp_queryinterface( @@ -287,7 +287,8 @@ ALLOC_INIT_ZVAL(zarg); php_com_wrap_variant(zarg, arg, COMG(code_page) TSRMLS_CC); - params[i] = &zarg; + params[i] = (zval**)emalloc(sizeof(zval**)); + *params[i] = zarg; } } @@ -320,8 +321,10 @@ /* release arguments */ if (params) { - for (i = 0; i < pdp->cArgs; i++) + for (i = 0; i < pdp->cArgs; i++) { zval_ptr_dtor(params[i]); + efree(params[i]); + } efree(params); } @@ -625,8 +628,9 @@ { php_dispatchex *disp = NULL; - if (Z_TYPE_P(val) != IS_OBJECT) + if (Z_TYPE_P(val) != IS_OBJECT) { return NULL; + } if (php_com_is_valid_object(val TSRMLS_CC)) { /* pass back its IDispatch directly */

« previous php.cvs (#28058) next »