ntdll: Don't require heap sizes to be 64K aligned.
This commit is contained in:
parent
b7b8929f0b
commit
0692bfda5f
|
@ -70,15 +70,9 @@ static void test_Heap(void)
|
|||
heap=HeapCreate(0,2*memchunk,5*memchunk);
|
||||
|
||||
/* Check that HeapCreate allocated the right amount of ram */
|
||||
todo_wine {
|
||||
/* Today HeapCreate seems to return a memory block larger than specified.
|
||||
MSDN says the maximum heap size should be dwMaximumSize rounded up to the
|
||||
nearest page boundary
|
||||
*/
|
||||
mem1=HeapAlloc(heap,0,5*memchunk+1);
|
||||
ok(mem1==NULL,"HeapCreate allocated more Ram than it should have\n");
|
||||
HeapFree(heap,0,mem1);
|
||||
}
|
||||
mem1=HeapAlloc(heap,0,5*memchunk+1);
|
||||
ok(mem1==NULL,"HeapCreate allocated more Ram than it should have\n");
|
||||
HeapFree(heap,0,mem1);
|
||||
|
||||
/* Check that a normal alloc works */
|
||||
mem1=HeapAlloc(heap,0,memchunk);
|
||||
|
|
|
@ -856,16 +856,13 @@ static SUBHEAP *HEAP_CreateSubHeap( HEAP *heap, LPVOID address, DWORD flags,
|
|||
|
||||
if (!address)
|
||||
{
|
||||
/* round-up sizes on a 64K boundary */
|
||||
totalSize = (totalSize + 0xffff) & 0xffff0000;
|
||||
commitSize = (commitSize + 0xffff) & 0xffff0000;
|
||||
if (!commitSize) commitSize = 0x10000;
|
||||
if (!commitSize) commitSize = COMMIT_MASK + 1;
|
||||
totalSize = min( totalSize, 0xffff0000 ); /* don't allow a heap larger than 4Gb */
|
||||
if (totalSize < commitSize) totalSize = commitSize;
|
||||
if (flags & HEAP_SHARED) commitSize = totalSize; /* always commit everything in a shared heap */
|
||||
|
||||
/* allocate the memory block */
|
||||
if (NtAllocateVirtualMemory( NtCurrentProcess(), &address, 0, &totalSize,
|
||||
if (NtAllocateVirtualMemory( NtCurrentProcess(), &address, 5, &totalSize,
|
||||
MEM_RESERVE, get_protection_type( flags ) ))
|
||||
{
|
||||
WARN("Could not allocate %08lx bytes\n", totalSize );
|
||||
|
|
Loading…
Reference in New Issue