hotspot/src/share/vm/runtime/javaCalls.cpp
void JavaCalls::call_special(JavaValue* result, KlassHandle klass, Symbol* name, Symbol* signature, JavaCallArguments* args, TRAPS) {
{- -------------------------------------------
(1) (変数宣言など)
---------------------------------------- -}
CallInfo callinfo;
{- -------------------------------------------
(1) LinkResolver::resolve_special_call() を呼んで,
呼び出し先に対応する methodOop 情報を取得する
(以下の callinfo にセットされて返される).
(なお, まだ resolve が終わっていなければ resolve も行う)
---------------------------------------- -}
LinkResolver::resolve_special_call(callinfo, klass, name, signature, KlassHandle(), false, CHECK);
{- -------------------------------------------
(1) (変数宣言など)
---------------------------------------- -}
methodHandle method = callinfo.selected_method();
{- -------------------------------------------
(1) (assert)
---------------------------------------- -}
assert(method.not_null(), "should have thrown exception");
{- -------------------------------------------
(1) JavaCalls::call() で, 実際の呼び出し処理を行う.
---------------------------------------- -}
// Invoke the method
JavaCalls::call(result, method, args, CHECK);
}
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.