Commit Graph

147 Commits

Author SHA1 Message Date
Alexandre Julliard 5f23006441 ntdll: Go back to growing the heap in smaller increments once we start running out of address space. 2009-06-30 14:07:18 +02:00
Alexandre Julliard c03991be68 ntdll: Large heap blocks don't need to be 64k aligned. 2009-06-30 14:06:55 +02:00
Alexandre Julliard c68594a941 ntdll: Don't try to decommit a heap past its initial commit size. 2009-06-25 14:33:31 +02:00
Alexandre Julliard 476324e8ba ntdll: Compute the free lists address at run-time instead of playing with alignment and padding. 2009-06-25 14:33:15 +02:00
Alexandre Julliard 13a33b73c3 ntdll: Free old memory block when reallocating to a large block. 2009-05-18 12:12:12 +02:00
Dan Kegel 3e6d0789d0 ntdll: Add missing RtlReAllocateHeap Valgrind hook, add tests. 2009-04-27 13:22:49 +02:00
Dan Kegel 999bb6a0e9 ntdll: Add missing valgrind hook in RtlAllocateHeap. 2009-04-16 11:28:53 -05:00
Michael Stefaniuc d2f6f56873 ntdll: Remove superfluous pointer casts. 2009-03-23 12:40:53 +01:00
Alexandre Julliard 324a803532 ntdll: Fix heap management for 64-bit. 2008-12-12 10:18:41 +01:00
Alexandre Julliard c38ce28af5 ntdll: Increase subheap size quadratically to avoid slowdown when allocating tons of heap memory. 2008-11-18 12:49:12 +01:00
Alexandre Julliard 222e406deb ntdll: Create a separate heap for allocating memory views instead of using malloc. 2008-10-31 13:00:59 +01:00
Alexandre Julliard bb98004249 ntdll: Merge HEAP_InitSubHeap and HEAP_CreateSubHeap. 2008-10-31 13:00:15 +01:00
Alexandre Julliard 21453b4c2e ntdll: Allocate a new virtual region for large blocks, and ensure 16-byte alignment. 2008-10-29 17:32:45 +01:00
Andrew Talbot a63749cce0 ntdll: Sign-compare warnings fix. 2008-10-24 14:25:00 +02:00
John Reiser d6f4691106 ntdll: When tracking allocated blocks, RtlDestroyHeap must notify that all the blocks are being freed. 2008-07-25 11:52:43 +02:00
Andrew Talbot 741b65c200 ntdll: Remove unneeded address-of operators from array names. 2008-07-11 14:06:27 +02:00
Maarten Lankhorst a9a852faa9 ntdll: Give earlier notify to valgrind that HeapFree is trying to free some memory. 2008-05-22 11:45:40 +02:00
Rob Shearman e7d91129d9 ntdll: When using HEAP_ZERO_MEMORY in heap allocation functions, don't clear the whole block.
Instead only clear the number of bytes requested and mark the remainder 
as uninitialised.
2008-02-21 13:00:05 +01:00
Rob Shearman 10b38faf3a ntdll: Fix the use of oldSize in RtlReAllocateHeap as both the size of the old block and the number of bytes used in the old block. 2008-02-21 12:55:49 +01:00
Andrew Talbot 1ebe82af65 ntdll: Remove unneeded casts. 2007-12-31 16:45:22 +01:00
Eric Pouech aff968fb47 valgrind: Made Wine compliant will latest Valgrind macros (the one removed from 3.3.0 and deprecated since 3.2.0). 2007-12-24 13:30:39 +01:00
Lionel Debroux ec80b544e1 ntdll: Trace arena magics (may help debugging some heap corruptions). 2007-11-28 11:17:56 +01:00
Michael Stefaniuc 0ecf2edca0 ntdll: Remove duplicate includes. 2007-11-19 13:54:09 +01:00
Juan Lang dc7ee864b5 ntdll: Fix a typo. 2007-10-03 10:08:41 +02:00
Alexandre Julliard cbf8838dfb ntdll: Fix the HEAP_CreateSubHeap return value (spotted by Allan Tong). 2007-10-03 10:08:34 +02:00
Alexandre Julliard e599584a68 ntdll: Make the heap structure more compatible with the NT layout. 2007-10-02 11:23:40 +02:00
Alexandre Julliard 80a6bb1d8b ntdll: Convert the subheap list to a standard list. 2007-10-02 11:23:38 +02:00
Alexandre Julliard 1d063ae18d ntdll: Remove assumptions that the subheap is at the beginning of the memory block. 2007-10-02 11:23:36 +02:00
Alexandre Julliard d73dbecf68 ntdll: Clear heap blocks also for WARN_ON(heap). 2007-10-01 19:55:20 +02:00
Detlef Riekenberg a45badf5c0 ntdll: Make RtlCompactHeap more silent. 2007-08-28 11:55:22 +02:00
Dmitry Timoshkov e142779b09 ntdll: Fix compilation warnings in 64-bit mode. 2007-05-23 13:10:20 +02:00
Alexandre Julliard cc54b7d9bd ntdll: Avoid overflows in heap allocations. Based on a patch by Rob Shearman. 2007-05-22 11:59:18 +02:00
Andrew Talbot a22c7a6c34 kernel32: Constify a variable. 2007-05-03 14:23:31 +02:00
Vitaliy Margolen 5b4cfac3bf ntdll: Take size of the arena from the current pointer before advancing. 2007-04-12 16:41:01 +02:00
Alexandre Julliard fd09846864 ntdll: Make test for heap boundaries more strict in HEAP_FindSubHeap. 2007-04-05 22:06:38 +02:00
Jan Zerebecki aaf9a151c1 ntdll: Add DebugInfo to critical sections. 2007-03-12 13:38:35 +01:00
Alexandre Julliard 6f2dd76750 ntdll: Clear the DebugInfo field when a shared heap critical section is made global. 2007-02-06 18:02:16 +01:00
Alexandre Julliard a10c40df23 ntdll: Added support for the HEAP_CREATE_ENABLE_EXECUTE flag. 2006-12-05 15:43:13 +01:00
Eric Pouech f36fb2369e ntdll: Added debug support for notifying block allocation / freeing. 2006-10-20 13:50:04 +02:00
Hans Leidekker f7b0ba7aa7 ntdll: Win64 printf format warning fixes. 2006-10-18 12:35:26 +02:00
Alexandre Julliard d49884c3e9 ntdll: Simplify the sanity checks in RtlFreeHeap and RtlReAllocateHeap. 2006-07-21 13:22:13 +02:00
Alexandre Julliard 4ed286b431 ntdll: Set a proper HEAP_MIN_DATA_SIZE on 64-bit platforms. 2006-07-21 11:53:52 +02:00
Alexandre Julliard 1316334952 ntdll: Add a few more free list entries to the heap. 2006-07-21 11:53:24 +02:00
Jonathan Ernst 360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Ge van Geldorp 1a1583a364 Match PSDK STATUS_* definitions. 2005-11-28 17:32:54 +01:00
Francois Gouget a8c7284f92 Assorted spelling fixes. 2005-09-26 10:58:41 +00:00
Alexandre Julliard 2cf740619f Fixed some trace format strings (reported by Gerald Pfeifer). 2005-09-18 11:15:16 +00:00
Alexandre Julliard 06ea6e6e3f Fixed a few pointer truncation bugs for 64-bit platforms. 2005-09-16 18:54:19 +00:00
Alexandre Julliard 20a1a203c6 Use a more portable scheme for storing the name of a critical
section.
2005-09-09 10:19:44 +00:00
Alexandre Julliard 7721b267f5 Fixed some confusion over whether HEAP_MIN_BLOCK_SIZE includes the
arena headers of not.
Free list sizes are constant so there's no need to store them in the
heap structure.
2005-08-15 20:49:47 +00:00
Alexandre Julliard 03c3b4e7e0 Converted the process heap list to a standard list. 2005-08-12 18:25:16 +00:00
Alexandre Julliard c50597c94d Converted the heap free lists to standard lists. 2005-08-12 16:05:46 +00:00
Alexandre Julliard 5e787ba521 Hack to make the main heap critical section have a proper debug info
structure.
2005-08-03 16:03:15 +00:00
Dmitry Timoshkov 9bea3bfc96 Avoid unnecessary casts. 2005-07-15 11:44:46 +00:00
Dmitry Timoshkov 1dc18952ae Use SIZE_T type for size variables in NTDLL when appropriate. 2005-07-15 10:01:30 +00:00
Robert Shearman 38ba5fe0e0 - Make the value returned from HeapSize always match the requested
size passed into HeapAllocate/HeapReAllocate.
- Add a test for this behaviour.
2005-07-11 13:20:40 +00:00
Mike McCormack 6b636e3e7b Use RTL_CRITICAL_SECTION instead of CRITICAL_SECTION. 2005-06-25 18:00:57 +00:00
Alexandre Julliard ddb002437b Don't require execute permission on the process heap. 2005-06-21 20:54:31 +00:00
Mike McCormack 04f9f1b066 Don't include winbase.h or winerror.h when not necessary. 2005-06-21 09:52:40 +00:00
Mike McCormack 5b2d5fd758 Use HANDLE instead of HKEY in the NT API. 2005-06-17 13:58:33 +00:00
Mike McCormack 65ad7da1f7 Fix some declaration and write string warnings. 2005-06-16 10:45:25 +00:00
Alexandre Julliard bd000a0203 Removed some unnecessary inclusions of thread.h 2005-06-06 20:13:08 +00:00
Alexandre Julliard e18ca98857 Removed last dependencies on 16-bit headers from ntdll. 2005-05-18 18:37:30 +00:00
Uwe Bonnes bfb6d642dd Dump HeapWalk entries. 2005-03-03 13:50:21 +00:00
Jon Griffiths eb5bf7dd38 Documentation spelling fixes. 2005-02-25 14:07:56 +00:00
Ivan Leo Puoti d3edafe1e2 Replace GetCurrentProcess() with NtCurrentProcess() in ntdll. 2005-02-22 19:33:50 +00:00
Dmitry Timoshkov a27be2db55 Make HeapFree(NULL) case faster by retrieving heap pointer after the
memory block pointer test.
2005-01-24 11:27:27 +00:00
Alexandre Julliard 1fd6264244 Fixed the FIXME in RtlNtStatusToDosError, and implemented
RtlGetLastNtStatus and RtlSetLastWin32ErrorAndNtStatusFromNtStatus.
2005-01-04 12:09:32 +00:00
Robert Shearman 2050591370 Fix NtAllocateVirtualMemory declaration and fix users of the
function.
2004-10-11 20:59:06 +00:00
Eric Pouech db52588754 Const correctness. 2004-06-15 00:47:00 +00:00
Alexandre Julliard 9e73f55af3 Store the last error code at the TEB offset used by NT instead of the
Win9x one.
2003-11-25 01:53:23 +00:00
Dimitrie O. Paun c762f5d7af RtlHeapReAllocate() should not allocate memory.
Add small test to make sure it doesn't return.
Don't import ntdll for tests, we need to load it dynamically.
2003-11-25 01:02:02 +00:00
Alexandre Julliard 410e6b7b39 Changed the init code to make libwine load only ntdll and transfer
control to it, and then have ntdll load kernel32 using the normal
loader mechanisms.
Get rid of BUILTIN32_LoadExeModule.
2003-10-10 00:12:17 +00:00
Pavel Roskin 91f234f267 Eliminate dependency on SetLastError(). 2003-10-08 19:10:33 +00:00
Alexandre Julliard e37c6e18d0 Fixed header dependencies to be fully compatible with the Windows
headers (with help from Dimitrie O. Paun).
2003-09-05 23:08:26 +00:00
Alexandre Julliard 06e34ffc12 Minor tracing fix. 2003-08-12 20:34:06 +00:00
Eric Pouech c962a6997c - in kernel32, replaced all {Enter|Leave}CriticalSection calls with
ntdll counterparts
- {Enter|Leave}CriticalSection is now a pure forward from kernel32 to
  ntdll (we now longer can use {Enter|Leave}CriticalSection in kernel32)
