gdiplus: Fix memory leak in GdipSetStringFormatMeasurableCharacterRanges.

This commit is contained in:
Vincent Povirk 2009-12-24 15:14:45 -05:00 committed by Alexandre Julliard
parent ffc4a49bcb
commit 00e1e5ddd5

View file

@ -252,15 +252,19 @@ GpStatus WINGDIPAPI GdipSetStringFormatLineAlign(GpStringFormat *format,
GpStatus WINGDIPAPI GdipSetStringFormatMeasurableCharacterRanges(
GpStringFormat *format, INT rangeCount, GDIPCONST CharacterRange *ranges)
{
CharacterRange *new_ranges;
if (!(format && ranges))
return InvalidParameter;
TRACE("%p, %d, %p\n", format, rangeCount, ranges);
format->character_ranges = GdipAlloc(rangeCount * sizeof(CharacterRange));
if (!format->character_ranges)
new_ranges = GdipAlloc(rangeCount * sizeof(CharacterRange));
if (!new_ranges)
return OutOfMemory;
GdipFree(format->character_ranges);
format->character_ranges = new_ranges;
memcpy(format->character_ranges, ranges, sizeof(CharacterRange) * rangeCount);
format->range_count = rangeCount;