Huw Davies : winspool: Add a helper to duplicate a devmode.
Alexandre Julliard
julliard at winehq.org
Fri Mar 30 11:27:06 CDT 2012
Module: wine
Branch: master
Commit: 2f78666a010a25f77f614affb875289581dbb877
URL: http://source.winehq.org/git/wine.git/?a=commit;h=2f78666a010a25f77f614affb875289581dbb877
Author: Huw Davies <huw at codeweavers.com>
Date: Fri Mar 30 14:39:40 2012 +0100
winspool: Add a helper to duplicate a devmode.
---
dlls/winspool.drv/info.c | 20 +++++++++++---------
1 files changed, 11 insertions(+), 9 deletions(-)
diff --git a/dlls/winspool.drv/info.c b/dlls/winspool.drv/info.c
index 9bb8915..7fbede2 100644
--- a/dlls/winspool.drv/info.c
+++ b/dlls/winspool.drv/info.c
@@ -338,6 +338,16 @@ static LPSTR strdupWtoA( LPCWSTR str )
return ret;
}
+static DEVMODEW *dup_devmode( const DEVMODEW *dm )
+{
+ DEVMODEW *ret;
+
+ if (!dm) return NULL;
+ ret = HeapAlloc( GetProcessHeap(), 0, dm->dmSize + dm->dmDriverExtra );
+ if (ret) memcpy( ret, dm, dm->dmSize + dm->dmDriverExtra );
+ return ret;
+}
+
/******************************************************************
* verify, that the filename is a local file
*
@@ -2888,7 +2898,6 @@ BOOL WINAPI SetJobW(HANDLE hPrinter, DWORD JobId, DWORD Level,
{
BOOL ret = FALSE;
job_t *job;
- DWORD size;
TRACE("(%p, %d, %d, %p, %d)\n", hPrinter, JobId, Level, pJob, Command);
FIXME("Ignoring everything other than document title\n");
@@ -2915,14 +2924,7 @@ BOOL WINAPI SetJobW(HANDLE hPrinter, DWORD JobId, DWORD Level,
HeapFree(GetProcessHeap(), 0, job->document_title);
job->document_title = strdupW(info2->pDocument);
HeapFree(GetProcessHeap(), 0, job->devmode);
- if (info2->pDevMode)
- {
- size = info2->pDevMode->dmSize + info2->pDevMode->dmDriverExtra;
- job->devmode = HeapAlloc(GetProcessHeap(), 0, size);
- memcpy(job->devmode, info2->pDevMode, size);
- }
- else
- job->devmode = NULL;
+ job->devmode = dup_devmode( info2->pDevMode );
break;
}
case 3:
More information about the wine-cvs
mailing list