]> granicus.if.org Git - php/commitdiff
MFH: Fix for Bug #29490 from Michael Sisolak
authorWez Furlong <wez@php.net>
Sat, 7 Aug 2004 21:01:43 +0000 (21:01 +0000)
committerWez Furlong <wez@php.net>
Sat, 7 Aug 2004 21:01:43 +0000 (21:01 +0000)
ext/com_dotnet/com_dotnet.c

index 7199b91aa72864eda55469a9aa4b8cd44b1c7b91..ce3c60974250543813162c3bc84b15780966c43f 100644 (file)
@@ -102,6 +102,7 @@ PHP_FUNCTION(com_dotnet_create_instance)
        struct dotnet_runtime_stuff *stuff;
        IObjectHandle *handle;
        DISPPARAMS params;
+       OLECHAR *olestring;
        VARIANT vargs[2];
        VARIANT retval;
        HRESULT hr;
@@ -138,10 +139,14 @@ PHP_FUNCTION(com_dotnet_create_instance)
        VariantInit(&retval);
 
        V_VT(&vargs[0]) = VT_BSTR;
-       V_BSTR(&vargs[0]) = php_com_string_to_olestring(datatype_name, datatype_name_len, obj->code_page TSRMLS_CC);
+       olestring = php_com_string_to_olestring(datatype_name, datatype_name_len, obj->code_page TSRMLS_CC);
+       V_BSTR(&vargs[0]) = SysAllocStringByteLen((char*)olestring, datatype_name_len * sizeof(OLECHAR));
+       efree(olestring);
 
        V_VT(&vargs[1]) = VT_BSTR;
-       V_BSTR(&vargs[1]) = php_com_string_to_olestring(assembly_name, assembly_name_len, obj->code_page TSRMLS_CC);
+       olestring = php_com_string_to_olestring(assembly_name, assembly_name_len, obj->code_page TSRMLS_CC);
+       V_BSTR(&vargs[1]) = SysAllocStringByteLen((char*)olestring, assembly_name_len * sizeof(OLECHAR));
+       efree(olestring);
 
        hr = IDispatch_Invoke(stuff->dotnet_domain, stuff->create_instance, &IID_NULL, LOCALE_SYSTEM_DEFAULT,
                DISPATCH_METHOD, &params, &retval, NULL, NULL);