Huw Davies : wineps: Move some allocations to the process heap.

Alexandre Julliard julliard at winehq.org
Wed Apr 4 13:07:06 CDT 2012


Module: wine
Branch: master
Commit: e31cfb0be18a33cb6b3b33c47cabb33f9659e3f5
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=e31cfb0be18a33cb6b3b33c47cabb33f9659e3f5

Author: Huw Davies <huw at codeweavers.com>
Date:   Wed Apr  4 15:03:29 2012 +0100

wineps: Move some allocations to the process heap.

---

 dlls/wineps.drv/ps.c |   63 +++++++++++++++++++++++++------------------------
 1 files changed, 32 insertions(+), 31 deletions(-)

diff --git a/dlls/wineps.drv/ps.c b/dlls/wineps.drv/ps.c
index 8b0d576..27a2cc1 100644
--- a/dlls/wineps.drv/ps.c
+++ b/dlls/wineps.drv/ps.c
@@ -221,7 +221,7 @@ DWORD PSDRV_WriteSpool(PHYSDEV dev, LPCSTR lpData, DWORD cch)
 static INT PSDRV_WriteFeature(PHYSDEV dev, LPCSTR feature, LPCSTR value, LPCSTR invocation)
 {
 
-    char *buf = HeapAlloc( PSDRV_Heap, 0, sizeof(psbeginfeature) +
+    char *buf = HeapAlloc( GetProcessHeap(), 0, sizeof(psbeginfeature) +
                            strlen(feature) + strlen(value));
 
     sprintf(buf, psbeginfeature, feature, value);
@@ -229,7 +229,7 @@ static INT PSDRV_WriteFeature(PHYSDEV dev, LPCSTR feature, LPCSTR value, LPCSTR
     write_spool( dev, invocation, strlen(invocation) );
     write_spool( dev, psendfeature, strlen(psendfeature) );
 
-    HeapFree( PSDRV_Heap, 0, buf );
+    HeapFree( GetProcessHeap(), 0, buf );
     return 1;
 }
 
@@ -306,11 +306,12 @@ INT PSDRV_WriteHeader( PHYSDEV dev, LPCWSTR title )
     DUPLEX *duplex;
     int win_duplex;
     int llx, lly, urx, ury;
+    int ret, len;
 
     TRACE("%s\n", debugstr_w(title));
 
     escaped_title = escape_title(title);
-    buf = HeapAlloc( PSDRV_Heap, 0, sizeof(psheader) +
+    buf = HeapAlloc( GetProcessHeap(), 0, sizeof(psheader) +
                      strlen(escaped_title) + 30 );
     if(!buf) {
         WARN("HeapAlloc failed\n");
@@ -328,12 +329,15 @@ INT PSDRV_WriteHeader( PHYSDEV dev, LPCWSTR title )
     sprintf(buf, psheader, escaped_title, llx, lly, urx, ury);
 
     HeapFree(GetProcessHeap(), 0, escaped_title);
-    if( write_spool( dev, buf, strlen(buf) ) != strlen(buf) ) {
+
+    len = strlen( buf );
+    ret = write_spool( dev, buf, len );
+    HeapFree( GetProcessHeap(), 0, buf );
+    if (ret != len)
+    {
         WARN("WriteSpool error\n");
-	HeapFree( PSDRV_Heap, 0, buf );
-	return 0;
+        return 0;
     }
-    HeapFree( PSDRV_Heap, 0, buf );
 
     write_spool( dev, psbeginprolog, strlen(psbeginprolog) );
     write_spool( dev, psprolog, strlen(psprolog) );
@@ -389,8 +393,9 @@ INT PSDRV_WriteFooter( PHYSDEV dev )
 {
     PSDRV_PDEVICE *physDev = get_psdrv_dev( dev );
     char *buf;
+    int ret = 1;
 
-    buf = HeapAlloc( PSDRV_Heap, 0, sizeof(psfooter) + 100 );
+    buf = HeapAlloc( GetProcessHeap(), 0, sizeof(psfooter) + 100 );
     if(!buf) {
         WARN("HeapAlloc failed\n");
         return 0;
@@ -400,11 +405,10 @@ INT PSDRV_WriteFooter( PHYSDEV dev )
 
     if( write_spool( dev, buf, strlen(buf) ) != strlen(buf) ) {
         WARN("WriteSpool error\n");
-	HeapFree( PSDRV_Heap, 0, buf );
-	return 0;
+        ret = 0;
     }
-    HeapFree( PSDRV_Heap, 0, buf );
-    return 1;
+    HeapFree( GetProcessHeap(), 0, buf );
+    return ret;
 }
 
 
@@ -427,10 +431,11 @@ INT PSDRV_WriteNewPage( PHYSDEV dev )
     char *buf;
     char name[100];
     signed int xtrans, ytrans, rotation;
+    int ret = 1;
 
     sprintf(name, "%d", physDev->job.PageNo);
 
-    buf = HeapAlloc( PSDRV_Heap, 0, sizeof(psnewpage) + 200 );
+    buf = HeapAlloc( GetProcessHeap(), 0, sizeof(psnewpage) + 200 );
     if(!buf) {
         WARN("HeapAlloc failed\n");
         return 0;
@@ -458,11 +463,10 @@ INT PSDRV_WriteNewPage( PHYSDEV dev )
 
     if( write_spool( dev, buf, strlen(buf) ) != strlen(buf) ) {
         WARN("WriteSpool error\n");
-	HeapFree( PSDRV_Heap, 0, buf );
-	return 0;
+        ret = 0;
     }
-    HeapFree( PSDRV_Heap, 0, buf );
-    return 1;
+    HeapFree( GetProcessHeap(), 0, buf );
+    return ret;
 }
 
 
@@ -525,8 +529,7 @@ BOOL PSDRV_WriteSetFont(PHYSDEV dev, const char *name, matrix size, INT escapeme
 {
     char *buf;
 
-    buf = HeapAlloc( PSDRV_Heap, 0, sizeof(pssetfont) +
-			     strlen(name) + 40);
+    buf = HeapAlloc( GetProcessHeap(), 0, sizeof(pssetfont) + strlen(name) + 40 );
 
     if(!buf) {
         WARN("HeapAlloc failed\n");
@@ -536,7 +539,7 @@ BOOL PSDRV_WriteSetFont(PHYSDEV dev, const char *name, matrix size, INT escapeme
     sprintf(buf, pssetfont, name, size.xx, size.xy, size.yx, size.yy, -escapement);
 
     PSDRV_WriteSpool(dev, buf, strlen(buf));
-    HeapFree(PSDRV_Heap, 0, buf);
+    HeapFree( GetProcessHeap(), 0, buf );
     return TRUE;
 }
 
@@ -678,7 +681,7 @@ BOOL PSDRV_WriteIndexColorSpaceEnd(PHYSDEV dev)
 
 static BOOL PSDRV_WriteRGB(PHYSDEV dev, COLORREF *map, int number)
 {
-    char *buf = HeapAlloc(PSDRV_Heap, 0, number * 7 + 1), *ptr;
+    char *buf = HeapAlloc( GetProcessHeap(), 0, number * 7 + 1 ), *ptr;
     int i;
 
     ptr = buf;
@@ -689,13 +692,13 @@ static BOOL PSDRV_WriteRGB(PHYSDEV dev, COLORREF *map, int number)
 	ptr += 7;
     }
     PSDRV_WriteSpool(dev, buf, number * 7);
-    HeapFree(PSDRV_Heap, 0, buf);
+    HeapFree( GetProcessHeap(), 0, buf );
     return TRUE;
 }
 
 BOOL PSDRV_WriteRGBQUAD(PHYSDEV dev, const RGBQUAD *rgb, int number)
 {
-    char *buf = HeapAlloc(PSDRV_Heap, 0, number * 7 + 1), *ptr;
+    char *buf = HeapAlloc( GetProcessHeap(), 0, number * 7 + 1 ), *ptr;
     int i;
 
     ptr = buf;
@@ -704,7 +707,7 @@ BOOL PSDRV_WriteRGBQUAD(PHYSDEV dev, const RGBQUAD *rgb, int number)
                        ((i & 0x7) == 0x7) || (i == number - 1) ? '\n' : ' ');
 
     PSDRV_WriteSpool(dev, buf, ptr - buf);
-    HeapFree(PSDRV_Heap, 0, buf);
+    HeapFree( GetProcessHeap(), 0, buf );
     return TRUE;
 }
 
@@ -720,8 +723,7 @@ static BOOL PSDRV_WriteImageDict(PHYSDEV dev, WORD depth,
 
     static const char end[] = " /DataSource currentfile /ASCII85Decode filter /RunLengthDecode filter\n>>\n";
     static const char endbits[] = " /DataSource <%s>\n>>\n";
-
-    char *buf = HeapAlloc(PSDRV_Heap, 0, 1000);
+    char buf[1000];
 
     if (top_down)
         sprintf(buf, start, widthSrc, heightSrc,
@@ -759,7 +761,6 @@ static BOOL PSDRV_WriteImageDict(PHYSDEV dev, WORD depth,
         PSDRV_WriteSpool(dev, buf, strlen(buf));
     }
 
-    HeapFree(PSDRV_Heap, 0, buf);
     return TRUE;
 }
 
@@ -785,7 +786,7 @@ BOOL PSDRV_WriteImage(PHYSDEV dev, WORD depth, INT xDst, INT yDst,
 
 BOOL PSDRV_WriteBytes(PHYSDEV dev, const BYTE *bytes, DWORD number)
 {
-    char *buf = HeapAlloc(PSDRV_Heap, 0, number * 3 + 1);
+    char *buf = HeapAlloc( GetProcessHeap(), 0, number * 3 + 1 );
     char *ptr;
     unsigned int i;
 
@@ -800,7 +801,7 @@ BOOL PSDRV_WriteBytes(PHYSDEV dev, const BYTE *bytes, DWORD number)
         }
     }
     PSDRV_WriteSpool(dev, buf, ptr - buf);
-    HeapFree(PSDRV_Heap, 0, buf);
+    HeapFree( GetProcessHeap(), 0, buf );
     return TRUE;
 }
 
@@ -873,7 +874,7 @@ BOOL PSDRV_WriteDIBPatternDict(PHYSDEV dev, const BITMAPINFO *bmi, BYTE *bits, U
     w = bmi->bmiHeader.biWidth & ~0x7;
     h = bmi->bmiHeader.biHeight & ~0x7;
 
-    buf = HeapAlloc(PSDRV_Heap, 0, sizeof(do_pattern) + 100);
+    buf = HeapAlloc( GetProcessHeap(), 0, sizeof(do_pattern) + 100 );
     ptr = buf;
     for(y = h-1; y >= 0; y--) {
         for(x = 0; x < w/8; x++) {
@@ -897,6 +898,6 @@ BOOL PSDRV_WriteDIBPatternDict(PHYSDEV dev, const BITMAPINFO *bmi, BYTE *bits, U
     h_mult = (physDev->logPixelsY + 150) / 300;
     sprintf(buf, do_pattern, w * w_mult, h * h_mult, w * w_mult, h * h_mult, w * w_mult, h * h_mult);
     PSDRV_WriteSpool(dev,  buf, strlen(buf));
-    HeapFree(PSDRV_Heap, 0, buf);
+    HeapFree( GetProcessHeap(), 0, buf );
     return TRUE;
 }




More information about the wine-cvs mailing list