[2/2] msxml3/domdoc: Add support for VT_ARRAY|VT_UI1 in domdoc_load().

Adam Martinson amartinson at codeweavers.com
Tue May 3 15:50:06 CDT 2011


On 05/03/2011 09:43 AM, Adam Martinson wrote:
> On 05/03/2011 01:45 AM, Nikolay Sivov wrote:
>> On 5/3/2011 08:07, Adam Martinson wrote:
>>>
>>> Fixes bug 14864.
>>> ---
>>>  dlls/msxml3/domdoc.c |  255 
>>> ++++++++++++++++++++++++++------------------------
>>>  1 files changed, 134 insertions(+), 121 deletions(-)
>>>
>>> +    case VT_ARRAY|VT_UI1:
>>> +        {
>>> +            SAFEARRAY* psa;
>>> +            BSTR bstr;
>>> +            psa = V_ARRAY(&source);
>>> +            bstr = bstr_from_xmlChar(psa->pvData);
>>> +            hr = domdoc_loadXML(iface, bstr, isSuccessful);
>>> +            SysFreeString(bstr);
>>> +            return hr;
>>> +        }
>>> +        break;
>> Is it really supposed to be utf8 array? Or this will work cause 
>> one-byte chars match utf8?
>>
>> Also I don't like this method dependency, I think the proper way is 
>> to call IXMLDOMDocument3_loadXML(iface...) here.
>> Or another way to avoid call through vtable - introduce something 
>> called domdoc_load_xml(This...) and use it in both places,
>> but I think it's not worth it.
>
> It was the Google Chrome installer, I'm not sure if it's supposed to 
> be UTF8 or not, all of the characters it used were ASCII.  I'm 
> assuming it's supposed to be UTF8 due to it being VT_UI8 instead of 
> VT_I8, but I can't say for sure.  I remember another place where it 
> would have been useful to be able to call domdoc_loadXML() with a UTF8 
> string to avoid converting to BSTR and back, I think in the schema 
> stuff.  It would be nice to have an internal function to do that, then 
> domdoc_loadXML() can just wrap it, but I think that can be a separate 
> patch.
>
Err, VT_I1/VT_UI1, not VT_I8/VT_UI8.




More information about the wine-devel mailing list