wineps: fix a few HeapReAlloc()s
Dimitrie O. Paun
dpaun at rogers.com
Thu Nov 20 14:33:48 CST 2003
Huw,
I didn't dig deep enough to see if glyphList/->glyph_sent
can't be NULL at that point, but it wasn't obvious to me
that they can't. You know this part a lot better than myself,
can you please check that I'm not adding extranous uglifying
bits to the code?
ChangeLog
HeapReAlloc() does not allocate memory.
Index: dlls/wineps/glyphlist.c
===================================================================
RCS file: /var/cvs/wine/dlls/wineps/glyphlist.c,v
retrieving revision 1.8
diff -u -r1.8 glyphlist.c
--- dlls/wineps/glyphlist.c 24 Jun 2002 23:40:01 -0000 1.8
+++ dlls/wineps/glyphlist.c 20 Nov 2003 06:38:24 -0000
@@ -98,7 +98,11 @@
{
GLYPHNAME **newGlyphList;
- newGlyphList = (GLYPHNAME **) HeapReAlloc(PSDRV_Heap, 0, glyphList,
+ if (!glyphList)
+ newGlyphList = (GLYPHNAME **) HeapAlloc(PSDRV_Heap, 0,
+ (glyphListSize + GLYPHLIST_ALLOCSIZE) * sizeof(GLYPHNAME *));
+ else
+ newGlyphList = (GLYPHNAME **) HeapReAlloc(PSDRV_Heap, 0, glyphList,
(glyphListSize + GLYPHLIST_ALLOCSIZE) * sizeof(GLYPHNAME *));
if (newGlyphList == NULL)
{
Index: dlls/wineps/type1.c
===================================================================
RCS file: /var/cvs/wine/dlls/wineps/type1.c,v
retrieving revision 1.7
diff -u -r1.7 type1.c
--- dlls/wineps/type1.c 12 Nov 2003 22:42:55 -0000 1.7
+++ dlls/wineps/type1.c 20 Nov 2003 06:44:30 -0000
@@ -211,9 +211,13 @@
return TRUE;
} else {
t1->glyph_sent_size = (index / GLYPH_SENT_INC + 1) * GLYPH_SENT_INC;
- t1->glyph_sent = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
- t1->glyph_sent,
- t1->glyph_sent_size * sizeof(*(t1->glyph_sent)));
+ if (!t1->glyph_sent)
+ t1->glyph_sent = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
+ t1->glyph_sent_size * sizeof(*(t1->glyph_sent)));
+ else
+ t1->glyph_sent = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
+ t1->glyph_sent,
+ t1->glyph_sent_size * sizeof(*(t1->glyph_sent)));
}
GetObjectW(GetCurrentObject(physDev->hdc, OBJ_FONT), sizeof(lf), &lf);
Index: dlls/wineps/type42.c
===================================================================
RCS file: /var/cvs/wine/dlls/wineps/type42.c,v
retrieving revision 1.8
diff -u -r1.8 type42.c
--- dlls/wineps/type42.c 12 Nov 2003 22:42:55 -0000 1.8
+++ dlls/wineps/type42.c 20 Nov 2003 06:46:28 -0000
@@ -303,9 +303,13 @@
return TRUE;
} else {
t42->glyph_sent_size = (index / GLYPH_SENT_INC + 1) * GLYPH_SENT_INC;
- t42->glyph_sent = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
- t42->glyph_sent,
- t42->glyph_sent_size * sizeof(*(t42->glyph_sent)));
+ if (!t42->glyph_sent)
+ t42->glyph_sent = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
+ t42->glyph_sent_size * sizeof(*(t42->glyph_sent)));
+ else
+ t42->glyph_sent = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
+ t42->glyph_sent,
+ t42->glyph_sent_size * sizeof(*(t42->glyph_sent)));
}
buf = HeapAlloc(GetProcessHeap(), 0, sizeof(glyph_def) +
--
Dimi.
More information about the wine-patches
mailing list