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