Module: wine Branch: master Commit: b611acc7369f4a260ec7d4b260b221524f04d440 URL: http://source.winehq.org/git/wine.git/?a=commit;h=b611acc7369f4a260ec7d4b260...
Author: Detlef Riekenberg wine.dev@web.de Date: Tue Nov 1 23:21:41 2016 +0100
winspool: Return a failure code in ClosePrinter.
Signed-off-by: Detlef Riekenberg wine.dev@web.de Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/winspool.drv/info.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/dlls/winspool.drv/info.c b/dlls/winspool.drv/info.c index 2f0ff3d..2b2e0fc 100644 --- a/dlls/winspool.drv/info.c +++ b/dlls/winspool.drv/info.c @@ -3315,7 +3315,6 @@ BOOL WINAPI ClosePrinter(HANDLE hPrinter) { UINT_PTR i = (UINT_PTR)hPrinter; opened_printer_t *printer = NULL; - BOOL ret = FALSE;
TRACE("(%p)\n", hPrinter);
@@ -3331,10 +3330,6 @@ BOOL WINAPI ClosePrinter(HANDLE hPrinter)
TRACE("closing %s (doc: %p)\n", debugstr_w(printer->name), printer->doc);
- if (printer->backend_printer) { - backend->fpClosePrinter(printer->backend_printer); - } - if(printer->doc) EndDocPrinter(hPrinter);
@@ -3348,12 +3343,19 @@ BOOL WINAPI ClosePrinter(HANDLE hPrinter) HeapFree(GetProcessHeap(), 0, printer->queue); }
+ if (printer->backend_printer) { + backend->fpClosePrinter(printer->backend_printer); + } + free_printer_entry( printer ); printer_handles[i - 1] = NULL; - ret = TRUE; + LeaveCriticalSection(&printer_handles_cs); + return TRUE; } + LeaveCriticalSection(&printer_handles_cs); - return ret; + SetLastError(ERROR_INVALID_HANDLE); + return FALSE; }
/*****************************************************************************