Huw Davies : winspool: Add a helper to free a printer entry.
Alexandre Julliard
julliard at winehq.org
Fri Mar 30 11:27:06 CDT 2012
Module: wine
Branch: master
Commit: 736fdbdec5fa17f117082b3d4e8d44179f2b2d19
URL: http://source.winehq.org/git/wine.git/?a=commit;h=736fdbdec5fa17f117082b3d4e8d44179f2b2d19
Author: Huw Davies <huw at codeweavers.com>
Date: Fri Mar 30 14:39:41 2012 +0100
winspool: Add a helper to free a printer entry.
---
dlls/winspool.drv/info.c | 17 ++++++++++-------
1 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/dlls/winspool.drv/info.c b/dlls/winspool.drv/info.c
index 7fbede2..24e5a97 100644
--- a/dlls/winspool.drv/info.c
+++ b/dlls/winspool.drv/info.c
@@ -773,6 +773,14 @@ static LPCWSTR get_basename_from_name(LPCWSTR name)
return name;
}
+static void free_printer_entry( opened_printer_t *printer )
+{
+ /* the queue is shared, so don't free that here */
+ HeapFree( GetProcessHeap(), 0, printer->printername );
+ HeapFree( GetProcessHeap(), 0, printer->name );
+ HeapFree( GetProcessHeap(), 0, printer );
+}
+
/******************************************************************
* get_opened_printer_entry
* Get the first place empty in the opened printer table
@@ -883,11 +891,8 @@ static HANDLE get_opened_printer_entry(LPWSTR name, LPPRINTER_DEFAULTSW pDefault
end:
LeaveCriticalSection(&printer_handles_cs);
if (!handle && printer) {
- /* Something failed: Free all resources */
- HeapFree(GetProcessHeap(), 0, printer->printername);
- HeapFree(GetProcessHeap(), 0, printer->name);
if (!queue) HeapFree(GetProcessHeap(), 0, printer->queue);
- HeapFree(GetProcessHeap(), 0, printer);
+ free_printer_entry( printer );
}
return (HANDLE)handle;
@@ -2722,9 +2727,7 @@ BOOL WINAPI ClosePrinter(HANDLE hPrinter)
HeapFree(GetProcessHeap(), 0, printer->queue);
}
- HeapFree(GetProcessHeap(), 0, printer->printername);
- HeapFree(GetProcessHeap(), 0, printer->name);
- HeapFree(GetProcessHeap(), 0, printer);
+ free_printer_entry( printer );
printer_handles[i - 1] = NULL;
ret = TRUE;
}
More information about the wine-cvs
mailing list