[PATCH] include: Add and use a global heap_strdupW() helper

Michael Stefaniuc mstefani at winehq.org
Mon Feb 12 14:28:27 CST 2018


On 02/12/2018 11:23 AM, Alexandre Julliard wrote:
> Michael Stefaniuc <mstefani at winehq.org> writes:
> 
>> +static inline WCHAR *heap_strdupW(const WCHAR *str)
>> +{
>> +    WCHAR *dst;
>> +    SIZE_T len;
>> +
>> +    if(!str)
>> +        return NULL;
>> +
>> +    len = (lstrlenW(str) + 1) * sizeof(*str);
>> +    dst = heap_alloc(len);
>> +    if (dst)
>> +        memcpy(dst, str, len);
>> +
>> +    return dst;
>> +}
> 
> I'm not sure the NULL check is a good idea.
And I disagree with your disagreement!

I just sent in
   [PATCH] wininet: Avoid passing NULL to heap_strdupW()
to show how ugly that would make the code. And that's the stuff that
just crashed due to the tests.


If you want the NULL check removed for the other strdup variants,
especially the heap_strdupAW(), that would uglify the code even more as
that is used in a ton of A functions that just forward to the W functions.


> (just when you thought this one would not be controversial ;-)


bye
	michael



More information about the wine-devel mailing list