Mercurial > hg > graal-compiler
diff src/share/vm/runtime/thread.cpp @ 1144:9b9c1ee9b3f6
Merge
author | iveresov |
---|---|
date | Wed, 06 Jan 2010 22:21:39 -0800 |
parents | 547f81740344 4ce7240d622c |
children | 7b0e9cba0307 |
line wrap: on
line diff
--- a/src/share/vm/runtime/thread.cpp Wed Dec 23 03:12:16 2009 -0800 +++ b/src/share/vm/runtime/thread.cpp Wed Jan 06 22:21:39 2010 -0800 @@ -973,7 +973,7 @@ return; } - KlassHandle group(this, SystemDictionary::threadGroup_klass()); + KlassHandle group(this, SystemDictionary::ThreadGroup_klass()); Handle threadObj(this, this->threadObj()); JavaCalls::call_special(&result, @@ -1468,7 +1468,7 @@ // so call ThreadGroup.uncaughtException() KlassHandle recvrKlass(THREAD, threadObj->klass()); CallInfo callinfo; - KlassHandle thread_klass(THREAD, SystemDictionary::thread_klass()); + KlassHandle thread_klass(THREAD, SystemDictionary::Thread_klass()); LinkResolver::resolve_virtual_call(callinfo, threadObj, recvrKlass, thread_klass, vmSymbolHandles::dispatchUncaughtException_name(), vmSymbolHandles::throwable_void_signature(), @@ -1484,7 +1484,7 @@ uncaught_exception, THREAD); } else { - KlassHandle thread_group(THREAD, SystemDictionary::threadGroup_klass()); + KlassHandle thread_group(THREAD, SystemDictionary::ThreadGroup_klass()); JavaValue result(T_VOID); JavaCalls::call_virtual(&result, group, thread_group, @@ -1505,7 +1505,7 @@ while (java_lang_Thread::threadGroup(threadObj()) != NULL && (count-- > 0)) { EXCEPTION_MARK; JavaValue result(T_VOID); - KlassHandle thread_klass(THREAD, SystemDictionary::thread_klass()); + KlassHandle thread_klass(THREAD, SystemDictionary::Thread_klass()); JavaCalls::call_virtual(&result, threadObj, thread_klass, vmSymbolHandles::exit_method_name(), @@ -1743,7 +1743,7 @@ // Check for pending async. exception if (_pending_async_exception != NULL) { // Only overwrite an already pending exception, if it is not a threadDeath. - if (!has_pending_exception() || !pending_exception()->is_a(SystemDictionary::threaddeath_klass())) { + if (!has_pending_exception() || !pending_exception()->is_a(SystemDictionary::ThreadDeath_klass())) { // We cannot call Exceptions::_throw(...) here because we cannot block set_pending_exception(_pending_async_exception, __FILE__, __LINE__); @@ -1852,14 +1852,14 @@ if (is_Compiler_thread()) return; // This is a change from JDK 1.1, but JDK 1.2 will also do it: - if (java_throwable->is_a(SystemDictionary::threaddeath_klass())) { + if (java_throwable->is_a(SystemDictionary::ThreadDeath_klass())) { java_lang_Thread::set_stillborn(threadObj()); } { // Actually throw the Throwable against the target Thread - however // only if there is no thread death exception installed already. - if (_pending_async_exception == NULL || !_pending_async_exception->is_a(SystemDictionary::threaddeath_klass())) { + if (_pending_async_exception == NULL || !_pending_async_exception->is_a(SystemDictionary::ThreadDeath_klass())) { // If the topmost frame is a runtime stub, then we are calling into // OptoRuntime from compiled code. Some runtime stubs (new, monitor_exit..) // must deoptimize the caller before continuing, as the compiled exception handler table @@ -3095,6 +3095,12 @@ warning("java.lang.ArithmeticException has not been initialized"); warning("java.lang.StackOverflowError has not been initialized"); } + + if (EnableInvokeDynamic) { + // JSR 292: An intialized java.dyn.InvokeDynamic is required in + // the compiler. + initialize_class(vmSymbolHandles::java_dyn_InvokeDynamic(), CHECK_0); + } } // See : bugid 4211085.