diff options
| author | Rob Richards <rrichards@php.net> | 2006-01-26 11:17:34 +0000 |
|---|---|---|
| committer | Rob Richards <rrichards@php.net> | 2006-01-26 11:17:34 +0000 |
| commit | c53b926a35cab9cf385de212c7c7d48bc512b013 (patch) | |
| tree | bcb56aa3077a32b1f3d96a9d3a74c3794b7caeff /ext/com_dotnet/com_handlers.c | |
| parent | cb4bb6e3898e04c7ec0733f4a0a5d66b2532188f (diff) | |
| download | php-git-c53b926a35cab9cf385de212c7c7d48bc512b013.tar.gz | |
Fix bug #35954 (Fatal com_exception casting object)
Diffstat (limited to 'ext/com_dotnet/com_handlers.c')
| -rw-r--r-- | ext/com_dotnet/com_handlers.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/ext/com_dotnet/com_handlers.c b/ext/com_dotnet/com_handlers.c index 7ecc90e4c7..0fb3787c88 100644 --- a/ext/com_dotnet/com_handlers.c +++ b/ext/com_dotnet/com_handlers.c @@ -101,7 +101,7 @@ static zval *com_read_dimension(zval *object, zval *offset, int type TSRMLS_DC) VariantInit(&v); if (SUCCESS == php_com_do_invoke_by_id(obj, DISPID_VALUE, - DISPATCH_METHOD|DISPATCH_PROPERTYGET, &v, 1, &offset TSRMLS_CC)) { + DISPATCH_METHOD|DISPATCH_PROPERTYGET, &v, 1, &offset, 0 TSRMLS_CC)) { php_com_zval_from_variant(return_value, &v, obj->code_page TSRMLS_CC); VariantClear(&v); } @@ -140,7 +140,7 @@ static void com_write_dimension(zval *object, zval *offset, zval *value TSRMLS_D VariantInit(&v); if (SUCCESS == php_com_do_invoke_by_id(obj, DISPID_VALUE, - DISPATCH_METHOD|DISPATCH_PROPERTYPUT, &v, 2, args TSRMLS_CC)) { + DISPATCH_METHOD|DISPATCH_PROPERTYPUT, &v, 2, args, 0 TSRMLS_CC)) { VariantClear(&v); } } else if (V_ISARRAY(&obj->v)) { @@ -504,8 +504,8 @@ static int com_object_cast(zval *readobj, zval *writeobj, int type, int should_f if (V_VT(&obj->v) == VT_DISPATCH) { if (FAILURE == php_com_do_invoke_by_id(obj, DISPID_VALUE, - DISPATCH_METHOD|DISPATCH_PROPERTYGET, &v, 0, NULL TSRMLS_CC)) { - return FAILURE; + DISPATCH_METHOD|DISPATCH_PROPERTYGET, &v, 0, NULL, 1 TSRMLS_CC)) { + VariantCopy(&v, &obj->v); } } else { VariantCopy(&v, &obj->v); |
