Commit Graph

29 Commits

Author SHA1 Message Date
Joel Dice
0ef2ee1d02 refactor Segment::Map to support map data which is not allocated as part of the segment data 2008-11-29 13:37:03 -07:00
Joel Dice
702525fd32 support immortal heap area in heap.cpp 2008-11-28 19:31:06 -07:00
Joel Dice
6f1d02dae7 remove the libstdc++ dependency once and for all
The trick is to make all destructors non-virtual.  This is safe because
we never use the delete operator, which is the only case where virtual
destructors are relevant.  This is a better solution than implementing
our own delete operator, because we want libraries loaded at runtime to
use the libstdc++ version, not ours.
2008-10-28 15:40:50 -06:00
Joel Dice
18d25468fe optimize common case of setting a single object field so we don't acquire the heap lock unnecessarily 2008-04-23 18:08:24 -06:00
Joel Dice
0d3e6b7793 simplify memory allocation interfaces 2008-04-13 12:15:04 -06:00
Joel Dice
2edaa82801 prepend copyright notice and license to all source files; add license.txt and readme.txt 2008-02-19 11:06:52 -07:00
Joel Dice
2f83468b80 remove context argument from Allocator::tryAllocate and Allocator::allocate, since we aren't using it after all 2008-01-14 16:37:24 -07:00
Joel Dice
a89c22b493 force major collection under low memory condition 2008-01-14 09:39:57 -07:00
Joel Dice
0298865efa refactor memory allocation to allow better detection and handling of low-memory conditions 2008-01-13 15:05:08 -07:00
Joel Dice
8e5ce11047 refactor memory management code
We now support immortal objects, which the GC will scan for references
but not consider for collection.  On x86_64, we allocate JIT code memory
via mmap, which lets us map memory into the bottom 2GB of the address
space, ensuring that 32-bit relative jumps and calls work.
2008-01-09 18:20:36 -07:00
Joel Dice
7f1837fecd move fixed object (mark and sweep) support into heap.cpp and refine algorithms for determining when and how much to GC 2007-10-28 13:14:53 -06:00
Joel Dice
60072b9fdc implement fixed object support 2007-10-27 19:54:30 -06:00
Joel Dice
bd4d9fdeb2 several things: change object typedef to Object* instead of void* to improve type safety; add JNICALL attributes to JNI functions; implement additional JavaVM methods 2007-09-06 18:21:52 -06:00
Joel Dice
215a52ba54 simplify heap.cpp by allocating segments pessimistically 2007-08-18 15:24:29 -06:00
Joel Dice
de9213ce30 finish java/lang/ref/* support; add wrapper classes for primitives 2007-07-19 21:18:25 -06:00
Joel Dice
b70e4b368f sketch of finalizer/weak reference overhaul; type generator bugfixes involving array member layout 2007-07-09 19:43:43 -06:00
Joel Dice
32b5d070fb simplify monitor lookup; add finalization 2007-07-02 08:19:05 -06:00
Joel Dice
bb16d8e62b snapshot (broken) 2007-07-01 19:42:35 -06:00
Joel Dice
4e07acb26c it builds! 2007-06-20 13:20:25 -06:00
Joel Dice
d4d155c834 snapshot 2007-06-20 11:42:13 -06:00
Joel Dice
1a05eb2739 snapshot 2007-06-20 10:58:35 -06:00
Joel Dice
caac00e5ff start rough sketch of GC code in heap.cpp 2007-06-19 20:28:31 -06:00
Joel Dice
6756ade3bd update generated type code and fix most link errors 2007-06-18 13:23:44 -06:00
Joel Dice
bb2494be83 use ACQUIRE_RAW instead of ACQUIRE in set(), since it will only block for a bounded interval; rename some Heap methods 2007-06-15 10:00:08 -06:00
Joel Dice
1853ea825e change Heap::markTenured() return type to void 2007-06-14 18:51:48 -06:00
Joel Dice
f5cb9b3bf1 implement/update ACQUIRE and ACQUIRE_RAW macros; refine set() implementation 2007-06-14 18:50:55 -06:00
Joel Dice
86b7a75977 implement set(); minor tweaks elsewhere 2007-06-08 08:23:04 -06:00
Joel Dice
f6e369c424 add public access specifiers to Heap::Vistor and Heap::Iterator 2007-06-02 19:58:47 -06:00
Joel Dice
3a2f478521 add heap.h 2007-06-02 17:36:55 -06:00