hotspot/src/share/vm/runtime/javaCalls.cpp
void JavaCalls::call(JavaValue* result, methodHandle method, JavaCallArguments* args, TRAPS) {
{- -------------------------------------------
(1) (assert)
---------------------------------------- -}
// Check if we need to wrap a potential OS exception handler around thread
// This is used for e.g. Win32 structured exception handlers
assert(THREAD->is_Java_thread(), "only JavaThreads can make JavaCalls");
{- -------------------------------------------
(1) os::os_exception_wrapper() 経由で, JavaCalls::call_helper() を呼び出す.
(なお, os::os_exception_wrapper() を経由するのは,
この時点までに積まれたスタック内のネイティブコードが
どこかで勝手に独自の例外ハンドラをインストールしているかもしれないため)
---------------------------------------- -}
// Need to wrap each and everytime, since there might be native code down the
// stack that has installed its own exception handlers
os::os_exception_wrapper(call_helper, result, &method, args, THREAD);
}
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.