ciKlass クラスの具象サブクラスの1つ. instanceKlass 用の ciKlass クラス.
((cite: hotspot/src/share/vm/ci/ciInstanceKlass.hpp))
// ciInstanceKlass
//
// This class represents a klassOop in the HotSpot virtual machine
// whose Klass part is an instanceKlass. It may or may not
// be loaded.
class ciInstanceKlass : public ciKlass {
以下の箇所に格納されている (#TODO 他の箇所).
(ダミーの ciInstanceKlass オブジェクト)
unloaded なクラスを表す ciInstanceKlass オブジェクトが格納されている.
(正確には, このフィールドは ciKlass の GrowableArray を格納するフィールド. この中に, ciObjectFactory::get_unloaded_klass() で生成された全ての ciInstanceKlass/ciObjArrayKlass オブジェクトが格納されている)
以下の箇所で(のみ)生成されている.
(ファクトリメソッド)
(ciEnv::_unloaded_ciinstance_klass フィールドの初期化用)
(こちらは unloaded なクラス用. なお, 一度生成したオブジェクトは ciObjectFactory::_unloaded_klasses フィールドにメモイズされる)
See: here for details
?? (このクラスは使用箇所が見当たらないような...)
ciInstanceKlass クラス内で使用される補助クラス(Closure クラス).
ciInstanceKlass オブジェクトの _non_static_fields フィールドの遅延初期化を行うための Closure クラス.
(ただし, 肝心の ciInstanceKlass::_non_static_fields フィールド自体が使われていないような... #TODO)
((cite: hotspot/src/share/vm/ci/ciInstanceKlass.cpp))
class NonStaticFieldFiller: public FieldClosure {
ciInstanceKlass::non_static_fields() 内で(のみ)使用されている.
See: here for details
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.