Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
0692bfda
Commit
0692bfda
authored
Jan 28, 2010
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ntdll: Don't require heap sizes to be 64K aligned.
parent
b7b8929f
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
5 additions
and
14 deletions
+5
-14
alloc.c
dlls/kernel32/tests/alloc.c
+3
-9
heap.c
dlls/ntdll/heap.c
+2
-5
No files found.
dlls/kernel32/tests/alloc.c
View file @
0692bfda
...
...
@@ -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
);
...
...
dlls/ntdll/heap.c
View file @
0692bfda
...
...
@@ -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
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment