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