Get rid of USER_HEAP_* macros
Dimitrie O. Paun
dpaun at rogers.com
Tue May 10 16:01:13 CDT 2005
No need for yet another API for local functions.
ChangeLog
Dimi Paun <dimi at lattica.com>
Get rid of USER_HEAP_* macros.
Index: dlls/user/menu.c
===================================================================
RCS file: /var/cvs/wine/dlls/user/menu.c,v
retrieving revision 1.27
diff -u -p -r1.27 menu.c
--- dlls/user/menu.c 10 May 2005 13:17:33 -0000 1.27
+++ dlls/user/menu.c 10 May 2005 19:44:16 -0000
@@ -54,6 +55,7 @@
#include "controls.h"
#include "user_private.h"
#include "wine/debug.h"
+#include "local.h"
WINE_DEFAULT_DEBUG_CHANNEL(menu);
WINE_DECLARE_DEBUG_CHANNEL(accel);
@@ -306,7 +308,7 @@ static void do_debug_print_menuitem(cons
*/
static POPUPMENU *MENU_GetMenu(HMENU hMenu)
{
- POPUPMENU *menu = USER_HEAP_LIN_ADDR(hMenu);
+ POPUPMENU *menu = hMenu ? MapSL(MAKESEGPTR(USER_HeapSel, LOWORD(hMenu))) : 0;
if (!menu || menu->wMagic != MENU_MAGIC)
{
WARN("invalid menu handle=%p, ptr=%p, magic=%x\n", hMenu, menu, menu? menu->wMagic:0);
@@ -3616,8 +3618,10 @@ HMENU WINAPI CreateMenu(void)
{
HMENU hMenu;
LPPOPUPMENU menu;
- if (!(hMenu = USER_HEAP_ALLOC( sizeof(POPUPMENU) ))) return 0;
- menu = (LPPOPUPMENU) USER_HEAP_LIN_ADDR(hMenu);
+
+ hMenu = (HMENU)(LONG_PTR)LOCAL_Alloc(USER_HeapSel, LMEM_FIXED, sizeof(POPUPMENU));
+ if (!hMenu) return 0;
+ menu = MapSL(MAKESEGPTR(USER_HeapSel, LOWORD(hMenu)));
ZeroMemory(menu, sizeof(POPUPMENU));
menu->wMagic = MENU_MAGIC;
@@ -3665,7 +3669,7 @@ BOOL WINAPI DestroyMenu( HMENU hMenu )
}
HeapFree( GetProcessHeap(), 0, lppop->items );
}
- USER_HEAP_FREE( hMenu );
+ LOCAL_Free( USER_HeapSel, LOWORD(hMenu) );
}
return (hMenu != MENU_DefSysPopup);
}
Index: dlls/user/user_private.h
===================================================================
RCS file: /var/cvs/wine/dlls/user/user_private.h,v
retrieving revision 1.11
diff -u -p -r1.11 user_private.h
--- dlls/user/user_private.h 27 Apr 2005 10:23:24 -0000 1.11
+++ dlls/user/user_private.h 10 May 2005 19:38:42 -0000
@@ -28,18 +28,9 @@
#include "winuser.h"
#include "winreg.h"
#include "winternl.h"
-#include "local.h"
+#include "wine/winbase16.h"
-extern WORD USER_HeapSel;
-
-#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)
+extern HANDLE16 USER_HeapSel;
#define GET_WORD(ptr) (*(const WORD *)(ptr))
#define GET_DWORD(ptr) (*(const DWORD *)(ptr))
Index: dlls/user/winpos.c
===================================================================
RCS file: /var/cvs/wine/dlls/user/winpos.c,v
retrieving revision 1.2
diff -u -p -r1.2 winpos.c
--- dlls/user/winpos.c 27 Apr 2005 10:23:24 -0000 1.2
+++ dlls/user/winpos.c 10 May 2005 19:43:54 -0000
@@ -30,12 +30,16 @@
#include "wingdi.h"
#include "winerror.h"
#include "ntstatus.h"
+#include "wine/winbase16.h"
#include "wine/winuser16.h"
#include "wine/server.h"
#include "controls.h"
#include "user_private.h"
#include "win.h"
#include "winpos.h"
+#include "local.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(win);
@@ -1235,9 +1239,10 @@ HDWP WINAPI BeginDeferWindowPos( INT cou
/* Windows allows zero count, in which case it allocates context for 8 moves */
if (count == 0) count = 8;
- handle = USER_HEAP_ALLOC( sizeof(DWP) + (count-1)*sizeof(WINDOWPOS) );
+ handle = (HDWP)(LONG_PTR)LOCAL_Alloc(USER_HeapSel, LMEM_FIXED,
+ sizeof(DWP) + (count-1)*sizeof(WINDOWPOS));
if (!handle) return 0;
- pDWP = (DWP *) USER_HEAP_LIN_ADDR( handle );
+ pDWP = MapSL(MAKESEGPTR(USER_HeapSel, LOWORD(handle)));
pDWP->actualCount = 0;
pDWP->suggestedCount = count;
pDWP->valid = TRUE;
@@ -1253,8 +1258,7 @@ HDWP WINAPI BeginDeferWindowPos( INT cou
* DeferWindowPos (USER32.@)
*/
HDWP WINAPI DeferWindowPos( HDWP hdwp, HWND hwnd, HWND hwndAfter,
- INT x, INT y, INT cx, INT cy,
- UINT flags )
+ INT x, INT y, INT cx, INT cy, UINT flags )
{
DWP *pDWP;
int i;
@@ -1266,7 +1270,9 @@ HDWP WINAPI DeferWindowPos( HDWP hdwp, H
hwnd = WIN_GetFullHandle( hwnd );
if (hwnd == GetDesktopWindow()) return 0;
- if (!(pDWP = USER_HEAP_LIN_ADDR( hdwp ))) return 0;
+ if (!hdwp) return 0;
+ pDWP = MapSL(MAKESEGPTR(USER_HeapSel, LOWORD(hdwp)));
+ if (!pDWP) return 0;
USER_Lock();
@@ -1301,14 +1307,14 @@ HDWP WINAPI DeferWindowPos( HDWP hdwp, H
}
if (pDWP->actualCount >= pDWP->suggestedCount)
{
- newhdwp = USER_HEAP_REALLOC( hdwp,
- sizeof(DWP) + pDWP->suggestedCount*sizeof(WINDOWPOS) );
+ INT size = sizeof(DWP) + pDWP->suggestedCount*sizeof(WINDOWPOS);
+ newhdwp = (HDWP)(LONG_PTR)LOCAL_ReAlloc(USER_HeapSel, LOWORD(hdwp), size, LMEM_FIXED);
if (!newhdwp)
{
retvalue = 0;
goto END;
}
- pDWP = (DWP *) USER_HEAP_LIN_ADDR( newhdwp );
+ pDWP = MapSL(MAKESEGPTR(USER_HeapSel, LOWORD(newhdwp)));
pDWP->suggestedCount++;
}
pDWP->winPos[pDWP->actualCount].hwnd = hwnd;
@@ -1338,13 +1344,14 @@ BOOL WINAPI EndDeferWindowPos( HDWP hdwp
TRACE("%p\n", hdwp);
- pDWP = (DWP *) USER_HEAP_LIN_ADDR( hdwp );
+ if (!hdwp) return FALSE;
+ pDWP = MapSL(MAKESEGPTR(USER_HeapSel, LOWORD(hdwp)));
if (!pDWP) return FALSE;
for (i = 0, winpos = pDWP->winPos; i < pDWP->actualCount; i++, winpos++)
{
if (!USER_Driver.pSetWindowPos || !(res = USER_Driver.pSetWindowPos( winpos ))) break;
}
- USER_HEAP_FREE( hdwp );
+ LOCAL_Free( USER_HeapSel, LOWORD(hdwp) );
return res;
}
--
Dimi.
More information about the wine-patches
mailing list