- replaced a few kernel32 heap management calls from ntdll, with
  RtlHeap* equivalents
2003-06-23 18:12:28 +00:00
Alexandre Julliard 6bc5091160 Start to make use of the proper PEB structure for process
information.
2003-05-22 03:44:01 +00:00
Dmitry Timoshkov 7baa67cbcb Added missing return in HEAP_ValidateInUseArena. 2003-05-12 03:32:07 +00:00
Alexandre Julliard 46adbecd13 Insert the last free block of a subheap at the end of the free list to
avoid using uncomitted space unless really necessary.
2003-04-14 21:44:21 +00:00
Alexandre Julliard c44555bb37 Added support for marking heap blocks as inaccessible/uninitialized if
valgrind is installed, based on a patch by Adam Gundy.
2003-04-02 01:42:06 +00:00
Jon Griffiths cd4234aa49 Documentation updates. 2003-03-18 18:35:48 +00:00
Alexandre Julliard 43690e9e47 Removed no longer needed inclusion of heap.h. 2003-01-24 00:54:58 +00:00
Dimitrie O. Paun 297f3d898d Define NONAMELESS{STRUCT,UNION} explicitly in the files that need them. 2003-01-07 20:36:20 +00:00
Patrik Stridvall 75dee506ae Replace 0x%p with %p. 2002-12-05 19:56:15 +00:00
Andrew John Hughes ed800c69c8 Build ntdll with -DSTRICT. 2002-11-21 03:45:01 +00:00
Alexandre Julliard 69d7cb5681 Avoid calling some kernel functions. 2002-09-18 23:13:35 +00:00
Alexandre Julliard 341b7dceb4 Implemented the ntdll virtual memory functions, and made the kernel
functions use them.
2002-09-17 18:54:42 +00:00
Francois Gouget bba4bb1bc4 Remove references to PCVOID and LPUINT.
Remove types that don't exist on Windows.
2002-09-17 01:35:09 +00:00
Patrik Stridvall 9c1de6de30 Moved all the content of the DDK files ntdef.h and ntddk.h to
winternl.h.
2002-09-12 22:07:02 +00:00
Alexandre Julliard a6cff2b3c8 We have to use the Rtl variant of Enter/LeaveCriticalSection inside
ntdll.
2002-07-31 17:56:54 +00:00
Alexandre Julliard 82696f43ee Make sure allocated blocks are aligned on an 8-byte boundary. 2002-07-01 18:41:47 +00:00
Alexandre Julliard 4301d3e5c6 Restored MakeCriticalSectionGlobal that got lost somewhere. 2002-06-13 21:46:46 +00:00
Vincent Béron 9a62491660 Removed trailing whitespace. 2002-05-31 23:06:46 +00:00
Alexandre Julliard 7fbd74ea55 Replaced the GET/PUT_UA macros by memcpy. Fixed a few big-endian
issues.
2002-05-23 02:53:10 +00:00
Alexandre Julliard 0799c1a780 Added LGPL standard comment, and copyright notices where necessary.
Global replacement of debugtools.h by wine/debug.h.
2002-03-09 23:29:33 +00:00
Alexandre Julliard b0f586178a Moved heap functions to ntdll.
Got rid of internal heap flags.
Reimplemented MapLS to not depend on the segptr heap.
2001-12-19 19:16:27 +00:00