Top


定義場所(file name)

hotspot/src/share/vm/runtime/signature.cpp

名前(function name)

void SignatureIterator::iterate() {

本体部(body)

  {- -------------------------------------------
  (1) (備考: メソッドの signature string は
       "(XLjava/lang/Object;)Z" といった感じになる)
      ---------------------------------------- -}

  {- -------------------------------------------
  (1) まずは引数部分をパース.
      '(' から初めて ')' にたどり着くまで 
      SignatureIterator::parse_type() を呼び続ける.
      ---------------------------------------- -}

      // Parse parameters
      _parameter_index = 0;
      _index = 0;
      expect('(');
      while (_signature->byte_at(_index) != ')') _parameter_index += parse_type();
      expect(')');

  {- -------------------------------------------
  (1) 次に返値部分をパース.
      SignatureIterator::parse_type() を呼ぶだけ.
      ---------------------------------------- -}

      // Parse return type
      _parameter_index = -1;
      parse_type();

  {- -------------------------------------------
  (1) SignatureIterator::check_signature_end() で終端に達したことを確認.
      ---------------------------------------- -}

      check_signature_end();

  {- -------------------------------------------
  (1) 
      ---------------------------------------- -}

      _parameter_index = 0;
    }

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