kernelbase: Remove unnecessary handler from LocalLock.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Rémi Bernon 2022-04-04 10:02:00 +02:00 committed by Alexandre Julliard
parent 2fcb072f03
commit e358731f96
1 changed files with 10 additions and 17 deletions

View File

@ -774,6 +774,7 @@ HLOCAL WINAPI DECLSPEC_HOTPATCH LocalFree( HLOCAL handle )
*/
LPVOID WINAPI DECLSPEC_HOTPATCH LocalLock( HLOCAL handle )
{
HANDLE heap = GetProcessHeap();
struct mem_entry *mem;
void *ret = NULL;
@ -794,28 +795,20 @@ LPVOID WINAPI DECLSPEC_HOTPATCH LocalLock( HLOCAL handle )
return ret;
}
RtlLockHeap( GetProcessHeap() );
__TRY
RtlLockHeap( heap );
if ((mem = unsafe_mem_from_HLOCAL( handle )))
{
if ((mem = unsafe_mem_from_HLOCAL( handle )))
{
ret = mem->ptr;
if (!mem->ptr) SetLastError( ERROR_DISCARDED );
else if (mem->lock < LMEM_LOCKCOUNT) mem->lock++;
}
else
{
WARN_(globalmem)( "invalid handle %p\n", handle );
SetLastError( ERROR_INVALID_HANDLE );
}
ret = mem->ptr;
if (!mem->ptr) SetLastError( ERROR_DISCARDED );
else if (mem->lock < LMEM_LOCKCOUNT) mem->lock++;
}
__EXCEPT_PAGE_FAULT
else
{
WARN_(globalmem)( "(%p): Page fault occurred ! Caused by bug ?\n", handle );
WARN_(globalmem)( "invalid handle %p\n", handle );
SetLastError( ERROR_INVALID_HANDLE );
}
__ENDTRY
RtlUnlockHeap( GetProcessHeap() );
RtlUnlockHeap( heap );
return ret;
}