hotspot/src/share/vm/runtime/frame.cpp
void frame::gc_epilogue() {
{- -------------------------------------------
(1) もしこのフレームがインタープリタのフレームであれば,
フレーム中の bcp (byte code pointer, バイトコードを指すポインタ) を格納している箇所については
GC 前に frame::gc_prologue() で bcp から bci へと変更していたので
元に戻しておく.
(frame::interpreter_frame_bcp() で bci から bcp に変換した値を取得し,
それを frame::interpreter_frame_set_bcx() で元の場所に書き戻している.)
---------------------------------------- -}
if (is_interpreted_frame()) {
// set bcx back to bcp for interpreter
interpreter_frame_set_bcx((intptr_t)interpreter_frame_bcp());
}
{- -------------------------------------------
(1) 環境依存(platform depenent)な処理が必要かもしれないので,
frame::pd_gc_epilog() も呼び出しておく.
---------------------------------------- -}
// call processor specific epilog function
pd_gc_epilog();
}
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.