Top


定義場所(file name)

hotspot/src/share/vm/prims/jni.cpp

名前(function name)

_JNI_IMPORT_OR_EXPORT_ jint JNICALL JNI_GetCreatedJavaVMs(JavaVM **vm_buf, jsize bufLen, jsize *numVMs) {

本体部(body)

  {- -------------------------------------------
  (1) JNIWrapper はクラッシュを引き起こすとのことで, ここではコメントアウトされている.
      ---------------------------------------- -}

      // See bug 4367188, the wrapper can sometimes cause VM crashes
      // JNIWrapper("GetCreatedJavaVMs");

  {- -------------------------------------------
  (1) (DTrace のフック点)
      ---------------------------------------- -}

      HS_DTRACE_PROBE3(hotspot_jni, GetCreatedJavaVMs__entry, \
        vm_buf, bufLen, numVMs);

  {- -------------------------------------------
  (1) もし HotSpot が構築されていれば(vm_created が true なら), 
      引数の numVMs に (それが NULL でないなら) 1 を書き込み, 引数の vm_buf に (bufLen が 0 より大きければ) main_vm のポインタを書き込む.
      逆に, HotSpot が構築されていなければ, 引数の numVMs に (それが NULL でないなら) 0 を書き込む.
      ---------------------------------------- -}

      if (vm_created) {
        if (numVMs != NULL) *numVMs = 1;
        if (bufLen > 0)     *vm_buf = (JavaVM *)(&main_vm);
      } else {
        if (numVMs != NULL) *numVMs = 0;
      }

  {- -------------------------------------------
  (1) (DTrace のフック点)
      ---------------------------------------- -}

      HS_DTRACE_PROBE1(hotspot_jni, GetCreatedJavaVMs__return, JNI_OK);

  {- -------------------------------------------
  (1) リターン
      ---------------------------------------- -}

      return JNI_OK;
    }

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