Alexandre Julliard : include: Get rid of heap.h.

Alexandre Julliard julliard at wine.codeweavers.com
Fri Nov 17 11:49:06 CST 2006


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

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Fri Nov 17 15:29:40 2006 +0100

include: Get rid of heap.h.

---

 dlls/wineps.drv/escape.c |   37 ++++++++++++++++++++++++++-----------
 dlls/wineps.drv/init.c   |   10 +++++++---
 dlls/winspool.drv/info.c |   23 +++++++++++++++++------
 include/heap.h           |   46 ----------------------------------------------
 4 files changed, 50 insertions(+), 66 deletions(-)

diff --git a/dlls/wineps.drv/escape.c b/dlls/wineps.drv/escape.c
index 3572084..dcc972e 100644
--- a/dlls/wineps.drv/escape.c
+++ b/dlls/wineps.drv/escape.c
@@ -28,7 +28,6 @@
 #include "psdrv.h"
 #include "wine/debug.h"
 #include "winspool.h"
-#include "heap.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(psdrv);
 
@@ -434,22 +433,38 @@ INT PSDRV_StartDocA( PSDRV_PDEVICE *phys
 INT PSDRV_StartDoc( PSDRV_PDEVICE *physDev, const DOCINFOW *doc )
 {
     DOCINFOA docA;
-    INT ret;
+    INT ret, len;
+    LPSTR docname = NULL, output = NULL, datatype = NULL;
 
     docA.cbSize = doc->cbSize;
-    docA.lpszDocName = doc->lpszDocName ?
-      HEAP_strdupWtoA( GetProcessHeap(), 0, doc->lpszDocName ) : NULL;
-    docA.lpszOutput = doc->lpszOutput ?
-      HEAP_strdupWtoA( GetProcessHeap(), 0, doc->lpszOutput ) : NULL;
-    docA.lpszDatatype = doc->lpszDatatype ?
-      HEAP_strdupWtoA( GetProcessHeap(), 0, doc->lpszDatatype ) : NULL;
+    if (doc->lpszDocName)
+    {
+        len = WideCharToMultiByte( CP_ACP, 0, doc->lpszDocName, -1, NULL, 0, NULL, NULL );
+        if ((docname = HeapAlloc( GetProcessHeap(), 0, len )))
+            WideCharToMultiByte( CP_ACP, 0, doc->lpszDocName, -1, docname, len, NULL, NULL );
+    }
+    if (doc->lpszOutput)
+    {
+        len = WideCharToMultiByte( CP_ACP, 0, doc->lpszOutput, -1, NULL, 0, NULL, NULL );
+        if ((output = HeapAlloc( GetProcessHeap(), 0, len )))
+            WideCharToMultiByte( CP_ACP, 0, doc->lpszOutput, -1, output, len, NULL, NULL );
+    }
+    if (doc->lpszDatatype)
+    {
+        len = WideCharToMultiByte( CP_ACP, 0, doc->lpszDatatype, -1, NULL, 0, NULL, NULL );
+        if ((datatype = HeapAlloc( GetProcessHeap(), 0, len )))
+            WideCharToMultiByte( CP_ACP, 0, doc->lpszDatatype, -1, datatype, len, NULL, NULL );
+    }
+    docA.lpszDocName = docname;
+    docA.lpszOutput = output;
+    docA.lpszDatatype = datatype;
     docA.fwType = doc->fwType;
 
     ret = PSDRV_StartDocA(physDev, &docA);
 
-    HeapFree( GetProcessHeap(), 0, (LPSTR)docA.lpszDocName );
-    HeapFree( GetProcessHeap(), 0, (LPSTR)docA.lpszOutput );
-    HeapFree( GetProcessHeap(), 0, (LPSTR)docA.lpszDatatype );
+    HeapFree( GetProcessHeap(), 0, docname );
+    HeapFree( GetProcessHeap(), 0, output );
+    HeapFree( GetProcessHeap(), 0, datatype );
 
     return ret;
 }
diff --git a/dlls/wineps.drv/init.c b/dlls/wineps.drv/init.c
index 0868e22..8ec88b5 100644
--- a/dlls/wineps.drv/init.c
+++ b/dlls/wineps.drv/init.c
@@ -22,6 +22,7 @@
 #include "config.h"
 #include "wine/port.h"
 
+#include <stdarg.h>
 #include <string.h>
 #ifdef HAVE_UNISTD_H
 # include <unistd.h>
@@ -33,13 +34,14 @@
 #define NONAMELESSUNION
 #define NONAMELESSSTRUCT
 
-#include "wine/debug.h"
+#include "windef.h"
+#include "winbase.h"
 #include "winerror.h"
 #include "wownt32.h"
-#include "heap.h"
 #include "winreg.h"
 #include "psdrv.h"
 #include "winspool.h"
+#include "wine/debug.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(psdrv);
 
@@ -353,7 +355,9 @@ BOOL PSDRV_CreateDC( HDC hdc, PSDRV_PDEV
     physDev->logPixelsY = physDev->pi->ppd->DefaultResolution;
 
     if (output) {
-        physDev->job.output = HEAP_strdupWtoA( PSDRV_Heap, 0, output );
+        INT len = WideCharToMultiByte( CP_ACP, 0, output, -1, NULL, 0, NULL, NULL );
+        if ((physDev->job.output = HeapAlloc( PSDRV_Heap, 0, len )))
+            WideCharToMultiByte( CP_ACP, 0, output, -1, physDev->job.output, len, NULL, NULL );
     } else
         physDev->job.output = NULL;
     physDev->job.hJob = 0;
diff --git a/dlls/winspool.drv/info.c b/dlls/winspool.drv/info.c
index 8759257..38e4dc8 100644
--- a/dlls/winspool.drv/info.c
+++ b/dlls/winspool.drv/info.c
@@ -58,7 +58,6 @@
 #include "wine/unicode.h"
 #include "wine/debug.h"
 #include "wine/list.h"
-#include "heap.h"
 #include "winnls.h"
 
 #include "ddk/winsplp.h"
@@ -332,6 +331,18 @@ static LPWSTR strdupW(LPCWSTR p)
     return ret;
 }
 
+static LPSTR strdupWtoA( LPCWSTR str )
+{
+    LPSTR ret;
+    INT len;
+
+    if (!str) return NULL;
+    len = WideCharToMultiByte( CP_ACP, 0, str, -1, NULL, 0, NULL, NULL );
+    ret = HeapAlloc( GetProcessHeap(), 0, len );
+    if(ret) WideCharToMultiByte( CP_ACP, 0, str, -1, ret, len, NULL, NULL );
+    return ret;
+}
+
 /* Returns the number of bytes in an ansi \0\0 terminated string (multi_sz).
    The result includes all \0s (specifically the last two). */
 static int multi_sz_lenA(const char *str)
@@ -1589,8 +1600,8 @@ INT WINAPI DeviceCapabilitiesW(LPCWSTR p
 			       const DEVMODEW *pDevMode)
 {
     LPDEVMODEA dmA = DEVMODEdupWtoA(GetProcessHeap(), pDevMode);
-    LPSTR pDeviceA = HEAP_strdupWtoA(GetProcessHeap(),0,pDevice);
-    LPSTR pPortA = HEAP_strdupWtoA(GetProcessHeap(),0,pPort);
+    LPSTR pDeviceA = strdupWtoA(pDevice);
+    LPSTR pPortA = strdupWtoA(pPort);
     INT ret;
 
     if(pOutput && (fwCapability == DC_BINNAMES ||
@@ -1653,7 +1664,7 @@ LONG WINAPI DocumentPropertiesA(HWND hWn
                 SetLastError(ERROR_INVALID_HANDLE);
 		return -1;
 	}
-	lpName = HEAP_strdupWtoA(GetProcessHeap(),0,lpNameW);
+	lpName = strdupWtoA(lpNameW);
     }
 
     if (!GDI_CallExtDeviceMode16)
@@ -1685,7 +1696,7 @@ LONG WINAPI DocumentPropertiesW(HWND hWn
 				LPDEVMODEW pDevModeInput, DWORD fMode)
 {
 
-    LPSTR pDeviceNameA = HEAP_strdupWtoA(GetProcessHeap(),0,pDeviceName);
+    LPSTR pDeviceNameA = strdupWtoA(pDeviceName);
     LPDEVMODEA pDevModeInputA = DEVMODEdupWtoA(GetProcessHeap(),pDevModeInput);
     LPDEVMODEA pDevModeOutputA = NULL;
     LONG ret;
@@ -3228,7 +3239,7 @@ static BOOL WINSPOOL_GetStringFromReg(HK
     if(unicode)
         ret = RegQueryValueExW(hkey, ValueName, 0, &type, ptr, &sz);
     else {
-        LPSTR ValueNameA = HEAP_strdupWtoA(GetProcessHeap(),0,ValueName);
+        LPSTR ValueNameA = strdupWtoA(ValueName);
         ret = RegQueryValueExA(hkey, ValueNameA, 0, &type, ptr, &sz);
 	HeapFree(GetProcessHeap(),0,ValueNameA);
     }
diff --git a/include/heap.h b/include/heap.h
deleted file mode 100644
index b0432f7..0000000
--- a/include/heap.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Win32 heap definitions
- *
- * Copyright 1996 Alexandre Julliard
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
- */
-
-#ifndef __WINE_HEAP_H
-#define __WINE_HEAP_H
-
-#include <stdarg.h>
-#include <string.h>
-
-#include <windef.h>
-#include <winbase.h>
-#include <winnls.h>
-
-/* strdup macros */
-/* DO NOT USE IT!!  it will go away soon */
-
-inline static LPSTR HEAP_strdupWtoA( HANDLE heap, DWORD flags, LPCWSTR str )
-{
-    LPSTR ret;
-    INT len;
-
-    if (!str) return NULL;
-    len = WideCharToMultiByte( CP_ACP, 0, str, -1, NULL, 0, NULL, NULL );
-    ret = HeapAlloc( heap, flags, len );
-    if(ret) WideCharToMultiByte( CP_ACP, 0, str, -1, ret, len, NULL, NULL );
-    return ret;
-}
-
-#endif  /* __WINE_HEAP_H */




More information about the wine-cvs mailing list