[PATCH v2 2/3] windows.globalization: Implement IGlobalizationPreferencesStatics::Languages.

Jacek Caban jacek at codeweavers.com
Thu Mar 25 16:46:52 CDT 2021


Hi Rémi,

It looks mostly good, but error handling nuances could be improved.

On 3/25/21 9:17 AM, Rémi Bernon wrote:
> +static HRESULT STDMETHODCALLTYPE hstring_vector_GetMany(IVectorView_HSTRING *iface,
> +        ULONG start_index, ULONG items_size, HSTRING *items, UINT *count)
> +{
> +    struct hstring_vector *impl = impl_from_IVectorView_HSTRING(iface);
> +    HRESULT hr;
> +    ULONG i;
> +
> +    TRACE("iface %p, start_index %#x, items %p, count %p.\n", iface, start_index, items, count);
> +
> +    memset(items, 0, items_size * sizeof(HSTRING *));
> +
> +    for (i = start_index; i < impl->count && i < start_index + items_size; ++i)
> +        if (FAILED(hr = WindowsDuplicateString(impl->values[i], items + i - start_index)))
> +            return hr;

This leaks previously allocated strings in error case.

> +    WindowsCreateString(locale, wcslen(locale), &hstring);

This may fail.


Thanks,
Jacek



More information about the wine-devel mailing list