Sebastian Lackner : user32: Call GlobalUnlock with the correct argument in SetClipboardData.
Alexandre Julliard
julliard at winehq.org
Wed Sep 28 10:34:00 CDT 2016
Module: wine
Branch: master
Commit: 0a1da6bce93cb13db0a4fb3fed708caa88046ea1
URL: http://source.winehq.org/git/wine.git/?a=commit;h=0a1da6bce93cb13db0a4fb3fed708caa88046ea1
Author: Sebastian Lackner <sebastian at fds-team.de>
Date: Tue Sep 27 19:01:48 2016 +0200
user32: Call GlobalUnlock with the correct argument in SetClipboardData.
Signed-off-by: Sebastian Lackner <sebastian at fds-team.de>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/user32/clipboard.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/dlls/user32/clipboard.c b/dlls/user32/clipboard.c
index 9d80813..04d062d 100644
--- a/dlls/user32/clipboard.c
+++ b/dlls/user32/clipboard.c
@@ -868,7 +868,7 @@ HANDLE WINAPI SetClipboardData( UINT format, HANDLE data )
void *ptr = NULL;
data_size_t size = 0;
HANDLE handle = data, retval = 0;
- BOOL ret;
+ NTSTATUS status = STATUS_SUCCESS;
TRACE( "%s %p\n", debugstr_format( format ), data );
@@ -888,14 +888,14 @@ HANDLE WINAPI SetClipboardData( UINT format, HANDLE data )
req->format = format;
req->lcid = GetUserDefaultLCID();
wine_server_add_data( req, ptr, size );
- if ((ret = !wine_server_call_err( req )))
+ if (!(status = wine_server_call( req )))
{
if (cache) cache->seqno = reply->seqno;
}
}
SERVER_END_REQ;
- if (ret)
+ if (!status)
{
/* free the previous entry if any */
struct cached_format *prev;
@@ -909,8 +909,9 @@ HANDLE WINAPI SetClipboardData( UINT format, HANDLE data )
LeaveCriticalSection( &clipboard_cs );
done:
- if (ptr) GlobalUnlock( ptr );
+ if (ptr) GlobalUnlock( handle );
if (handle != data) GlobalFree( handle );
+ if (status) SetLastError( RtlNtStatusToDosError( status ));
return retval;
}
More information about the wine-cvs
mailing list