Top


定義場所(file name)

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

名前(function name)

bool JNIHandles::is_local_handle(Thread* thread, jobject handle) {

本体部(body)

  {- -------------------------------------------
  (1) handle 引数で指定されたオブジェクトが
      thread 引数で指定された Thread の active_handles 内にあれば true をリターン.
      (逆に, なければ false をリターン)

      (あるかどうかの調査は JNIHandleBlock::chain_contains() で行う. 
      ただし, active_handles は複数の JNIHandleBlock からなるので
      全ての JNIHandleBlock についてループして調べている)
      ---------------------------------------- -}

      JNIHandleBlock* block = thread->active_handles();

      // Look back past possible native calls to jni_PushLocalFrame.
      while (block != NULL) {
        if (block->chain_contains(handle)) {
          return true;
        }
        block = block->pop_frame_link();
      }
      return false;
    }

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