Top


定義場所(file name)

hotspot/src/share/vm/oops/instanceKlass.cpp

名前(function name)

void instanceKlass::eager_initialize(Thread *thread) {

本体部(body)

  {- -------------------------------------------
  (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.