Commit Graph

4594 Commits

Author SHA1 Message Date
ed1f34dca3 formalize MyProcessor::roots (for Compiler) in types.def 2014-07-11 13:25:21 -06:00
052f2498aa formalize Machine::roots in types.def 2014-07-11 13:25:21 -06:00
75f2dd013c remove old function-based accessors 2014-07-11 13:25:21 -06:00
a1583f1ecc touch up type safety in types.def 2014-07-11 13:25:20 -06:00
c796bdbde4 add bootimage-generator/main.cpp changes 2014-07-11 13:25:20 -06:00
b4798550a3 add machine.cpp changes 2014-07-11 13:25:20 -06:00
b5a1d97bd1 add interpret.cpp changes 2014-07-11 13:25:20 -06:00
9f0327bb9e add process and classpath-avian changes 2014-07-11 13:25:20 -06:00
86d9249f29 add builtin.cpp changes 2014-07-11 13:25:20 -06:00
924f242e66 add compile.cpp changes 2014-07-11 13:25:20 -06:00
4df8f59f3c staticly type finalizer and cleaner 2014-07-11 13:25:20 -06:00
1e201e54fc staticly type GcContinuation* 2014-07-11 13:25:20 -06:00
b8ddc779a2 staticly type GcReference 2014-07-11 13:25:20 -06:00
bb331e9414 make callNode and methodRuntimeData.native better statically typed 2014-07-11 13:25:19 -06:00
1da8170c66 apply jnienv + java-common changes 2014-07-11 13:25:19 -06:00
9c93c5989c apply classpath-common.h changes 2014-07-11 13:25:19 -06:00
00e2307c39 apply machine.h changes 2014-07-11 13:25:19 -06:00
9ffbd7e9fe staticly type GcClassLoader instances 2014-07-11 13:25:19 -06:00
6a0502bbfe add util.cpp/.h changes 2014-07-11 13:25:19 -06:00
51368651dc better statically type Processor interface 2014-07-11 13:25:19 -06:00
0ec87c6aa1 statically type Addendum.pool better 2014-07-11 13:25:19 -06:00
9f5912c2b6 add stronger typing to method.code 2014-07-11 13:25:19 -06:00
9248f8f8ad add stronger typing to code.singleton 2014-07-11 13:25:18 -06:00
4754a92b75 split code.stackMap out of code.pool use 2014-07-11 13:25:18 -06:00
083dc17810 add stronger typing to code.lineNumberTable 2014-07-11 13:25:18 -06:00
194e3b2701 add VMClass changes 2014-07-11 13:25:18 -06:00
9b36dca846 generate better typed accessors from type-generator (and switch to using standard library there) 2014-07-11 13:25:17 -06:00
263e349cae rename assert to assertT, to avoid conflict with std assert macro 2014-07-11 09:32:57 -06:00
7ea4b584b8 include stdc++ <new> 2014-07-11 09:32:57 -06:00
5adb558355 add Code to classpath 2014-07-11 09:32:57 -06:00
43bd838c86 generate accessors for array fields 2014-07-11 09:32:57 -06:00
b5699cc9dc move Machine::*Type to GcObject::*Type 2014-07-11 09:32:55 -06:00
13452beaab use arg-parser in type-generator 2014-07-11 09:12:34 -06:00
d4d232db89 Merge pull request #288 from dicej/eiie-errors
only wrap Exceptions in ExceptionInInitializerErrors, not Errors
2014-07-10 14:01:05 -06:00
1b83ef7eb3 only wrap Exceptions in ExceptionInInitializerErrors, not Errors 2014-07-10 13:43:10 -06:00
60df08d023 Merge pull request #283 from dicej/findclass-onload
fix case of JNIEnv::FindClass called from JNI_OnLoad
2014-07-01 21:39:52 -06:00
5d3c612d0e fix JNIEnv::FindClass calls from JNI_OnLoad for all supported class libraries
This also fixes the some Android build rot and updates the version of
OpenSSL used.
2014-07-01 10:53:26 -06:00
97e2ef809c Merge pull request #286 from joshuawarner32/allow-stress-builds
allow stress and stress-major as valid mode= settings in the makefile
2014-07-01 09:47:54 -06:00
735eaaba21 Merge remote-tracking branch 'remotes/dicej/findclass-onload' 2014-07-01 08:39:56 -06:00
65e930f73e use stress-major consistently in makefile 2014-07-01 08:05:12 -06:00
371e55c112 allow stress and stress-major as valid mode= settings in the makefile (note: all tests fail in both modes) 2014-06-30 13:47:19 -06:00
debd0e289a Merge pull request #285 from dicej/warnings
fix unused declaration/definition warnings from GCC 4.9
2014-06-30 10:13:08 -06:00
254e3f938d fix unused declaration/definition warnings from GCC 4.9 2014-06-30 09:54:01 -06:00
5559fbe5e7 Merge pull request #284 from dicej/dump
only generate crash dump if faulting instruction is in main executable
2014-06-30 09:13:22 -06:00
f40dcddd8d only generate crash dump if faulting instruction is in main executable
The VM should only assume it should/will crash if it triggers an
e.g. EXCEPTION_ACCESS_VIOLATION itself.  In other words, if some
non-VM code triggers such an event, the VM should let that code handle
it as appropriate.  Avian already does this properly, but it also
generates crash dumps for each event encountered if avian.crash.dir is
set, regardless if whether the VM triggered it or not.  This can be a
problem if such events are generated frequently -- a full memory dump
takes a long time to write and a lot of disk space.

Ideally, we'd have some reliable way to determine whether the faulting
instruction pointer belongs to the VM or not, but the closest thing I
could come up with was to compare the module that owns the address
with the module representing the main executable.  This can lead to
both false positives (e.g. application code in the main executable
which is not part of the VM) and false negatives (e.g. when the VM is
loaded from a library instead of the main executable), but it's still
an improvement over the status quo.

Even better would be to ensure that the VM's exception handler is the
very last one to run, so that we know for sure that the error is
unrecoverable and thus it is appropriate to do a full memory dump.
2014-06-27 12:45:05 -06:00
9e7d27bd15 Merge pull request #281 from joshuawarner32/darwin-platform-reorg
rename platform=darwin -> platform={ios,macosx}, fix ios simulator build
2014-06-24 15:49:54 -06:00
4dc76a50a2 fix case of JNIEnv::FindClass called from JNI_OnLoad
If an JNI_OnLoad implementation calls FindClass when using the OpenJDK
class library, the calling method on the Java stack will be
ClassLoader.loadLibrary.  However, we must use the class loader of the
class attempting to load the library in this case, not the system
classloader.

Therefore, we now maintain a stack such that the latest class to load
a library in the current thread is at the top, and we use that class
whenever FindClass is called by ClassLoader.loadLibrary (via
JNI_OnLoad).

Note that this patch does not attempt to address the same problem for
the Avian or Android class libraries, but the same strategy should
work for them as well.
2014-06-23 17:25:42 -06:00
2eb6746658 Merge pull request #282 from dicej/protect
remove redundant PROTECT usage
2014-06-23 11:30:10 -06:00
9d4f9901bc remove redundant PROTECT usage
This was causing crashes at GC time since we ended up visiting the
same reference twice in a single GC cycle.
2014-06-23 10:40:22 -06:00
23f4e4cc71 update README.md with darwin->{macosx,ios} rename 2014-06-23 08:19:55 -06:00