[Spice-devel] [PATCH spicec windows 1/1] client/windows: fix SetClipboardViewer error handling rhbz#786554
Arnon Gilboa
agilboa at redhat.com
Thu Mar 1 04:09:28 PST 2012
Alon Levy wrote:
> On Thu, Mar 01, 2012 at 01:10:51PM +0200, Arnon Gilboa wrote:
>
>> MSDN says the following about SetClipboardViewer(): "If an error occurs or there
>> are no other windows in the clipboard viewer chain, the return value is NULL".
>> Seems like the buggy case was "no other windows in the clipboard viewer chain",
>> which explains the 3rd party clipboard manager workaround detailed in the bug
>> description.
>>
>
> But the fix below looks like it's dealing with the case there is an
> already existing LastError that is not reset before the
> SetClipboardViewer call, which you fix by adding a SetLastError(0), no?
>
I missed the main point in the comment, already fixed in v2...
>
>> ---
>> client/windows/platform.cpp | 7 ++++---
>> 1 files changed, 4 insertions(+), 3 deletions(-)
>>
>> diff --git a/client/windows/platform.cpp b/client/windows/platform.cpp
>> index 0f35a65..223be1d 100644
>> --- a/client/windows/platform.cpp
>> +++ b/client/windows/platform.cpp
>> @@ -236,6 +236,7 @@ static void create_message_wind()
>> {
>> WNDCLASSEX wclass;
>> ATOM class_atom;
>> + DWORD err;
>>
>> const LPCWSTR class_name = L"spicec_platform_wclass";
>>
>> @@ -259,9 +260,9 @@ static void create_message_wind()
>> if (!(platform_win = CreateWindow(class_name, L"", 0, 0, 0, 0, 0, NULL, NULL, instance, NULL))) {
>> THROW("create message window failed");
>> }
>> -
>> - if (!(next_clipboard_viewer_win = SetClipboardViewer(platform_win)) && GetLastError()) {
>> - THROW("set clipboard viewer failed");
>> + SetLastError(0);
>> + if (!(next_clipboard_viewer_win = SetClipboardViewer(platform_win)) && (err = GetLastError())) {
>> + THROW("set clipboard viewer failed %u", err);
>> }
>> if (!(clipboard_event = CreateEvent(NULL, FALSE, FALSE, NULL))) {
>> THROW("create clipboard event failed");
>> --
>> 1.7.4.1
>>
>> _______________________________________________
>> Spice-devel mailing list
>> Spice-devel at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/spice-devel
>>
More information about the Spice-devel
mailing list