Huw Davies : wineps: Fix a memory leak.

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


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

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

wineps: Fix a memory leak.

---

 dlls/wineps.drv/driver.c |   20 ++++++++++++--------
 dlls/wineps.drv/psdrv.h  |    5 -----
 2 files changed, 12 insertions(+), 13 deletions(-)

diff --git a/dlls/wineps.drv/driver.c b/dlls/wineps.drv/driver.c
index 5ad3b6a..50fb59f 100644
--- a/dlls/wineps.drv/driver.c
+++ b/dlls/wineps.drv/driver.c
@@ -179,6 +179,12 @@ void PSDRV_MergeDevmodes(PSDRV_DEVMODEA *dm1, PSDRV_DEVMODEA *dm2,
 }
 
 
+typedef struct
+{
+    PRINTERINFO *pi;
+    PSDRV_DEVMODEA *dlgdm;
+} PSDRV_DLGINFO;
+
 /****************************************************************
  *       PSDRV_PaperDlgProc
  *
@@ -360,8 +366,8 @@ INT PSDRV_ExtDeviceMode(LPSTR lpszDriver, HWND hwnd, LPDEVMODEA lpdmOutput,
     HPROPSHEETPAGE hpsp[1];
     PROPSHEETPAGEW psp;
     PROPSHEETHEADERW psh;
-    PSDRV_DLGINFO *di;
-    PSDRV_DEVMODEA *dlgdm;
+    PSDRV_DLGINFO di;
+    PSDRV_DEVMODEA dlgdm;
     static const WCHAR PAPERW[] = {'P','A','P','E','R','\0'};
     static const WCHAR SetupW[] = {'S','e','t','u','p','\0'};
 
@@ -372,17 +378,15 @@ INT PSDRV_ExtDeviceMode(LPSTR lpszDriver, HWND hwnd, LPDEVMODEA lpdmOutput,
 						    "CreatePropertySheetPageW");
     pPropertySheet = (void*)GetProcAddress(hinstComctl32, "PropertySheetW");
     memset(&psp,0,sizeof(psp));
-    dlgdm = HeapAlloc( PSDRV_Heap, 0, sizeof(*dlgdm) );
-    *dlgdm = *pi->Devmode;
-    di = HeapAlloc( PSDRV_Heap, 0, sizeof(*di) );
-    di->pi = pi;
-    di->dlgdm = dlgdm;
+    dlgdm = *pi->Devmode;
+    di.pi = pi;
+    di.dlgdm = &dlgdm;
     psp.dwSize = sizeof(psp);
     psp.hInstance = PSDRV_hInstance;
     psp.u.pszTemplate = PAPERW;
     psp.u2.pszIcon = NULL;
     psp.pfnDlgProc = PSDRV_PaperDlgProc;
-    psp.lParam = (LPARAM)di;
+    psp.lParam = (LPARAM)&di;
     hpsp[0] = pCreatePropertySheetPage(&psp);
 
     memset(&psh, 0, sizeof(psh));
diff --git a/dlls/wineps.drv/psdrv.h b/dlls/wineps.drv/psdrv.h
index 093a543..53186c7 100644
--- a/dlls/wineps.drv/psdrv.h
+++ b/dlls/wineps.drv/psdrv.h
@@ -385,11 +385,6 @@ typedef struct
     int                 pathdepth;
 } PSDRV_PDEVICE;
 
-typedef struct {
-    PRINTERINFO *pi;
-    PSDRV_DEVMODEA *dlgdm;
-} PSDRV_DLGINFO;
-
 static inline PSDRV_PDEVICE *get_psdrv_dev( PHYSDEV dev )
 {
     return (PSDRV_PDEVICE *)dev;




More information about the wine-cvs mailing list