Up Top

Class のロード/リンク/初期化 : リンク処理 (2) : リンク処理の流れ


概要(Summary)

クラスのリンク処理は instanceKlass::link_class() (より正確には instanceKlass::link_class_impl()) で行われる.

リンク処理では, 以下の処理が行われる.

処理の流れ (概要)(Execution Flows : Summary)

instanceKlass::link_class()
-> instanceKlass::link_class_impl()
   -> (1) バイトコードの verification を行う
          -> instanceKlass::verify_code()
              -> Verifier::verify()
                 -> (See: here for details)

      (1) バイトコードの rewrite 処理を行う
          -> instanceKlass::rewrite_class()
             -> Rewriter::rewrite()
                -> (See: here for details)

      (1) 
          -> instanceKlass::relocate_and_link_methods()
             -> Rewriter::relocate_and_link(instanceKlassHandle this_oop, TRAPS)
                -> (See: here for details)

      (1) vtable 及び itable を生成する
          -> klassVtable::initialize_vtable()
          -> klassItable::initialize_itable()

処理の流れ (詳細)(Execution Flows : Details)

See: here for details

See: here for details

instanceKlass::verify_code()

See: here for details

instanceKlass::rewrite_class()

See: here for details

See: here for details

klassVtable::initialize_vtable()

(#Under Construction) See: here for details

klassVtable::initialize_from_super()

See: here for details

arrayKlass::vtable()

See: here for details

instanceKlass::vtable()

See: here for details

klassVtable::copy_vtable_to()

See: here for details

klassVtable::update_inherited_vtable()

(#Under Construction)

klassVtable::fill_in_mirandas()

(#Under Construction)

klassItable::initialize_itable()

See: here for details

klassItable::initialize_itable_for_interface()

(#Under Construction) See: here for details


This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.