hotspot/src/share/vm/oops/instanceKlass.cpp
methodOop instanceKlass::uncached_lookup_method(Symbol* name, Symbol* signature) const {
{- -------------------------------------------
(1) (変数宣言など)
---------------------------------------- -}
klassOop klass = as_klassOop();
{- -------------------------------------------
(1) instanceKlass::find_method() を呼んで, 対象メソッドを探す.
見つかれば, それをリターン.
見つからなければ, スーパークラスを再帰的に調べる
(メソッドが見つかるか, スーパークラスを全て調べ尽くすまで繰り返し.
最後まで見つからなければ NULL をリターン)
---------------------------------------- -}
while (klass != NULL) {
methodOop method = instanceKlass::cast(klass)->find_method(name, signature);
if (method != NULL) return method;
klass = instanceKlass::cast(klass)->super();
}
return NULL;
}
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.