Top


定義場所(file name)

hotspot/src/share/vm/interpreter/rewriter.cpp

説明(description)

// Rewrite a classfile-order CP index into a native-order CPC index.

名前(function name)

void Rewriter::rewrite_member_reference(address bcp, int offset, bool reverse) {

本体部(body)

  {- -------------------------------------------
  (1) reverse 引数が false の場合には, 
      バイトコード命令中の Constant Pool index が埋まっている 2byte を 
      対応する Constant Pool Cache index に置き換える.
      (また, この 2byte は実行環境のエンディアンに従って書き込む)

      reverse 引数が true の場合には, 逆に元に戻す処理が行われる.
      ---------------------------------------- -}

      address p = bcp + offset;
      if (!reverse) {
        int  cp_index    = Bytes::get_Java_u2(p);
        int  cache_index = cp_entry_to_cp_cache(cp_index);
        Bytes::put_native_u2(p, cache_index);
      } else {
        int cache_index = Bytes::get_native_u2(p);
        int pool_index = cp_cache_entry_pool_index(cache_index);
        Bytes::put_Java_u2(p, pool_index);
      }
    }

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