Rémi Bernon : kernelbase: Remove unnecessary handler from LocalLock.

Alexandre Julliard julliard at winehq.org
Mon Apr 4 15:37:52 CDT 2022


Module: wine
Branch: master
Commit: e358731f96ae9ca37c89df2c232338393e8477e9
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=e358731f96ae9ca37c89df2c232338393e8477e9

Author: Rémi Bernon <rbernon at codeweavers.com>
Date:   Mon Apr  4 10:02:00 2022 +0200

kernelbase: Remove unnecessary handler from LocalLock.

Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/kernelbase/memory.c | 27 ++++++++++-----------------
 1 file changed, 10 insertions(+), 17 deletions(-)

diff --git a/dlls/kernelbase/memory.c b/dlls/kernelbase/memory.c
index 086674ab41c..9ae1b6d50dd 100644
--- a/dlls/kernelbase/memory.c
+++ b/dlls/kernelbase/memory.c
@@ -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;
 }
 




More information about the wine-cvs mailing list