| Index: printing/backend/win_helper.h
|
| diff --git a/printing/backend/win_helper.h b/printing/backend/win_helper.h
|
| index db66bf89c4822c94aab94a7c41dd4501d7f0e4ab..0f6b7ef80855ad31b501a81ba90f49f7ddb8e0b0 100644
|
| --- a/printing/backend/win_helper.h
|
| +++ b/printing/backend/win_helper.h
|
| @@ -46,10 +46,9 @@
|
| base::win::VerifierTraits> {
|
| public:
|
| bool OpenPrinter(const wchar_t* printer) {
|
| - HANDLE temp_handle;
|
| // ::OpenPrinter may return error but assign some value into handle.
|
| - if (::OpenPrinter(const_cast<LPTSTR>(printer), &temp_handle, NULL)) {
|
| - Set(temp_handle);
|
| + if (!::OpenPrinter(const_cast<LPTSTR>(printer), Receive(), NULL)) {
|
| + Take();
|
| }
|
| return IsValid();
|
| }
|
| @@ -57,6 +56,10 @@
|
| private:
|
| typedef base::win::GenericScopedHandle<PrinterHandleTraits,
|
| base::win::VerifierTraits> Base;
|
| + // Hide Receive to avoid assigning handle when ::OpenPrinter returned error.
|
| + Base::Receiver Receive() {
|
| + return Base::Receive();
|
| + }
|
| };
|
|
|
| class PrinterChangeHandleTraits {
|
|
|