Joel Dice
1a0eef7e2d
add support for building with MSVC on Windows
2009-08-26 18:26:44 -06:00
Joel Dice
4297fa04b3
run java finalizers in a separate thread to guarantee no application locks are held when doing so
2009-08-24 17:51:31 -06:00
Joel Dice
a56c1d8765
fix GC-safety bug in resolveSpec
2009-08-20 12:37:03 -06:00
Joel Dice
6196f61938
clear Thread::javaThread before entering zombie state, since clearing it in Thread::dispose is too late - the reference may already be invalid since we don't visit GC roots for zombie threads
2009-08-20 08:49:01 -06:00
Joel Dice
c4b5ecec90
implement Runtime.addShutdownHook and Thread.setDaemon; avoid segfaults due to an application calling e.g. CallStaticBooleanMethod when it really meant CallStaticVoidMethod
2009-08-19 14:27:03 -06:00
Joel Dice
01dcb1661b
don't resolve all constant pool entries in linkClass - just the field and method specs
2009-08-18 15:27:21 -06:00
Joel Dice
c4edabdc02
implement ClassLoader.resolveClass and ensure class is linked in e.g. Class.getMethods; minor bugfixes
2009-08-18 14:26:28 -06:00
Joel Dice
7fcbf9d85c
fix reading 2-byte UTF-8 constants
2009-08-14 08:52:31 -06:00
Joel Dice
3facd3f735
treat SoftReferences as WeakReferences; do vtable or interface table lookups as necessary in MyProcessor::invoke; various bugfixes
2009-08-13 09:17:05 -06:00
Joel Dice
db58097165
re-enable finalization
2009-08-11 10:04:41 -06:00
Joel Dice
fb5b0570c3
replace slashes with dots in class name before passing it to ClassLoader.loadClass
2009-08-11 09:20:49 -06:00
Joel Dice
28b5c46a0b
fix GC safety bug in makeNewGeneral
2009-08-10 17:35:44 -06:00
Josh warner
1d3ef1fc43
Merge branch 'master' of git://oss.readytalk.com/avian, fixed problems that occured in broader testing
...
Conflicts:
src/compile.cpp
src/compiler.cpp
src/powerpc.cpp
src/x86.S
src/x86.cpp
2009-08-10 13:20:23 -06:00
Joel Dice
001000364d
add classloader parameter to functions which may directly or indirectly load classes; include methods inherited from interfaces (but not explicitly declared) in method tables and virtual tables of abstract classes
2009-08-10 07:56:16 -06:00
Joel Dice
d5f4811b43
check for exception after calling resolveClass in parseInterfaceTable
2009-08-04 08:50:04 -06:00
Joel Dice
f8bf83bfec
fix recent regression in findInHierarchy
2009-08-04 08:42:16 -06:00
Joel Dice
cb563f76e1
check superinterfaces when looking up methods and fields
2009-08-03 16:16:41 -06:00
Joel Dice
ad0592df6f
print class name properly when throwing NoSuchMethodError
2009-07-29 10:32:16 -06:00
Joel Dice
7b183e8f4e
don't run Java finalizers when exiting the VM
2009-07-28 16:58:01 -06:00
Joel Dice
27d863790c
Merge branch 'win64' into gnu
...
Conflicts:
makefile
src/compile-x86.S
src/x86.S
src/x86.cpp
2009-07-25 20:48:36 -06:00
Joel Dice
3787985b25
implement basic finalization support
...
This implementation does not conform to the Java standard in that
finalize methods are called from whichever thread happens to be garbage
collecting, and that thread may hold locks, whereas the standard
guarantees that finalize will be run from a thread which holds no locks.
Also, an object will never be finalized more than once, even if its
finalize method "rescues" (i.e. makes reachable) the object such that it
might become unreachable a second time and thus a candidate for
finalization once more. It's not clear to me from the standard if this
is OK or not.
Nonwithstanding the above, this implementation is useful for "normal"
finalize methods which simply release resources associated with an
object.
2009-07-21 18:57:55 -06:00
Joel Dice
514d0bf7e5
fix deadlocks and other misbehaviors in class initialization code
2009-07-20 14:12:38 -06:00
Joel Dice
138f8444df
Merge branch 'master' into gnu
2009-07-20 08:27:33 -06:00
Joel Dice
8662361f71
Merge branch 'master' of oss.readytalk.com:/var/local/git/avian
2009-07-20 08:27:17 -06:00
Joel Dice
47ab980550
fix thread heap overflow corner case in allocate3
...
The previous code relied on the invalid assumption that the thread-local
heaps for all threads would have been cleared immediately following a
garbage collection. However, the last thing the garbage collection
function does is run finalizers which may allocate new objects. This
can lead allocate3 to call allocateSmall with a size which is too large
to accomodate, overflowing the heap.
The solution is to iterate until there really is enough room for the
original allocation request.
2009-07-17 19:37:46 -06:00
Joel Dice
3e4336eba4
rearrange finalization code in collect to avoid inifinite recursion when finalizer allocates memory
2009-07-17 09:29:24 -06:00
Joel Dice
9c9eb86b2f
fix deadlock in allocate3 when another thread wants to enter the exclusive state
2009-07-16 11:51:35 -06:00
Josh warner
9681a8a1ff
added debugging method 'vmAddressFromLine'
2009-06-11 09:44:37 -06:00
Joel Dice
f239424930
implement NewDirectByteBuffer etc. properly when building against Classpath; call JNI_OnLoad if found in newly-loaded libraries
2009-06-10 18:15:00 -06:00
Joel Dice
c1ca653fef
intern CONSTANT_Utf8 pool entries to save memory and reduce bootimage size
2009-06-06 18:26:23 -06:00
Joel Dice
ac34bc072c
remove obsolete todo comments
2009-06-06 14:58:06 -06:00
Joel Dice
0857f53651
more progress on GNU Classpath compatibility
2009-06-04 17:21:42 -06:00
Joel Dice
98be5c509e
more progress towards GNU Classpath compatibility
2009-06-03 16:17:55 -06:00
Joel Dice
ba5105c374
throw NoSuchMethodError in resolveMethod if method not found
2009-06-02 18:55:12 -06:00
Joel Dice
398dec58bb
GC bugfixes
2009-05-17 17:43:48 -06:00
Joel Dice
8cb59c9d4c
various bugfixes to get Continuations test working
2009-05-16 02:03:03 -06:00
Joel Dice
eb3bd25aa1
code cleanup and build fixes
2009-05-04 19:04:17 -06:00
Joel Dice
0cd4eb2655
early sketch of continuation support
2009-05-03 14:57:11 -06:00
Joel Dice
d1018bf078
update copyright years
2009-03-15 12:02:36 -06:00
Joel Dice
6e6035505c
zero heap space ahead of time when allocating raw storage and garbage collecting, not when allocating individual objects
...
This helps us support the Java Memory Model without adding a memory
barrier to every object allocation. It's also potentially more
efficient, since we zero out each heap segment all at once instead of
bit-by-bit with each object allocation.
2009-03-03 20:05:48 -07:00
Joel Dice
2ca8132d97
implement support for volatile fields
2009-03-02 20:18:15 -07:00
Joel Dice
a1ec71423e
Merge branch 'master' into powerpc
...
Conflicts:
makefile
src/assembler.h
src/binaryToMacho.cpp
src/compile.cpp
src/compiler.cpp
src/x86.cpp
2009-02-09 16:22:01 -07:00
Joel Dice
54ad7c4e98
tolerate ConstantValue attributes on non-static fields, since the compiler ensures that they are initialized in any constructors for that class (i.e., the VM does not need to do anything special to initialize them)
2009-01-10 12:25:52 -07:00
Joel Dice
58a90f2b84
fix regressions for non-bootimage case
2008-12-03 19:09:57 -07:00
Joel Dice
25ade1484a
lots of bugfixes and refactoring
2008-12-01 19:38:00 -07:00
Joel Dice
eaf30eb909
fix static class initialization when using a boot image
2008-11-29 21:58:09 -07:00
Joel Dice
e44f326377
various bugfixes
2008-11-29 18:39:42 -07:00
Joel Dice
0ec5ad3701
update makefile to optionally build and use a boot image; various bugfixes
2008-11-29 16:08:14 -07:00
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
4d1af63ed2
initial work on booting from boot image
2008-11-28 15:02:45 -07:00
Joel Dice
61ecb56e21
Merge branch 'master' of oss:/var/local/git/avian into powerpc
2008-11-25 16:19:21 -07:00
Joel Dice
035aa0ecd4
Merge branch 'master' of oss.readytalk.com:/var/local/git/avian into bootimage
...
Conflicts:
src/compile.cpp
src/machine.h
src/util.h
2008-11-23 17:02:34 -07:00
Joel Dice
207f093464
never trigger a GC due to an immortal allocation
2008-11-23 11:48:39 -07:00
Joel Dice
fb9b2bf173
avoid creating garbage when iterating over hashmaps
2008-11-22 16:38:41 -07:00
Joel Dice
8a7852172e
increase heap pool size and fixed footprint threshold constants based on performance profiling and experimentation
2008-11-22 14:47:18 -07:00
Joel Dice
6500f1eff6
initial work to support boot image creation and use
2008-11-21 16:20:35 -07:00
Joel Dice
c80eb51c17
Merge branch 'master' into powerpc
...
Conflicts:
makefile
src/assembler.h
src/compile.cpp
src/compiler.cpp
src/compiler.h
src/finder.cpp
2008-11-11 08:21:48 -07:00
Joel Dice
4d613f404f
use dbghelp.dll to generate crash dump file on Windows XP and later
...
The dump is written to the directory specified via the avian.crash.dir
system property if that property is set and is not written otherwise.
2008-10-27 15:13:27 -06:00
Joel Dice
003afdc918
fix heap dump facility to visit all roots
2008-10-24 18:48:10 -06:00
Joel Dice
6a5116e7a7
implement primitive heap dump facility for memory profiling, accessible via Runtime.dumpHeap
...
The proper way to do this is to implement a subset of JVMTI, but this
will do the job for now.
2008-10-21 17:38:20 -06:00
Joel Dice
07daa9be51
free properties array in Machine::dispose
2008-09-30 17:03:13 -06:00
Joel Dice
ac988f7a0d
fix static field lookup from interfaces
2008-09-26 18:17:13 -06:00
Joel Dice
1657fb794c
support logging addresses and names of JIT-compiled methods to a file specified via a system property
2008-09-19 11:34:37 -06:00
Joel Dice
4a022147cd
Merge branch 'master' of oss.readytalk.com:/var/local/git/avian into powerpc
2008-08-16 12:56:41 -06:00
Joel Dice
c8cc7d931b
maintain a table to look up methods called via JNI
...
This simplifies the JNI implementation for looking up methods. It also
fixes a bug where an applications calls GetStaticMethodID with class A
and then calls CallStatic<Type>Method with class B which extends A. The
old code would look in the wrong method table and thus call the wrong
method.
2008-08-15 12:32:33 -06:00
Joel Dice
22a5707966
remove obsolete code from postVisit; upgrade assert to expect for debugging
2008-08-11 15:16:55 -06:00
Joel Dice
4299063be9
Merge branch 'master' of oss:/var/local/git/avian into powerpc
2008-07-23 17:58:36 -06:00
Joel Dice
522e2ebc9f
fix bug in debug helper function
2008-07-21 14:41:29 -06:00
Joel Dice
6e3bbd3c5f
Merge branch 'master' of oss:/var/local/git/avian into powerpc
2008-07-17 17:34:52 -06:00
Zsombor
0e539615e7
add Thread.name field
2008-07-13 18:21:04 -06:00
Joel Dice
2343483d8e
Merge branch 'master' of oss:/var/local/git/avian into powerpc
2008-07-13 12:47:49 -06:00
Joel Dice
e31f795661
include Thread::backupHeapIndex in heap footprint calculation
2008-07-11 19:21:53 -06:00
Joel Dice
23043d140f
snapshot
2008-07-05 14:21:13 -06:00
Joel Dice
61e65098df
use virtual dispatch when calling Thread.run from VM
2008-06-25 10:28:11 -06:00
Eric Scharff
2bfe6f0d13
Ensure we align the stack before any time we might enter a C function from
...
generated code
2008-06-16 10:55:29 -06:00
Joel Dice
7dcd109567
assert thread is in exclusive or exit state in removeMonitor
2008-05-05 07:07:59 -06:00
Joel Dice
ebb498587f
enter exclusive state in collect function instead of requiring caller to enter that state before calling
2008-05-05 07:04:53 -06:00
Joel Dice
d072b71c39
nth attempt to clean up MyStackWalker
2008-04-23 10:33:31 -06:00
Joel Dice
df5258d1d8
various bugfixes concerning Thread.getStackTrace
2008-04-21 16:36:13 -06:00
Joel Dice
0d3e6b7793
simplify memory allocation interfaces
2008-04-13 12:15:04 -06:00
Joel Dice
04c3abc967
fix broken thread tree traversal in machine.cpp
2008-04-11 16:48:05 -06:00
Joel Dice
2d6eebf4d1
more progress on general stack tracing
2008-04-09 13:08:13 -06:00
Joel Dice
3915371897
Merge branch 'master' of oss:/var/local/git/avian into dynamic
2008-04-02 06:58:19 -06:00
Joel Dice
6379f50d35
fix thinko in stringChars
2008-04-02 06:57:25 -06:00
Joel Dice
0aebe334b3
Merge branch 'master' of oss:/var/local/git/avian into dynamic
2008-04-01 17:25:18 -06:00
Joel Dice
08b401f337
implement GetStringLength, GetStringChars, and ReleaseStringChars
2008-04-01 17:24:43 -06:00
Joel Dice
1c49b3bc1b
Merge branch 'master' of oss:/var/local/git/avian into dynamic
2008-04-01 11:38:15 -06:00
Joel Dice
907382bcee
fix broken field alignment in parseFieldTable which caused longs to overlap other fields on 32-bit systems in certain cases
2008-03-31 18:34:57 -06:00
Joel Dice
74295bb707
interpret avian.bootstrap property as a complete file name
2008-03-31 12:57:49 -06:00
Joel Dice
357bd29460
support building Avian as a self-contained dynamic library
2008-03-30 21:43:43 -06:00
Joel Dice
9cb21a29a6
fix handling of interface vtables for abstract classes
2008-03-21 17:42:36 -06:00
Joel Dice
56389dd2e1
don't populate interface vtables for abstract classes
2008-03-20 18:37:21 -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
d693393293
remove Machine::lastLibrary and rename firstLibrary to libraries
2008-01-29 08:19:15 -07:00
Joel Dice
008ac07079
refactor native method resolution to be simpler and more robust
2008-01-28 10:27:02 -07:00
Joel Dice
de6a1ded92
ensure that we populate the interface vtables of a class which does not declare any new virtual methods but does implement new interfaces relative to its superclass
2008-01-28 08:12:06 -07:00
Joel Dice
e403a625d1
second try to fix library symbol lookup
2008-01-25 16:38:26 -07:00
Joel Dice
35ada0ea65
search libraries for symbols in the order they are loaded
2008-01-25 16:25:30 -07:00
Joel Dice
73ba3fcef7
fix build breakage in stress mode
2008-01-23 09:55:29 -07:00
Joel Dice
125fe3440e
allow java.lang.Object with no virtual methods, which may occur due to code shrinking
2008-01-21 16:42:12 -07:00
Joel Dice
ee60d48cfe
fix subtle bug in hashMapInsert which caused us to update the old array previously associated with the hash map, whereas a GC causes the table to be resized when a weak reference is removed and thus a new array used
2008-01-19 13:12:16 -07:00
Joel Dice
d97fab6036
comment out some debugging log messages
2008-01-18 18:49:30 -07:00
Joel Dice
35160e46d8
don't include embedded boot classpath in libvm.a, only the executable
2008-01-18 17:54:36 -07:00
Joel Dice
e2fc8a62c7
permit state transitions from idle to exclusive
2008-01-17 18:47:32 -07:00
Joel Dice
9ad00d0ea3
remove unused function and add some thread state assertions
2008-01-17 18:27:44 -07:00
Joel Dice
f5f7b01689
remove extern "C" modifier from vmPrintTrace definition
2008-01-16 10:48:14 -07:00
Joel Dice
4571e75f7a
add vmPrintTrace function which can print a Java stack trace without allocating memory
2008-01-16 10:30:12 -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
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
e4fbadd051
JIT-related GC safety fixes
2007-12-16 15:41:07 -07:00
Joel Dice
12e10b57f5
JIT bugfixes and new instructions; exception propagation and stack traces are functional but not yet entirely correct
2007-12-14 11:27:56 -07:00
Joel Dice
fdeafe46fd
2+2 test now works with new JIT code
2007-12-11 14:26:59 -07:00
Joel Dice
d8374a76e2
check again for entry in monitorMap after entering the exclusive state in objectMonitor() in case another thread beat us to creating a monitor for the object
2007-11-29 08:03:45 -07:00
Joel Dice
5b6a63cbca
avoid uninitialized value warnings
2007-11-27 16:04:15 -07:00
Joel Dice
5fa7b074b4
various threading bugfixes
2007-11-27 15:23:00 -07:00
Joel Dice
0bbe9489a7
flesh out call tracing in new JIT code
2007-11-26 16:15:53 -07:00
Joel Dice
49ed41daa0
refactor stack walking interface in processor.h and sketch stack walking implementation in compile2.cpp
2007-11-25 16:00:55 -07:00
Joel Dice
a017dab73a
handle weak maps properly in hashMapResize, hashMapRemove, etc.; move Processor::parameterFootprint() into machine.h/machine.cpp
2007-11-20 15:24:02 -07:00
Joel Dice
313816ee34
minor tweaks to reduce memory usage
2007-11-06 08:29:05 -07:00
Joel Dice
fe0e542afe
finish support for inline vtables in class objects; convert constant pools from arrays to singletons to reduce memory footprint
2007-11-05 14:40:17 -07:00
Joel Dice
f1bc2be9f9
if we can't resolve a bootstrap class in isAssignableFrom(), we swallow the exception and return false
2007-11-05 09:08:08 -07:00
Joel Dice
16ea75f91c
preserve vm flags of bootstrap class (except for BootstrapFlag) in updateBootstrapClass()
2007-11-05 08:39:48 -07:00
Joel Dice
19d36cc463
implement impdep1 instruction for lazily loading bootstrap classes
2007-11-05 08:29:43 -07:00
Joel Dice
6c0e0c37e2
snapshot
2007-11-05 07:28:46 -07:00
Joel Dice
514be2dc87
snapshot
2007-11-04 16:10:33 -07:00
Joel Dice
94e9bd0fd2
clean up bootstrap type generation to eliminate redundancy (broken)
2007-11-04 14:15:28 -07:00
Joel Dice
7dfbd87a40
bugfixes
2007-11-02 15:42:19 -06:00
Joel Dice
e820b6a8a4
sketch of singleton support
2007-11-02 15:08:14 -06:00
Joel Dice
80775f6cf8
initial sketch of singleton support
2007-11-02 08:15:06 -06: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
fcc50f4da6
abort if vsnprintf() overflows in makeByteArray
2007-10-26 18:03:28 -06:00
Eric Scharff
6342fc7ccb
Read 2- and 3-byte UTF8 constants gracefully (but not correctly)
2007-10-25 17:58:53 -06:00
Joel Dice
20cc788fa4
support classloading from jar files compiled into the executable
2007-10-25 16:06:05 -06:00
Joel Dice
d4656e8a52
handle ConstantValue attributes for static fields
2007-10-25 13:20:39 -06:00
Joel Dice
b12b779c7f
add support for passing properties to the VM via JNI; use vm.builtins property to specify builtin libraries
2007-10-25 12:33:43 -06:00
Joel Dice
1c90ea5fd6
rewrite main.cpp to use jni.h interface for creating the VM and invoking the main method of the specified class
2007-10-25 09:04:13 -06:00
Joel Dice
92d61c1ba2
superficial tweak
2007-10-24 17:05:14 -06:00
Joel Dice
2c2718fdb5
primitive parseUtf8() implementation to ensure we handle null characters correctly, at least
2007-10-24 15:05:15 -06:00
Joel Dice
ac4b28ffe6
refactor build system to support cross-compiling
2007-10-22 14:56:27 -06:00
Joel Dice
3e84d4438a
revise signatures of mark() and set() to take a target object and offset instead of a target object reference, paving the way for immovable objects
2007-10-22 11:22:30 -06:00
Joel Dice
29b5e81aed
align fields naturally in parseFieldTable
2007-10-16 19:20:36 -06:00
Joel Dice
5f6258045e
implement various floating point instructions; fix Floats.java to actually test something
2007-10-15 13:12:38 -06:00
Joel Dice
659555b6ce
fix use of uninitialized values at root thread creation time when running in stress mode; allocate Thread::defaultHeap on the heap instead of as part of the Thread structure
2007-10-13 19:18:25 -06:00
Joel Dice
96c3b2b6a7
superficial code cleanup
2007-10-12 18:22:52 -06:00
Eric Scharff
05321e97f9
If you pass 0 to printTrace, it will print the stack trace of a null
...
pointer exception. This dramatically simplifies debugging in GDB:
p vm::printTrace(t, 0)
2007-10-12 14:54:37 -06:00
Joel Dice
349fe47c8d
JIT GC progress; fix interface method lookup bug
2007-10-12 11:56:43 -06:00
Joel Dice
d5a8193614
lots of work on stack mapping, plus a couple of bugfixes
2007-10-11 16:43:03 -06:00
Joel Dice
feeaecbfd8
more work on JIT unwinding
2007-10-04 16:41:19 -06:00
Joel Dice
404d996c1e
snapshot
2007-10-03 18:41:54 -06:00
Joel Dice
45dc118ab9
invoke native methods using a common routine, instead of compiling code specific to each method
2007-10-01 09:19:15 -06:00
Joel Dice
7ecb5b9c30
fixes for various recent regressions
2007-09-30 10:32:17 -06:00
Joel Dice
8ae36c05b7
lots of new instructions and bugfixes
2007-09-29 20:48:27 -06:00
Joel Dice
569cfa9e07
implement more instructions; various bugfixes
2007-09-29 14:24:14 -06:00
Joel Dice
79603e284d
sketch of Compiler.compileNative() and ifnull instruction implementation
2007-09-28 17:41:03 -06:00
Joel Dice
d1681c0918
add a few more instructions to compile.cpp and fix bugs in others; invokespecial and invokevirtual are working
2007-09-27 16:20:54 -06:00
Joel Dice
2f3f97d550
clean up compile.cpp and support both x86_64 and i386; further refactoring to support JIT
2007-09-26 17:23:03 -06:00
Joel Dice
e7c8fb645a
JIT works for Instructions.java
2007-09-25 17:53:11 -06:00
Joel Dice
1c90708abf
bugfixes for recent refactoring effort
2007-09-24 07:46:48 -06:00
Joel Dice
8d983c8a39
refactoring effort to pave the way for JIT compilation
2007-09-23 19:39:03 -06:00
Joel Dice
cd990969cd
fix allocation of large objects in allocate2(); remove references to jscheme and SWT in makefile and test directory
2007-09-19 08:16:49 -06:00
Joel Dice
49a3c08cc9
use dlopen()/dlsym() to resolve builtin JNI methods
2007-09-18 17:30:09 -06:00
Joel Dice
b88438d2fd
sketch of JAR support in Finder
2007-09-16 18:13:36 -06:00
Joel Dice
aec0c29084
fix math bug in parseFieldTable which lead to incorrect objectMasks
2007-09-15 11:22:22 -06:00
Joel Dice
b0926e71fb
fix math errors when walking object map in collect()::Client::walk()
2007-09-13 16:45:09 -06:00
Joel Dice
542888a1d3
bugfixes
2007-09-12 21:15:16 -06:00
Joel Dice
7cb3a30a91
sketch of Runtime.exec() and Calendar; misc bugfixes
2007-09-12 18:21:37 -06:00
Joel Dice
e5987f2a22
JNIEnv and JavaVM method implementations
2007-09-10 17:33:58 -06:00
Joel Dice
a9f9755221
more JNIEnvVTable entries
2007-09-07 17:20:21 -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
c6e1644281
fix bug in calculating GC footprint in new heap pool code
2007-08-22 20:24:25 -06:00
Joel Dice
00c611fcf9
Merge branch 'master' of dice:git/vm
2007-08-22 08:50:34 -06:00
Joel Dice
f148fd0668
add Machine::heapPool, allowing threads to acquire replacement heaps up to a point before forcing a GC
2007-08-22 08:50:29 -06:00
Joel Dice
a1caf06955
properly handle classes with no interface table in isAssignableFrom()
2007-08-21 22:03:03 -06:00
Joel Dice
e2f3e80bdf
heap o' bugfixes
2007-08-19 20:57:32 -06:00
Joel Dice
59638543c7
various performance tweaks and bugfixes
2007-08-19 13:45:51 -06:00
Joel Dice
215a52ba54
simplify heap.cpp by allocating segments pessimistically
2007-08-18 15:24:29 -06:00
Joel Dice
aa5e751e69
clean up Array.get(), Array.set(), and Method.invoke() implementations
2007-08-18 11:53:30 -06:00
Joel Dice
71c7013808
more bugfixes
2007-08-14 07:27:10 -06:00
Joel Dice
587dbeb163
bugfixes
2007-08-13 20:35:49 -06:00
Joel Dice
d0e519d992
bugfixes
2007-08-13 19:44:47 -06:00
Joel Dice
ab3ca38580
various bugfixes
2007-08-13 18:37:00 -06:00
Joel Dice
d3931b4853
flesh out resource URL scheme implementation
2007-08-10 17:45:47 -06:00
Joel Dice
1997ea6b8c
acquire class lock before running static initializer; wrap exceptions thrown from static initializers in ExceptionInInitializerError instances
2007-08-01 17:48:36 -06:00
Joel Dice
b56eed68be
implement Thread.[get|set]ContextClassloader()
2007-07-31 18:08:20 -06:00
Joel Dice
38d4ee6e07
flesh out ClassLoader, etc.
2007-07-30 17:19:05 -06:00
Joel Dice
a2bd7d0668
GC stress fixes and other bugfixes; classpath progress
2007-07-29 17:32:23 -06:00
Joel Dice
d5a00c4556
break native hashMap type into hashMap and weakHashMap; start investgating GC stress failures related to or uncovered by new string interning support
2007-07-29 12:52:08 -06:00
Joel Dice
c96a4a5b39
implement String.intern()
2007-07-28 18:02:32 -06:00
Joel Dice
0e373727a2
implement Thread.interrupt()
2007-07-28 15:28:25 -06:00
Joel Dice
abd9c2bc8d
fix primitive class resolution to avoid mistaking normal classes with names like 'B' for primitive classes
2007-07-28 10:55:24 -06:00
Joel Dice
41bee5829e
misc. bugfixes and tweaks
2007-07-28 10:10:13 -06:00
Joel Dice
7212ba1c30
java/io bugfixes and coverage; jni bugfixes; minor refactoring
2007-07-26 18:06:05 -06:00
Joel Dice
9ab88ef619
a static jni method takes the jclass for that method as its second argument; simplify pad() and divide(), and rename divide() to ceiling(); sketch FileInputStream.cpp and FileOutputStream.cpp
2007-07-25 18:48:28 -06:00
Joel Dice
6b0792c881
exception handling and parseMethodTable() bugfixes
2007-07-24 19:56:05 -06:00
Joel Dice
ab47fa7884
fix member/parameter confusion in Thread::Thread()
2007-07-23 21:35:03 -06:00
Joel Dice
527f46d53d
bugfixes; add NullPointerException.java
2007-07-23 21:31:28 -06:00
Joel Dice
823d764998
working reflection
2007-07-23 21:16:59 -06:00