Alexandre Julliard : user32: Get rid of the 16-bit heap support.

Alexandre Julliard julliard at winehq.org
Mon Oct 12 11:19:48 CDT 2009


Module: wine
Branch: master
Commit: 796346f825e92759c957ffaba4ad24d1a9761a73
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=796346f825e92759c957ffaba4ad24d1a9761a73

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Mon Oct 12 14:32:21 2009 +0200

user32: Get rid of the 16-bit heap support.

---

 dlls/user32/user.exe.spec  |    2 +-
 dlls/user32/user16.c       |   15 ++++++++++++++
 dlls/user32/user_main.c    |   11 +---------
 dlls/user32/user_private.h |   46 --------------------------------------------
 4 files changed, 17 insertions(+), 57 deletions(-)

diff --git a/dlls/user32/user.exe.spec b/dlls/user32/user.exe.spec
index 9a22d87..517ced8 100644
--- a/dlls/user32/user.exe.spec
+++ b/dlls/user32/user.exe.spec
@@ -351,7 +351,7 @@
 371 pascal -ret16 SetWindowPlacement(word ptr) SetWindowPlacement16
 372 stub GetInternalIconHeader
 373 pascal -ret16 SubtractRect(ptr ptr ptr) SubtractRect16
-#374 DllEntryPoint
+374 pascal -ret16 DllEntryPoint(long word word word long word)
 375 stub DrawTextEx
 376 stub SetMessageExtraInfo
 378 stub SetPropEx
diff --git a/dlls/user32/user16.c b/dlls/user32/user16.c
index 85b7212..5ca8837 100644
--- a/dlls/user32/user16.c
+++ b/dlls/user32/user16.c
@@ -56,6 +56,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(user);
 
 WORD WINAPI DestroyIcon32(HGLOBAL16, UINT16);
 
+WORD USER_HeapSel = 0;  /* USER heap selector */
 
 struct gray_string_info
 {
@@ -1206,6 +1207,20 @@ BOOL16 WINAPI SubtractRect16( LPRECT16 dest, const RECT16 *src1,
 
 
 /**********************************************************************
+ *		DllEntryPoint (USER.374)
+ */
+BOOL WINAPI DllEntryPoint( DWORD reason, HINSTANCE16 inst, WORD ds,
+                           WORD heap, DWORD reserved1, WORD reserved2 )
+{
+    if (reason != DLL_PROCESS_ATTACH) return TRUE;
+    if (USER_HeapSel) return TRUE;  /* already called */
+
+    USER_HeapSel = ds;
+    return TRUE;
+}
+
+
+/**********************************************************************
  *         SetMenuContextHelpId    (USER.384)
  */
 BOOL16 WINAPI SetMenuContextHelpId16( HMENU16 hMenu, DWORD dwContextHelpID)
diff --git a/dlls/user32/user_main.c b/dlls/user32/user_main.c
index 7b7b885..516338c 100644
--- a/dlls/user32/user_main.c
+++ b/dlls/user32/user_main.c
@@ -36,7 +36,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(graphics);
 
 #define DESKTOP_ALL_ACCESS 0x01ff
 
-WORD USER_HeapSel = 0;  /* USER heap selector */
 HMODULE user32_module = 0;
 
 static SYSLEVEL USER_SysLevel;
@@ -267,15 +266,7 @@ static void winstation_init(void)
  */
 static BOOL process_attach(void)
 {
-    HINSTANCE16 instance;
-
-    /* Create USER heap */
-    if ((instance = LoadLibrary16( "USER.EXE" )) >= 32) USER_HeapSel = instance | 7;
-    else
-    {
-        USER_HeapSel = GlobalAlloc16( GMEM_FIXED, 65536 );
-        LocalInit16( USER_HeapSel, 32, 65534 );
-    }
+    LoadLibrary16( "user.exe" );
 
     /* some Win9x dlls expect keyboard to be loaded */
     if (GetVersion() & 0x80000000) LoadLibrary16( "keyboard.drv" );
diff --git a/dlls/user32/user_private.h b/dlls/user32/user_private.h
index fa6118d..3dc1d83 100644
--- a/dlls/user32/user_private.h
+++ b/dlls/user32/user_private.h
@@ -29,55 +29,9 @@
 #include "winreg.h"
 #include "winternl.h"
 #include "wine/windef16.h"
-#include "wine/winbase16.h"
 
 extern WORD USER_HeapSel DECLSPEC_HIDDEN;
 
-static inline HLOCAL16 LOCAL_Alloc( HANDLE16 ds, UINT16 flags, WORD size )
-{
-    STACK16FRAME* stack16 = MapSL(PtrToUlong(NtCurrentTeb()->WOW32Reserved));
-    HANDLE16 oldDS = stack16->ds;
-    HLOCAL16 ret;
-
-    stack16->ds = ds;
-    ret = LocalAlloc16 (flags, size);
-    stack16->ds = oldDS;
-    return ret;
-}
-
-static inline  HLOCAL16 LOCAL_ReAlloc( HANDLE16 ds, HLOCAL16 handle, WORD size, UINT16 flags )
-{
-    STACK16FRAME* stack16 = MapSL(PtrToUlong(NtCurrentTeb()->WOW32Reserved));
-    HANDLE16 oldDS = stack16->ds;
-    HLOCAL16 ret;
-
-    stack16->ds = ds;
-    ret = LocalReAlloc16 (handle, size, flags);
-    stack16->ds = oldDS;
-    return ret;
-}
-
-static inline HLOCAL16 LOCAL_Free( HANDLE16 ds, HLOCAL16 handle )
-{
-    STACK16FRAME* stack16 = MapSL(PtrToUlong(NtCurrentTeb()->WOW32Reserved));
-    HANDLE16 oldDS = stack16->ds;
-    HLOCAL16 ret;
-
-    stack16->ds = ds;
-    ret = LocalFree16 (handle);
-    stack16->ds = oldDS;
-    return ret;
-}
-
-#define USER_HEAP_ALLOC(size) \
-            ((HANDLE)(ULONG_PTR)LOCAL_Alloc( USER_HeapSel, LMEM_FIXED, (size) ))
-#define USER_HEAP_REALLOC(handle,size) \
-            ((HANDLE)(ULONG_PTR)LOCAL_ReAlloc( USER_HeapSel, LOWORD(handle), (size), LMEM_FIXED ))
-#define USER_HEAP_FREE(handle) \
-            LOCAL_Free( USER_HeapSel, LOWORD(handle) )
-#define USER_HEAP_LIN_ADDR(handle)  \
-         ((handle) ? MapSL(MAKESEGPTR(USER_HeapSel, LOWORD(handle))) : NULL)
-
 #define GET_WORD(ptr)  (*(const WORD *)(ptr))
 #define GET_DWORD(ptr) (*(const DWORD *)(ptr))
 




More information about the wine-cvs mailing list