hotspot/src/share/vm/oops/instanceKlass.cpp
void instanceKlass::eager_initialize(Thread *thread) {
{- -------------------------------------------
(1) (デバッグ用の処理) (関連する develop オプションが指定されている場合にのみ実行) (See: EagerInitialization)
instanceKlass::eager_initialize_impl() を呼んで, このクラスの初期化を行う.
ただし, 以下の場合は何もせずにリターン.
*
*
*
*
---------------------------------------- -}
if (!EagerInitialization) return;
if (this->is_not_initialized()) {
// abort if the the class has a class initializer
if (this->class_initializer() != NULL) return;
// abort if it is java.lang.Object (initialization is handled in genesis)
klassOop super = this->super();
if (super == NULL) return;
// abort if the super class should be initialized
if (!instanceKlass::cast(super)->is_initialized()) return;
// call body to expose the this pointer
instanceKlassHandle this_oop(thread, this->as_klassOop());
eager_initialize_impl(this_oop);
}
}
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.