Fixed GMEM_ZEROINIT in GlobalRealloc (thanks to Gerard Patel).
diff --git a/memory/global.c b/memory/global.c
index ad9fc74..6645f83 100644
--- a/memory/global.c
+++ b/memory/global.c
@@ -1175,6 +1175,7 @@
HGLOBAL hnew;
PGLOBAL32_INTERN pintern;
HANDLE heap = GLOBAL_GetHeap( hmem );
+ DWORD heap_flags = (flags & GMEM_ZEROINIT) ? HEAP_ZERO_MEMORY : 0;
hnew = 0;
/* HeapLock(heap); */
@@ -1216,7 +1217,7 @@
if(ISPOINTER(hmem))
{
/* reallocate fixed memory */
- hnew=(HGLOBAL)HeapReAlloc(heap, 0, (LPVOID) hmem, size);
+ hnew=(HGLOBAL)HeapReAlloc(heap, heap_flags, (LPVOID) hmem, size);
}
else
{
@@ -1230,14 +1231,14 @@
hnew=hmem;
if(pintern->Pointer)
{
- palloc=HeapReAlloc(heap, 0,
+ palloc=HeapReAlloc(heap, heap_flags,
(char *) pintern->Pointer-sizeof(HGLOBAL),
size+sizeof(HGLOBAL) );
pintern->Pointer=(char *) palloc+sizeof(HGLOBAL);
}
else
{
- palloc=HeapAlloc(heap, 0, size+sizeof(HGLOBAL));
+ palloc=HeapAlloc(heap, heap_flags, size+sizeof(HGLOBAL));
*(HGLOBAL *)palloc=hmem;
pintern->Pointer=(char *) palloc+sizeof(HGLOBAL);
}