Module: wine Branch: master Commit: 4932677e319b155edb7ba90406e2e12a11881961 URL: http://source.winehq.org/git/wine.git/?a=commit;h=4932677e319b155edb7ba90406...
Author: Alexandre Julliard julliard@winehq.org Date: Fri Oct 31 13:01:31 2008 +0100
kernel32: Allocate global arenas on the Win32 heap.
---
dlls/kernel32/global16.c | 11 +++++++---- 1 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/dlls/kernel32/global16.c b/dlls/kernel32/global16.c index 2fdb5d8..6d70767 100644 --- a/dlls/kernel32/global16.c +++ b/dlls/kernel32/global16.c @@ -113,12 +113,15 @@ static GLOBALARENA *GLOBAL_GetArena( WORD sel, WORD selcount ) if (((sel >> __AHSHIFT) + selcount) > globalArenaSize) { int newsize = ((sel >> __AHSHIFT) + selcount + 0xff) & ~0xff; - GLOBALARENA *pNewArena = realloc( pGlobalArena, - newsize * sizeof(GLOBALARENA) ); + GLOBALARENA *pNewArena; + + if (pGlobalArena) + pNewArena = HeapReAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, + pGlobalArena, newsize * sizeof(GLOBALARENA) ); + else + pNewArena = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, newsize * sizeof(GLOBALARENA) ); if (!pNewArena) return 0; pGlobalArena = pNewArena; - memset( pGlobalArena + globalArenaSize, 0, - (newsize - globalArenaSize) * sizeof(GLOBALARENA) ); globalArenaSize = newsize; } return pGlobalArena + (sel >> __AHSHIFT);