[3/3] msxml3/domdoc: Add support for VT_ARRAY|VT_UI1 in domdoc_load(). (try 2)
Nikolay Sivov
bunglehead at gmail.com
Wed May 4 18:04:59 CDT 2011
On 5/5/2011 00:38, Adam Martinson wrote:
>
> Fixes bugs 14864 + 16453.
> ---
> dlls/msxml3/domdoc.c | 27 +++++++++++++
> dlls/msxml3/tests/domdoc.c | 94
> +++++++++++++++++++++++++++++++++++++++++++-
> 2 files changed, 120 insertions(+), 1 deletions(-)
> + case VT_ARRAY|VT_UI1:
> + {
> + SAFEARRAY *psa = V_ARRAY(&source);
> + xmlChar *str;
> + LONG len;
> + UINT dim = SafeArrayGetDim(psa);
> +
> + switch (dim)
> + {
> + case 0:
> + ERR("SAFEARRAY == NULL\n");
> + hr = E_INVALIDARG;
> + break;
> + case 1:
> + /* Only takes UTF8 strings.
> + * NOT NULL-terminated. */
> + SafeArrayAccessData(psa, (void**)&str);
> + SafeArrayGetUBound(psa, 1,&len);
> + hr = load_utf8(This, str, ++len, isSuccessful);
> + SafeArrayUnaccessData(psa);
> + break;
> + default:
> + FIXME("unhandled SAFEARRAY dim: %d\n", dim);
> + hr = E_NOTIMPL;
> + }
> + }
This could be simplified. SafeArrayGetUBound will fail for case 0 for
example, and unhandled dimension should be WARN, IMO.
More information about the wine-devel
mailing list