[2/2]dwrite: basic implementation for FontCollectionLoader registration

Aric Stewart aric at codeweavers.com
Mon Aug 4 08:18:18 CDT 2014

On 8/1/14, 12:28 PM, Piotr Caban wrote:
> On 8/1/14 12:01 PM, Aric Stewart wrote:
>> +    if (i == This->CollectionLoaderCount)
>> +    {
>> +        This->CollectionLoaderCount++;
>> +        if (This->CollectionLoaders)
>> +            This->CollectionLoaders = heap_realloc(This->CollectionLoaders, This->CollectionLoaderCount * sizeof(IDWriteFontCollectionLoader*));
>> +        else
>> +            This->CollectionLoaders = heap_alloc(This->CollectionLoaderCount * sizeof(IDWriteFontCollectionLoader*));
>> +        if (!This->CollectionLoaders)
>> +            return E_OUTOFMEMORY;
>> +    }
> There's a leak in out of memory case. Isn't it better to grow the buffer exponentially?

I do not think a given application will be registering very many of these. No experience yet but I would be surprised at more than 2. So I am not sure if exponential is the right course.  But it is an easy change.

Maybe i have been spending too much time out of C recently, but I am totally failing to see the leak. Other than the face that our loader object will be in a corrupt state, I can fix the corrupt state but I am not sure if that would be fixing the memory leak you see.


More information about the wine-devel mailing list