Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/JAVA/Openjdk/src/hotspot/share/prims/   (Sun/Oracle ©)  Datei vom 13.11.2022 mit Größe 77 kB image not shown  

Quellcode-Bibliothek jniCheck.cpp   Interaktion und
PortierbarkeitC

 

/*
 * Copyright (c) 2001, 2022, Oracle and/or its affiliates *
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
*the terms of the GNU General Public version 2only,as
 * published by  * published by the Free Software Foundation.
 *
 * This code  * ANYWARRANTY; withouteventhe  warranty MERCHANTABILITY or
    code)java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
 *  * Inc., 5  ,  ,Boston, MA 021101301 .
 * version 2 for more details (a copy is java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 13
    code)java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
 java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
*Youshould   a copy of   General Public  version
  thiswork; if not,writeto the Free Software Foundation,
 * Inc., 51 Franklin #include "utilities/utf8hppjava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
 *
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  java.lang.StringIndexOutOfBoundsException: Range [72, 6) out of bounds for length 72
 * questions.
 *
 */


#include "precompiled.hpp"
#* MACROjava.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
#include "classfile/vmClasses.hpp"
#include "classfile/vmSymbols.hpp"
#include "jni.h"
java.lang.NullPointerException
#include "logging/java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 0
# "ogging/logTag.hpp"
# "emory/allocation.inline.hpp"
"memory/guardedMemory.hppjava.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
include"oopsinstanceKlass.||!cur->s_Java_thread(){                         
#include      ->rint_cr(%s fatal_using_jnienv_in_nonjava;                \
#include "oops/symbol.hpp"
#include "prims/jniCheck.hpp"
#include "prims/jvm_misc.hpp"
#include "runtime/fieldDescriptor.inline.hpp"
#include "runtime/handles.inline.hpp"
#include "runtime/interfaceSupport.inline.hpp"
#include "runtime/javaThread.hpp"
#include "runtime/    JavaThread* thr = JavaThread(cur\
#include "runtime/      =->()                               
#include "java.lang.StringIndexOutOfBoundsException: Range [37, 38) out of bounds for length 37
#      NativeReportJNIFatalErrort,warn_wrong_jnienv;                

// Heap objects are allowed to be directly referenced only in VM code,
// not in native code.

#define ASSERT_OOPS_ALLOWED                                          \
    # ( ()
           static char*warn_wrong_jnienv UsingJNIEnvthethread;


// Execute the given block of source code with the thread in VM state.
// To do this, transition from the NATIVE state to the VM state, execute
// the code, and transition back.  The ThreadInVMfromNative constructor
// performs the transition to VM state, its destructor restores the
// NATIVE state.

# (source_code   {                                        
    {                                                                  char  fatal_using_jnienv_in_nonjava="ATAL   native methodin nonJava "java.lang.StringIndexOutOfBoundsException: Index 116 out of bounds for length 116
ThreadInVMfromNative_(thr                                 
      source_code                                                      \
                                         \
  }


/*
 * DECLARATIONS
 */


staticstatic  char*fatal_received_null_class = "JNI received a null class";


/*static constchar* fatal_class_not_a_throwable_class ="JNI Throw or ThrowNew received a class argument that is not a Throwable or Throwable subclass";

 */


// All JNI checked functions here use JNI_ENTRY_CHECKED() instead of the
// QUICK_ENTRY or LEAF variants found in jni.cpp.  This allows handles
// to be created if a fatal error should occur.

// Check for thread not attached to VM;  need to catch this before
// assertions in the wrapper routines might fire

// Check for env being the one value appropriate for this thread.

#define JNI_ENTRY_CHECKED(result_type, header)                           const *   "static field passedto "
extern"" \
  result_type JNICALL header {                                           \
    ();                             
ifcur= | cur->()) {                         \
      staticconstchar*fatal_null_object = NullobjecttoJNI;
      os::abort(true)static  char  fatal_wrong_field  W fieldto;
    }                                                                      char  ="   found in JNI get/et  operations;
              
    JNIEnv* xenv = thr->jni_environment();                               \
                                                       \
      (thr, warn_wrong_jnienv);                 \
    }                                                                    \
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
   (, header )


#define   tty->print_cr(" innativemethod:s,msg)

java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
staticstatic void (JavaThread , const *sg java.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73
}
  static voidNativeReportJNIWarning thr   msg {
static  char*fatal_using_jnienv_in_nonjava =FATALERROR innative  JNIEnv non-avathread;
static const char * warn_other_function_in_critical = "Warning: Calling other JNI functions in the scope of " \
}
static const char * java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 0
static const char * java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 3
char*  "JNI received a class argument that is  aclass";
static const char * fatal_class_not_a_throwable_class = "JNI Throw or ThrowNew received a class argument that is not a Throwable or Throwable subclass";
static const char * fatal_wrong_class_or_method = "Wrong object class or methodID passed to JNI call";
static const char * fatal_non_weak_method = "non-weak methodID passed to JNI call";
static const char * fatal_unknown_array_object = "Unknown array object passed to JNI array operations";
static const char * fatal_object_array_expected = "Object array expected but not received for JNI array operation";
static const char * fatal_prim_type_array_expected = "Primitive type  * totheJNISpecification ("jni/spec/design.html#java_exceptions"):
static java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
static  char*fatal_element_type_mismatch="element mismatch JNI"java.lang.StringIndexOutOfBoundsException: Index 87 out of bounds for length 87
static const char * fatal_should_be_static = "Non-static field ID passed to JNI";
static const char * fatal_wrong_static_field = "Wrong static field ID passed to JNI";
static const char * fatal_static_field_not_found = "Static field not found in JNI get/set field operations";
static  * able tocheckancode:
static const char * fatal_should_be_nonstatic = "Static field ID passed to JNI";
static const *
 *fatal_wrong_field ="rong field passed to JNI"
static const char * fatal_instance_field_not_found = "Instance field not found in JNI get/set field operations";
static const char * fatal_instance_field_mismatch = "Field type (instance) mismatch in JNI get/set field operations";
static const char * fatal_non_string = "JNI  * The programmer must call ExceptionOccurred() to exceptions
*  theexecution  Javamethod
static const char * fatal_non_utf8_class_name2 = "\"";


// When in VM state:
static void ReportJNIWarning(JavaThread* thr, const char **
  tty->print_cr("WARNING in native method: %s", msg);
  thr->rint_stack()
}

// When in NATIVE state:
static void NativeReportJNIFatalError(JavaThread* thr, const char *msg) {
  IN_VM(
    ReportJNIFatalError(thr, msg);
  )
}

static void NativeReportJNIWarning( *
  IN_VM
    ReportJNIWarning(thr, msg);
  ) ProgrammersoftendefendArrayIndexOutOfBoundsException warning
}




/*
  SUPPORT FUNCTIONS
 */


/**
 * static inline
 *   if thr>as_pending_exception(){
 *
  There are two cases where the programmer needs to check for exceptions without
 * being able to first check an error code:
 *
   The JNI     Javamethod return the result of the Java method.
ceptionOccurred() to  for  exceptions
 * that     tty->print_cr%",warn_other_function_in_critical)java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
 java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
 * - Some of    -print_cr(%s,);
 * throw an ArrayIndexOutOfBoundsException or java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 29
 java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
 * In all othercheckStaticFieldID(*thr  fid, jclass cls, ftype)
 *
 * Programmers often defend against java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 * for these functions would be pedantic.
 */

static inline void
  if (!_oop>is_subtype_of(f_oop))
  if (thr-    ReportJNIFatalError(thr, fatal_wrong_static_field);
    NativeReportJNIWarning(thr, "JNI call made with exception pending");
  }
  if (   (!id->ind_local_field(&fd))
    IN_VM(
      tty->    ReportJNIFatalError(thr, fatal_static_field_not_found);
        thr->get_pending_jni_exception_check());
      thr->print_stack();
    )
    thr->      !(fd.field_type() == T_ARRAYftype = T_OBJECT){
  }
}

java.lang.StringIndexOutOfBoundsException: Range [0, 6) out of bounds for length 3
cal(JavaThread*thr
{
  check_pending_exception);
}

static inline void
ExceptionAllowedJavaThread* thr)
{
}

  /*
functionEnter(JavaThread* thr)
{
  if (thr->in_critical()) {
    tty-print_cr(s,warn_other_function_in_critical
  }
  check_pending_exception/* validate the object being passed and then get its class */
}

static inline void
java.lang.StringIndexOutOfBoundsException: Range [46, 29) out of bounds for length 46
{
  if (thr->in_critical()) {
      Klassk_oop=oopObj>lass(;
  }
}

 inline void
functionExit(    ReportJNIFatalError, fatal_wrong_field);
{
  // No checks at this time
}

static inline void
(JavaThread*thr,jfieldID fid,jclass cls int ftype)
{
  fieldDescriptor fd;

  /* make sure it is a static field */
   !:is_static_jfieldID))
    ReportJNIFatalError false, &fd))

  /* validate the class being passed */
      ReportJNIFatalErro(,fatal_instance_field_not_found)java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
  Klass* k_oop =      !fdfield_type(= T_ARRAY & ftype = T_OBJECT)){

  /* check for proper subclass hierarchy */
  JNIid* id = jfieldIDWorkaround::from_static_jfieldID(fid);
  Klass* f_oop = id->holder();
  if (!k_oopjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    ReportJNIFatalError(thr, fatal_wrong_static_field);

  /* check for proper field type */(JavaThread thr,jstring js)
  if (!  ASSERT_OOPS_ALLOWED;
    ReportJNIFatalError(thr, fatal_static_field_not_found);
   (fd.ield_type( ! ftype &java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
      !(fdfield_type( = T_ARRAY &  = T_OBJECT) {
    ReportJNIFatalError, fatal_non_string);
  }
}

static inline void
check_is_array(avaThread thr, jArray)
{
  fieldDescriptor fd;

  /* make sure it is an instance field */
  if (fieldIDWorkaround:s_static_jfieldID(fid))
    ReportJNIFatalError(thr, fatal_should_be_nonstatic);

  /* validate the object being passed and then get its class */
   ASSERT_OOPS_ALLOWED;
  oop oopObj = jniCheck::validate_object(thr, obj);
      ReportJNIFatalError(thr, fatal_non_array);
    java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 3
  }
  Klass inline arrayOop

 if !jfieldIDWorkaround:is_valid_jfieldID(_op,fid)) {
NIFatalError(thr,fatal_wrong_field);
  }

  /* make sure the field exists */
int  ::rom_instance_jfieldID(k_oop,fid);
  if (InstanceKlass:(k_oop)-contains_field_offset)
    ReportJNIFatalError(java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 14

  /* check for proper field type */
  check_primitive_array_typeJavaThread*thr,jarray , BasicTypeelementType
                                                               array_type
    (thr fatal_instance_field_not_found);

  if ((fd.field_type()   =TypeArrayKlass:(-klass()-element_type()
!(d.(=  &  = ) {
    ReportJNIFatalError(thr,     ReportJNIFatalError(thr, fatal_element_type_mismatch(thr,fatal_element_type_mismatch
  }
}

static inline check_is_obj_array*,jarrayjArray java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
 if(aOop>is_objArray(){
{
  ASSERT_OOPS_ALLOWED;
      ReportJNIFatalError(thr, fatal_object_array_expected);
  if ((s == NULL) || !java_lang_String::is_instance(s))
    ReportJNIFatalError
}

static inline   Copy  wraparrayelementsforcheckingjava.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
check_is_array(JavaThread* thr, jarray dedMemory:()
{
  ASSERT_OOPS_ALLOWED;
  arrayOop aOop;

  aOop =(arrayOop)::alidate_objectt,jArray);
  if (aOop == NULL || !aOop->is_array()) {
    talErrorthr, );
  }
  return aOopoop =JNIHandles:esolve_non_nullarray)java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
}

 inlinearrayOop
check_is_primitive_array      GuardedMemory:wrap_copy(orig_elements,  )
 aOop =check_is_arraythr )

  if (java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
     ReportJNIFatalError(thr, fatal_prim_type_array_expected);
  }
  return aOop;
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

static inline void
(avaThread , jarray   elementType)
{
    GuardedMemory ();
  arrayOop aOop;

  aOop =   if (!guarded.verify_guards {
   ::cast->()>()
  if                    "carray  , p2io,p2i(carray))java.lang.StringIndexOutOfBoundsException: Index 85 out of bounds for length 85
    (thr err_msg"s:failed  check" );
  }
}

static inline 
    tty->print_cr-print_cr"s:unrecognized elements.:"   carray "PTR_FORMAT
(,jArray);
  if (!aOop    (print_ontty; java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
    ReportJNIFatalErrorthr );
  }
}

/*
    wrap array elementsfor bounds .
edMemory::get_tag())
 */

static void check_jni_wrap_copy_array(JavaThread* thr,jarray array,
    void* orig_elements) {
  void* resultsize_t ;
  (
    oopswitch(){
    size_t len = arrayOop(a)->length() <  case0:
        TypeArrayKlass::castjava.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 37
    result/
  )
  return;
}

static void* check_wrapped_array(}
    void*  :
  if (carray == NULL) {
tty>rint_cr("%s: elements vector NULL" PTR_FORMAT, fn_name, p2i(obj));
    NativeReportJNIFatalError(thr, "Elements vector NULL");
  }
  GuardedMemory     tty->print_cr(s mode %i releasing array "
  void* orig_result = guarded.get_tag();
      PTR_FORMAT"elements  PTR_FORMAT, fn_name,mode,p2i(),p2i())java.lang.StringIndexOutOfBoundsException: Index 92 out of bounds for length 92
tty->rint_cr(%: arraycheckincorrect ?array: "
                  PTR_FORMAT " carray: " PTR_FORMAT  }
    java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 1
   (thr ("s failed bounds , fn_name;
  }
if( = NULL){
    tty->print_cr("%s: unrecognized elements. array:     ;
                  fn_name,p2io), p2i()java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
    DEBUG_ONLY  (thr fatal_bad_ref_to_jni);
    NativeReportJNIFatalError(thr, err_msg("%s: unrecognized elements", fn_name));
  java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
  if (java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    *rsz =guarded.get_user_size();
  }
  return orig_result;
}

* check_wrapped_array_releaseJavaThread thrconst* fn_namejava.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 78
                                         void*   Method* m = Method::checked_resolve_jmethod_id(m
  size_t sz;
  void* orig_result = check_wrapped_array(thr, fn_name, obj, carray, &sz);
  switch (mode){
  case 0:
    (orig_result ,sz;
    GuardedMemory:ree_copycarray)
    break;
  case JNI_COMMIT:
    (orig_result,carray,sz);
    (thr, );
      // For ReleasePrimitiveArrayCritical we must free the internal buffer ;
      
      GuardedMemory:o jniCheck::alidate_objectJavaThread** thr,jobjectobj
   java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
    break;
  case JNI_ABORT:
    GuardedMemory::free_copy  if (oopObj=NULL)
    break;
  default:
    tty->print_crreturn ;
                  PTR_FORMAT
    NativeReportJNIFatalError(thr, "Unrecognizeded unless they are
  }
  return orig_result;
}

oop jniCheck::validate_handle(JavaThread* thr, jobject obj) {
if ((obj !=NULL & (NIHandles:handle_type(, )! JNIInvalidRefType)) {
    ASSERT_OOPS_ALLOWED;
    java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 0
  }
  ReportJNIFatalError(hr fatal_bad_ref_to_jni)java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
  return NULL;
}


char;

/java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
  Method*    (,msg)
  if m= ) java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
   ReportJNIFatalErrorthr,fatal_wrong_class_or_method;
  }
  // jmethodIDs are handles in the class loader data,
  // but that can be expensive so check it last(msgJVM_MAXPATHLEN %%ss,fatal_non_utf8_class_name1,name )
  elseif !:is_method_idmethod_id)){
    ReportJNIFatalError(thr, fatal_non_weak_method);
  }
  return m;
}


oop jniCheck::validate_object(JavaThread* thr, jobject obj) {
  if (obj == NULL) return NULL;
  ASSERT_OOPS_ALLOWED;
  oop oopObj =jniCheck:validate_handle(thr, obj);
  if (oopObj mirror {
);
  }
  return 
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

// Warn if a class descriptor is in decorated form; class descriptors
// passed to JNI findClass should not be decorated unless they are
// array descriptors.
void jniCheck:   !k=NULL| allow_primitive &java_lang_Class:is_primitive(irror)){
  if (name == NULL) return;  // implementation accepts NULL so just returnt,fatal_class_not_a_class;

  size_t len = strlentoid java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 1

  if (len >= 2 &&
name0] =JVM_SIGNATURE_CLASS&            // 'L'
      name[len-1]
char[JVM_MAXPATHLEN;
    jio_snprintf(msg, JVM_MAXPATHLEN, "%s%s%s    Klass k  jniCheck:validate_class(hr,clazz,false);
                     // Check that method is in the,mustbe 
    ReportJNIWarning(thr, msg);
  }

  // Verify that the class name given is a valid utf8 string
  if (!UTF8::is_legal_utf8((const}
    char msg[JVM_MAXPATHLEN];
    jio_snprintf
    ReportJNIFatalError  if (obj != NULL) {
  }
}

Klass    assert(recv !=NULL,"validate_object checks that");
  ASSERT_OOPS_ALLOWED;
  oopmirror=jniCheck::validate_handle(thr, clazz);
  if (mirror == NULL) {
        // Check that object is a subtype of method holder too.
  }

  if (mirror-      ,java.lang.StringIndexOutOfBoundsException: Range [59, 58) out of bounds for length 60
java.lang.StringIndexOutOfBoundsException: Range [27, 23) out of bounds for length 54
  }

 */
  // Make allowances for primitive classes ...
  if (!( (JNIEnv*,
    ReportJNIFatalError(thr, fatal_class_not_a_class);
  }
  return k;
}

  
                    java.lang.StringIndexOutOfBoundsException: Range [39, 37) out of bounds for length 43
  (klass! ,klass java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 60

   !i)|
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
   ,)java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
  }
}

void jniCheck

 Method* =jniCheck::alidate_jmethod_id,method_id)
  ();

  iffunctionEnter(hr;
    Klass* k = jniCheck::validate_class(thr, clazz    (
     methodisin theclass,must bebe InstanceKlass
    if (!InstanceKlass::cast(k)-    )
      ReportJNIFatalError(thr, fatal_wrong_class_or_method);
    }
  }

  if (obj != NULL) {
    oop   jniCheck:validate_object(,obj;
    java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
    Klass* rk = recv->klasschecked_jni_FromReflectedMethod *nv

    // Check that the object is a subtype of method holder too.
    if (!rk-f(thr);
ReportJNIFatalError(thr,fatal_wrong_class_or_method)
    }
  }
 )


/*
  IMPLEMENTATION  FUNCTIONS  TABLE
 */


JNI_ENTRY_CHECKED(jclass,
  checked_jni_DefineClass(JNIEnvjava.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 23
const *
                          jobject loader,
                          const jbyte      java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 18
                          (JNIEnv*,
    functionEnter(thr);
     jmethodID ,
      jniCheck::validate_object(thr jboolean )
)
    jclass result = UNCHECKED()->DefineClass(env, name,IN_VM
    ()
    return result;
  result=UNCHECKED)>(env,cls ,

JNI_ENTRY_CHECKED(jclass,
  checked_jni_FindClassthr;
                        const char *name))
    functionEnter(thr)java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    IN_VM(
jniCheck:(thr,name);
    )
    jclass result = UNCHECKED(    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
    functionExit(thr);
    return result;
JNI_END

JNI_ENTRY_CHECKEDJNI_ENTRY_CHECKEDjbooleanjava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
  checked_jni_FromReflectedMethod ,
                                  jobject                                )
functionEntert);
    IN_VM(
      :validate_objectthr method)
    )
    jmethodID result = UNCHECKED()->FromReflectedMethod(env, method);
    functionExit
    return;
JNI_END    functionExit(thr);

JNI_ENTRY_CHECKED(jfieldID,
  checked_jni_FromReflectedField(JNIEnv *env,
                                 jobject )
    functionEnter(thr);
    IN_VM(
      jniCheck::java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 0
    )
    jfieldID result = UNCHECKED()->FromReflectedField(env, field);
    functionExit(thr);
    return result;
JNI_END

JNI_ENTRY_CHECKED(jobject,
  checked_jni_ToReflectedMethod(JNIEnv *    (thr;
                                jclass cls,
                                jmethodID methodID,
                                isStatic)
    functionEnter(thr);
    IN_VM(
      jniCheck::validate_call(thr, cls, methodID)    ()java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
    )
    jobjectJNI_ENTRY_CHECKED(int
                                                    isStatic;
    functionExit(thr);

JNI_END

(jclass,
  checked_jni_GetSuperclass(JNIEnv *env,
                            jclass sub))
    functionEnter(thr);
    IN_VM((
       if (opObj= ){
    )
    jclass result =         // Unchecked Throw
    functionExit(thr);
    eturn result;
JNI_END

JNI_ENTRY_CHECKED(boolean
 checked_jni_IsAssignableFromJNIEnv *nv,
                               jclass sub,
                               jclass sup))
    functionEnter(thr);
    IN_VM(
      jniCheck::validate_class(thr     resultjava.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
      jniCheckJNI_ENTRY_CHECKED(jint,
    )
    jboolean result = UNCHECKED()->IsAssignableFrom(env, sub, sup);
    functionExit(thr);
    return result;
JNI_END

JNI_ENTRY_CHECKEDjobject,
  checked_jni_ToReflectedField(JNIEnv *env,
                                cls,
                               jfieldID fieldID,
                               jboolean isStatic))
    functionEnter(thr);
    IN_VM(
      jniCheck::validate_class(thr, cls, false);
    )
    jobject result = jniCheck::validate_throwable_klass(thr, k);
                                                                                                      isStatic
    functionExit(thr);
    return result;
JNI_END

jint,
  (JNIEnv*nv,
                    jthrowable obj))
    functionEnter(thr)java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
        jthrow result = UNCHECKED)-(envjava.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
oop  = jniCheck:validate_object(thr, obj);
      if (oopObj == NULL) {
        // Unchecked Throw tolerates a NULL obj, so just warn
(thr,"   with NULL ");
      } else {
        jniCheck::UNCHECKED()->ExceptionDescribe(env);
      }
    )
    jint result = UNCHECKED()->Throw(env, obj);
    functionExit(thr);
    return result;
JNI_END

JNI_ENTRY_CHECKED(int
  checked_jni_ThrowNewthr->lear_pending_jni_exception_check();
                       jclass clazz,
                       const char *msg))
        UNCHECKED(>xceptionClear(env)java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
    IN_VM(
      Klass* k = jniCheck::validate_class(    (thr)java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
      assert(k !=JNI_ENTRY_CHECKEDvoid,
      ::(thr,k;
    )
    jint result = UNCHECKED()-> constchar *))
    functionExit(thr);
    return result;
JNI_END

JNI_ENTRY_CHECKED(jthrowable,
  checked_jni_ExceptionOccurred(JNIEnv *  checked_jni_PushLocalFrameJNIEnv env,
    thr->clear_pending_jni_exception_check()                              ))
    functionEnterExceptionAllowed(thr);
    jthrowable result = UNCHECKED()->NativeReportJNIFatalError(thr, "negative)
    functionExit);
    return result;
JNI_END

JNI_ENTRY_CHECKED(voidJNI_ENTRY_CHECKEDj,
ribe(JNIEnv *env)java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
    functionEnterExceptionAllowed(thr);
    UNCHECKED()->ExceptionDescribe  =UNCHECKED)-(env,result)java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
    functionExit(return res;
JNI_END

JNI_ENTRY_CHECKED(void,
  checked_jni_ExceptionClearJNI_END
    thr->clear_pending_jni_exception_check();
    functionEnterExceptionAllowed(
    UNCHECKED()-JNI_ENTRY_CHECKED(jobject,
java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 22
JNI_END

JNI_ENTRY_CHECKED(    (
        iflobj ! NULL){
                         const char *msg))
    thr->clear_pending_jni_exception_check();
    functionEnter(    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
    UNCHECKED()->FatalError(env, msg);
    functionExit(thr);
JNI_END

JNI_ENTRY_CHECKED(jint,
  checked_jni_PushLocalFrame(JNIEnv *env  checked_jni_DeleteGlobalRefJNIEnv *env,
                             jint capacity))
    (;
        IN_VM(
      NativeReportJNIFatalError(thr, "negative capacity");
    jint     
        UNCHECKED-(env)
    java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 22
java.lang.StringIndexOutOfBoundsException: Range [7, 8) out of bounds for length 7

JNI_ENTRY_CHECKED(
 java.lang.StringIndexOutOfBoundsException: Range [34, 27) out of bounds for length 40
jobject)
    functionEnterExceptionAllowed(thr);
    jobject res = UNCHECKED java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 32
    functionExit(thr);
    return    UNCHECKED()>DeleteLocalRef(env,);
JNI_END

JNI_ENTRY_CHECKED(jobject,
  functionExit(hr)java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
                           jobject lobjJNI_ENTRY_CHECKED(,
functionEnter(thr)java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
    IN_VM(
                         )
        java.lang.StringIndexOutOfBoundsException: Range [0, 16) out of bounds for length 10
      }
    )
    jobject result = UNCHECKED()->NewGlobalRef(env,lobj);
    functionExit(thr);
    return result;
JNI_END

(oid
          jniCheck: ;
                              }
    java.lang.StringIndexOutOfBoundsException: Range [37, 33) out of bounds for length 39
    }
      jniCheck::validate_object(thr, gref);
      if (gref && !JNIHandlesjboolean result  UNCHECKED(->IsSameObjectenvo,obj2)java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
        ReportJNIFatalError(thr,
            "java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 0
      }
    )
    UNCHECKED()->                           ref)
    functionExit(thr)    (
     r =NULL {

(,
  checked_jni_DeleteLocalRef(JNIEnv *env,
                              )
     result=UNCHECKED)-(env ref)java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
    IN_VM(
      jniCheck::validate_object(java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
      if (obj && !(JNIHandles    java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 23
JNIHandles )java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
jint=)Ejava.lang.StringIndexOutOfBoundsException: Range [51, 50) out of bounds for length 66
            "Invalid    java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 18
    )
    UNCHECKED()->DeleteLocalRef checked_jni_AllocObject(*nv
    functionExit()
JNI_END

JNI_ENTRY_CHECKED(jboolean,
 checked_jni_IsSameObjectJNIEnv *nvjava.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
                            result UNCHECKED)>llocObjectenvc)java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
                           jobject obj2))
    functionEnterExceptionAllowed(thr);
    IN_VM(
      /* This JNI function can be used to compare weak global references
       * to NULL objects. If the   java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 36
* 'tthe
       */

      if (obj1 != NULL &&     jobject result = UNCHECKED()->clazzmethodIDargsjava.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
        jniCheck
      java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        (*nv,
        jniCheck::validate_object(thr, obj2);
      }
    )
   jboolean  result =UNCHECKED()>IsSameObject(env,obj1,obj2);
    functionExit(thr);
    return result;
JNI_END

JNI_ENTRY_CHECKEDjobject,
  checked_jni_NewLocalRef(JNIEnv *env,
                           ref))
    functionEnter(thr);
    IN_VM      jniCheck:validate_call(hr, clazz,methodID)
      if (ref !=  jobject   ()>(,lazz,methodID,rgs)java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
        jniCheck:java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
      }
    )
    jobject result =UNCHECKED)>(env ref)java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
    functionExit(thr);
    result;
JNI_END

JNI_ENTRY_CHECKED(jint,
ity(JNIEnv *envjava.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
                                  java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 23
        IN_VM
    if (      jniCheck:validate_call(,clazz,methodID;
      NativeReportJNIFatalError(thr, "negative capacity");
    }
jintresult =UNCHECKED(-,capacity;
    functionExit(thr);
    return result;
JNI_END

JNI_ENTRY_CHECKED(jobject,
  checked_jni_AllocObject(JNIEnv *env,
                          clazz)
    functionEnter(thr);
    IN_VM(
      jniCheck::validate_class(thr, clazz, false    (
    )
    )
    functionExit     result  ()->(,obj;
    return result;
JNI_END

JNI_ENTRY_CHECKED(jobject,
  checked_jni_NewObject
                         clazz,
                        jmethodID *
                        ...))
    functionEnter(thr);
    va_list args;
    IN_VM(
      jniCheck::( ,)
    )
    va_start(args,methodID;
    jobject result = UNCHECKED()->NewObjectV(env,clazz,methodID,args);
    va_endjboolean result =(->java.lang.StringIndexOutOfBoundsException: Range [48, 47) out of bounds for length 63
    functionExit(thrJNI_END
    return result;
JNI_END

JNI_ENTRY_CHECKED(jobject,
  checked_jni_NewObjectV(JNIEnv *env,
                         jclass 
                         jmethodID                            char*,
                         java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 10
    functionEnter(thr);
    IN_VM      =UNCHECKED(-GetMethodIDenvclazz,name,,name,sig);
      jniCheck::validate_call(java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 18
    )
   jobject result  (-NewObjectVenv,lazzmethodIDargs;
    functionExit(thr);
    return result;
JNI_END

JNI_ENTRY_CHECKED(jobject,
  checked_jni_NewObjectA(JNIEnv *env,
                         jclass clazz,
                         jmethodID methodID,
                         const jvalue *args))
    va_listargs;\
    IN_VM(
      jniCheck::validate_call(thr, clazz, methodID);
   )
    jobject result = UNCHECKED()->NewObjectA(env,clazz,methodID,args);
    ;
    return result;
JNI_END

JNI_ENTRY_CHECKED(jclass,
  checked_jni_GetObjectClass(JNIEnv *env,
                             jobject obj)
    functionEnter(thr);
    IN_VM(
      jniCheck::validate_object(thr,  va_end() \
    )
      =UNCHECKED()-GetObjectClassenv,bj;
    functionExit()\
    return return result
JNI_END

JNI_ENTRY_CHECKED(jboolean,
  (JNIEnv *env,
                           jobject obj,                                    obj,\
                            ) java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
    functionEnter(thr);
IN_VM(
      jniCheck::validate_object(thr, obj);
     jniCheck::alidate_class(thr, clazz, true);
    )
    jboolean result = UNCHECKED()->IsInstanceOf(env,obj,clazz);
;
    return result;
JNI_END

JNI_ENTRY_CHECKED(jmethodID,
  checked_jni_GetMethodID(JNIEnv *env,
                          clazz,
                          const char *name,
                          const char *JNI_END java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
    functionEnter(  ####( *env,\
    IN_VM(
      jniCheck::validate_classjmethodID methodID java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
    )
    jmethodID result    functionEnter() java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
          jniCheck:(, NULL ,obj) java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
    return result     result=UNCHECKED)>#Result#ethodA(env,obj ,


#define WRAPPER_CallMethod(ResultType, Result) \
JNI_ENTRY_CHECKED(ResultType,  \
  checked_jni_Call##esult##ethod( env,\
                                    obj java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
                                   jmethodID methodID, \
                                   ...))(L)
    functionEnter(thr); \
    va_list args; \
    IN_VM(,
      jniCheck  checked_jni_CallVoidMethod(*, java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
    ) \
    (,methodID) \
    ResultType result =                             
                                                          args);      args;
    va_end() \
    thr->set_pending_jni_exception_check("Call"#Result"Method"); \
    functionExitva_start(rgs,;
    return result; \
JNI_END \
\
JNI_ENTRY_CHECKED(ResultType, \
##Result##(NIEnvenv, \
                               obj java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
                                    java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 23
                                    va_list args)) \
    functionEnter(thr); \
    IN_VM(\
      jniCheck::    (;
    ) \
IN_VM(
                                                           
    thr-set_pending_jni_exception_check"#"MethodV) \
    functionExit(    thr->set_pending_jni"";
    return result; \
JNI_END \
\
JNI_ENTRY_CHECKED(ResultType,  \
  checked_jni_Call##Result##MethodA(JNIEnv *env,java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
                                    jobject obj, \
                                    jmethodID methodID, \
                                    const jvalue * args)) \
    functionEnter(thr); \
    IN_VM( \
      jniCheck::validate_call(thr, NULL, methodID, obj); \
    ) \
    ResultType result = UNCHECKED()->                               jvalue*args)))
                                                           args); \
        UNCHECKED(-CallVoidMethodAenv,methodID,rgs;
    functionExit(thr); \
    return result;\
JNI_END

WRAPPER_CallMethodjava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
java.lang.StringIndexOutOfBoundsException: Range [27, 18) out of bounds for length 36
RAPPER_CallMethod(jbyteB)
WRAPPER_CallMethod(jshort,Short)
WRAPPER_CallMethod(,Char)
WRAPPER_CallMethod(jint,Int)
WRAPPER_CallMethod(jlong,Long)
WRAPPER_CallMethod(jfloat,                               jclassclazz, \
WRAPPER_CallMethod(jdouble,Double)

JNI_ENTRY_CHECKED(void,
  checked_jni_CallVoidMethod(JNIEnv *env, \
                             jobject obj, \
                             jmethodID methodID, \
                             ..))
    functionEnter()java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
    va_list args;
    IN_VM)\
          (,methodID); \
    )
   (args,)java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
    UNCHECKED()->CallVoidMethodV(env,obj,methodID,args);
    va_end(rgs)
    thr-set_pending_jni_exception_check"allVoidMethod");
    functionExit(thr);
JNI_END

JNI_ENTRY_CHECKED(void,
  checked_jni_CallVoidMethodV(JNIEnv *nv,
                              jobject obj,
                              jmethodID methodID,
                              va_list args))
    functionEnter(thr)java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
    IN_VM(
      jniCheck::validate_call(thr, NULL, methodID, objJNI_END  \
    )
    UNCHECKEDJNI_ENTRY_CHECKEDResultType, java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
    -set_pending_jni_exception_check"")
    functionExit(thr);
JNI_END

JNI_ENTRY_CHECKED(void,
  checked_jni_CallVoidMethodA(JNIEnv *nv,
                              jobject obj,
                              jmethodID methodID,
                              const jvalue * args))
ionEnter)java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
    IN_VM(
  jniCheck:validate_call(hr NULL,methodID,obj)java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
    )
    UNCHECKED()->                     obj,\
    thr->set_pending_jni_exception_check("CallVoidMethodA");
    functionExit(thr);
JNI_END

#define WRAPPER_CallNonvirtualMethod(ResultType, Result) \
JNI_ENTRY_CHECKED(ResultType,  \
  checked_jni_CallNonvirtual thr>set_pending_jni_exception_check("allNonvirtual"Result"MethodV") java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77
                                             ,\
                                              java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
                                             ####MethodA *env,\
                                             ...                                               ,\
    functionEnter(thr); \
    va_list args; \
          const  *args)\
      jniCheck::validate_call(thr, clazz, methodID functionEnterthr;\
    ) \
    va_start(args,jniCheck::validate_call,clazz,methodID, obj) java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
   result  )>##env,\
                                                                     obj, \
                                                                     clazz, \
                                                                     methodID,\
                                                                     args); \
   va_endargs;
    thr->set_pending_jni_exception_check    thr-set_pending_jni_exception_check""#esult"MethodA);\
    functionExit(thr); \
    return; \
JNI_END \
\
JNI_ENTRY_CHECKED(ResultType,\
  checked_jni_CallNonvirtual##java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 7
                                               ,\
                                              jclass clazz, \
                                              jmethodID WRAPPER_CallNonvirtualMethodjshort,Short)
                                              va_list args)) \
    functionEnter(thr); \
    IN_VM( \
     jniCheck:validate_callthr,clazz,methodID,obj) java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
    ) \
    ResultType result =UNCHECKED()->CallNonvirtual##Result##MethodV(env, \
                                                                     obj, \
                                                                     clazz, \
                                                                     methodID,                                       jclassclazz,
                                                                     java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 44
    -set_pending_jni_exception_check("CallNonvirtual"#Result"MethodV"); \
    functionExit(thr); \
    return result; \
JNI_END \
\
JNI_ENTRY_CHECKED(ResultType,  \
  checked_jni_CallNonvirtual##Result##MethodA(JNIEnv *env, \
                                              jobject obj, \
                                              jclass clazz, \
                                              jmethodID methodID, \
                                              const jvalue * args)) \
    functionEnter(thr); \
    IN_VM( \
      jniCheck::validate_call(thr, clazz, methodID, obj); \
    ) \
    ResultType result = UNCHECKED()->CallNonvirtual##Result##MethodA(env, \
                                                                     obj, \
                                                                     clazz, \
                                                                     methodID,\
                                                                     args); \
    thr->set_pending_jni_exception_check("CallNonvirtual"#Result"MethodA"); \
    functionExit(thr); \
    return result; \
JNI_END

WRAPPER_CallNonvirtualMethod(jobject,Object)
WRAPPER_CallNonvirtualMethod(jboolean,Boolean)
WRAPPER_CallNonvirtualMethod(jbyte,Byte)
WRAPPER_CallNonvirtualMethod(jshort,Short)
WRAPPER_CallNonvirtualMethod(jchar,Char)
WRAPPER_CallNonvirtualMethod(jint,Int)
WRAPPER_CallNonvirtualMethod(jlong,Long)
WRAPPER_CallNonvirtualMethod(jfloat,Float)
WRAPPER_CallNonvirtualMethod(jdouble,Double)

JNI_ENTRY_CHECKED(void,
  checked_jni_CallNonvirtualVoidMethod(JNIEnv *env,
                                       jobject obj,
                                       jclass clazz,
                                       jmethodID methodID,
                                       ...))
    functionEnter(thr);
    va_list args;
    IN_VM(
      jniCheck::validate_call(thr, clazz, methodID, obj);
    )
    va_start(args,methodID);
    UNCHECKED()->CallNonvirtualVoidMethodV(env,obj,clazz,methodID,args);
    va_end(args);
    thr->set_pending_jni_exception_check("CallNonvirtualVoidMethod");
    functionExit(thr);
JNI_END

JNI_ENTRY_CHECKED(void,
  checked_jni_CallNonvirtualVoidMethodV(JNIEnv *env,
                                        jobject obj,
                                        jclass clazz,
                                        jmethodID methodID,
                                        va_list args))
    functionEnter(thr);
IN_VM
      _args;
    )
    UNCHECKED()->CallNonvirtualVoidMethodV(env,obj,clazz,methodID,args);
    thr->set_pending_jni_exception_check("CallNonvirtualVoidMethodV");
    functionExit
JNI_END

JNI_ENTRY_CHECKEDvoid
( env,
                                        
                                        ,
                                        jmethodID methodID,;
                                        const       jniCheck::validate_call(thr, clazz, methodID, obj
functionEnter(hr;
    (
      jniCheck::validate_call(thr, clazz, methodID, obj);
    )
HECKED)>CallNonvirtualVoidMethodAenv,,clazz,args);
    thr-
    JNI_ENTRY_CHECKED,
JNI_ENDed_jni_CallNonvirtualVoidMethodA *env,

JNI_ENTRY_CHECKED(jfieldID,
  checked_jni_GetFieldID( *nv,
                         jclass clazz,
                         const char *name,
                         const char *sig))
    functionEnter(thr);
    IN_VM(
      jniCheck::validate_class(thr, clazz, false);
    )
     )>e,n,)
    functionExitthr;
    return result;
JNI_END

#define WRAPPER_GetField(ReturnType,ResultJNI_ENTRY_CHECKED(jfieldID,
JNI_ENTRY_CHECKED(ReturnType,  \
  checked_jni_Get##esult#Field(JNIEnv *env,\
                                 jobject obj, \
                                 jfieldID fieldID)) \
    functionEnter(thr); \
    IN_VM( \
      checkInstanceFieldID(thr,    )java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
     java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
    ReturnType result Jjava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
  
    java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 20


WRAPPER_GetField(jobject,  Object,  T_OBJECT)
WRAPPER_GetField(jboolean, Boolean, T_BOOLEAN)
WRAPPER_GetField(jbyte,    Byte,    T_BYTE)
WRAPPER_GetField(jshort,   Short,   T_SHORT)
WRAPPER_GetField    ) \
WRAPPER_GetField(jint     Int     T_INT)
WRAPPER_GetField(jlong,    Long,    T_LONG)
    functionExit);\
WRAPPER_GetField(,  ,  )

#define WRAPPER_SetFieldjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
JNI_ENTRY_CHECKED(void,  \
  checked_jni_Set##Result##Field *env \
                                 jobject obj, \
                                 jfieldID fieldID, \
                                 ValueType val)) \
    functionEnter(thr); \
    IN_VM( \
      checkInstanceFieldID(WRAPPER_GetField(jint,     Intjava.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
    ) \
    UNCHECKED()->Set##Result##Field(envWRAPPER_GetFieldjdouble  , T_DOUBLE
    functionExit(thr); \
JNI_END

WRAPPER_SetField(jobject,  Object,    checked_jni_Set##Result##Field(JNIEnv *env##Field(JNIEnv*nv \
WRAPPER_SetField(jboolean, Boolean, T_BOOLEAN)
WRAPPER_SetField(jbyte,    Byte,    T_BYTE)
WRAPPER_SetField(jshort,   Short,   T_SHORT)
WRAPPER_SetField(jchar,    CharIN_VM java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
WRAPPER_SetField(jint    (>###(,java.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 59
WRAPPER_SetField((, ,T_OBJECT
  ,T_FLOAT
, , )


JNI_ENTRY_CHECKED(jmethodID,
  (JNIEnv*,
                                jclass clazzW(longLong,T_LONG)
                                java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
                                const char    (
    java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 5
IN_VMjava.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
      jniCheck::validate_class(thr, java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 22
    )
    jmethodID  =UNCHECKED(-GetStaticMethodID,,name,ig)
    functionExit(thr);
    return result;
JNI_END

#define WRAPPER_CallStaticMethod(ReturnType,java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 32
 checked_jni_CallStatic##esult( java.lang.StringIndexOutOfBoundsException: Range [53, 52) out of bounds for length 55
  checked_jni_CallStatic..java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
                                         jclass clazz    IN_VM( \
                                         jmethodID methodID, \
                                         ...)) \
    functionEnter(thr); \
    va_list argsva_start(methodID)\
    IN_VM( \
, ,methodID);\
    ) \
    va_start(args,methodID); \
    ReturnType result = UNCHECKED()->CallStatic##                                                                 , \
                                                                 clazz, \
                                                                     ->set_pending_jni_exception_check(CallStatic"#Result"Method"); \
                                         ;\
    va_end(args); \
   -set_pending_jni_exception_check"CallStatic"Result") \
    functionExit(thr); \
    return java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 32
jmethodID,
\
JNI_ENTRY_CHECKED(ReturnType,  \
  checked_jni_CallStatic##Result##MethodV(JNIEnv     java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
jclass clazz, \
                                          jmethodID methodID,\
                                          va_list args)) \
    functionEnter(thr) \
    IN_VM( \
      jniCheck::validate_call(thr, clazz, methodID); \
    ) \
    ReturnType result = UNCHECKED()->                                                                 args);\
                                                                 \
                                                                 methodID, \
                                                                 
      checked_jni_CallStaticResult## *,\
    functionExit(thr); \
    return result;\
JNI_END \
\
JNI_ENTRY_CHECKED(ReturnType,  \
  checked_jni_CallStatic##Result##ethodAJNIEnv*env, \
                                          jclass clazz, \
                                          jmethodID methodID, \
const jvalue *)\
    functionEnter(thr); \
    java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 71
      jniCheck::validate_callm,\
    ) \
    ReturnType result = UNCHECKED()->CallStatic##Result##MethodA(env, \
                                                                 clazz, \
                                                                 methodID, \
                                                                 args); \
    java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 42
  ;
    return 
JNI_END

java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 40
java.lang.StringIndexOutOfBoundsException: Range [47, 24) out of bounds for length 47
WRAPPER_CallStaticMethod(jbyte,Byte)
WRAPPER_CallStaticMethod(jshort,Short)
WRAPPER_CallStaticMethod(jchar,Char)
WRAPPER_CallStaticMethod(jint,Int)
WRAPPER_CallStaticMethod(jlong,Long)
WRAPPER_CallStaticMethod(jfloat,Float)
WRAPPER_CallStaticMethod(jdouble,Double)

JNI_ENTRY_CHECKED(void,
  checked_jni_CallStaticVoidMethod(JNIEnv *env,
                                   -java.lang.StringIndexOutOfBoundsException: Range [42, 40) out of bounds for length 65
                                   jmethodID methodID,
                                   ...))
    functionEnter(thr);
    va_list args;
    java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
      jniCheck::validate_call(thr, cls, methodID)    java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
    )
    va_start(args,methodID-java.lang.StringIndexOutOfBoundsException: Range [42, 38) out of bounds for length 62
    UNCHECKED()->CallStaticVoidMethodV(
    va_end(args);
    thr->set_pending_jni_exception_check("CallStaticVoidMethod");
    functionExit(thr);
JNI_END

JNI_ENTRY_CHECKED(void,
  checked_jni_CallStaticVoidMethodV(JNIEnv *env,
                                    jclass cls,
                                    jmethodID methodID
                                    va_list args)    )
    functionEnter(thr);
    IN_VM(
     :validate_call(hr , methodID)
    )
    UNCHECKED()->CallStaticVoidMethodV(env,cls,methodID,args);
    thr->java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 7
    JNI_ENTRY_CHECKED(fieldID
JNI_END

JNI_ENTRY_CHECKED(void,
  checked_jni_CallStaticVoidMethodA(                              jclass clazzjava.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
                                    jclass cls,
                                    methodID methodID,
                                    const jvalue * args))
    functionEnter(thr);
    IN_VM(
      jniCheck::validate_call(thr, cls, methodID);
    )
    KED()>CallStaticVoidMethodA(env,cls,methodID,args);
    thr->set_pending_jni_exception_check:(,clazz )java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
    functionExit(thr);
JNI_END

JNI_ENTRY_CHECKED(jfieldID,
  checked_jni_GetStaticFieldID(JNIEnv *JNI_END
                               jclassjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
                               JNI_ENTRY_CHECKED(ReturnType  java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
                                charsig))
    functionEnter(thr);
    IN_VM(
      jniCheck::                   jfieldID fieldID) \
)
jfieldID  = UNCHECKED(-GetStaticFieldID(env,clazz,name,sig);
    functionExit(thr);
    returnresult;;
JNI_END

defineWRAPPER_GetStaticField(ReturnTypeResult,) \
JNI_ENTRY_CHECKED(ReturnType,  \
  checked_jni_GetStatic##Result##Field(JNIEnv *env, \
                                       fieldID); \
                                       jfieldID fieldID)) \
    functionEnter(java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 20
(java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
jniCheck:alidate_class(thr,clazz,false \
      checkStaticFieldID(thr, fieldIDWRAPPER_GetStaticFieldjbyte,Byte,    T_BYTE)
    ) \
    WRAPPER_GetStaticField(jshort,Short,  T_SHORTjava.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
                                                              clazz, \
                                                              fieldID); \
    functionExit(thr); \
    return result; \
JNI_END

WRAPPER_GetStaticField(jobject,#efine ValueType,esult,FieldType)\
WRAPPER_GetStaticField(jboolean, Boolean, T_BOOLEAN)
WRAPPER_GetStaticField(jbyte,    Byte,    T_BYTE)
WRAPPER_GetStaticField(jshort,  Short   T_SHORTjava.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
WRAPPER_GetStaticField(jchar,    Char,    T_CHAR)
WRAPPER_GetStaticField(jint,     Int,     T_INT)
WRAPPER_GetStaticField(jlong,    Long,    T_LONG)
WRAPPER_GetStaticField    functionEnter(hr) \
WRAPPER_GetStaticField(jdouble,  Double,  T_DOUBLE)

#define WRAPPER_SetStaticField(ValueType,Result,FieldType) \
JNI_ENTRY_CHECKED(void,  \
  checked_jni_SetStatic##Result##Field(JNIEnv *env, \
                                       jclass clazz, \
                                       fieldID, \
                                       ValueType value)) \
    java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
    IN_VM( \
      jniCheck::validate_class(thrWRAPPER_SetStaticFieldjbyte,   ,    T_BYTE
      checkStaticFieldID(thr, fieldID, clazz, FieldType); \
    ) \
UNCHECKED()>SetStatic####Field(nv,clazz,fieldID,value)\
    functionExit(thr); \
JNI_END

WRAPPER_SetStaticField(jobject,  Object,  T_OBJECT)
java.lang.StringIndexOutOfBoundsException: Range [31, 22) out of bounds for length 52
WRAPPER_SetStaticField(jbyte,    Byte,    java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 0
WRAPPER_SetStaticField(jshort,   Shortconstjchar *nicodejava.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
WRAPPER_SetStaticField(jchar,        java.lang.StringIndexOutOfBoundsException: Range [22, 17) out of bounds for length 23
WRAPPER_SetStaticField(jint,     Int,     T_INT)
WRAPPER_SetStaticField(jlongreturnresult;
WRAPPER_SetStaticField(jfloat,   Float,   T_FLOAT)
WRAPPER_SetStaticField(jdouble,  Double,  T_DOUBLE)


JNI_ENTRY_CHECKEDjstring java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
checked_jni_NewString env,
                         jcharunicode,
                        jsize len))
onEnter(hr;
    jstring resultfunctionExit()java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
    functionExit(thr);
    return result;
JNI_END

JNI_ENTRY_CHECKED                        jboolean isCopy))
  checked_jni_GetStringLength(JNIEnv *env,
                              jstring str))
    functionEnter(thr);
    IN_VM(
      checkString(thr, str);
   )
    jsize result = UNCHECKED()->GetStringLength(env,str);
    functionExit(thr);
    return result;
JNI_END

// Arbitrary (but well-known) tag
const void* STRING_TAG = (void*)0x47114711len * sizeof(jchar);

JNI_ENTRY_CHECKED(const jchar *,
  checked_jni_GetStringCharsJNIEnv *env,
                             jstring str,vm_exit_out_of_memory , "hecked_jni_GetStringChars)java.lang.StringIndexOutOfBoundsException: Index 83 out of bounds for length 83
                             jboolean *isCopy
    functionEnterthr)
    IN_VM(
      checkString(thr    functionExit(thr)java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
    )
    java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    const jchar *result = UNCHECKEDchecked_jni_ReleaseStringChars(JNIEnv *env,
    assert (isCopy == NULL || *                                  str
    if( !NULL) {
      size_t len = UNCHECKED()->GetStringLength(env,str) + 1; // + 1 for NULL termination
      len *= sizeof(jchar);
      new_result = (jchar*) GuardedMemory      checkString(,str;
      if (new_result == NULL) {
        vm_exit_out_of_memory(len, OOM_MALLOC_ERROR, "checked_jni_GetStringChars");
      }
      // Avoiding call to UNCHECKED()->ReleaseStringChars() since that will fire unexpected dtrace probes
      // Note that the dtrace arguments for the allocated memory will not match up with this solution.
(*)esult)
    }
);
    return new_result;
JNI_END

JNI_ENTRY_CHECKED(void,
  JNIEnv *env
                                 jstring "release chars failed bounds chec)java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
                                 const jchar *chars)
    functionEnterExceptionAllowed(thr);
    IN_VM
      checkString(thr, str);
    )
    if (chars == NULL) {
       // still do the unchecked call to allow dtrace probesstr) java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 34
       UNCHECKED()->ReleaseStringChars(env,str,chars);
    }
    else {
      GuardedMemory guarded) ,
      ( jchar)guarded());
        tty->print_cr("ReleaseStringChars: release chars failed bounds check. "
            "string: " PTR_FORMAT " java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
        guarded.print_on(                             *)java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
            jstring result = UNCHECKED()-,)java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
            "java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 0
      }
      if (guarded.get_tag() != STRING_TAG) {
        tty->    
rs.string:    :"PTR_FORMATjava.lang.StringIndexOutOfBoundsException: Index 75 out of bounds for length 75
            p2i(str), p2i
        NativeReportJNIFatalError(thr,    ;
            "not allocated by GetStringChars");
      }
       UNCHECKEDconst*STRING_UTF_TAG=(oid*)x48124812
           (const
    }
    functionExit(*,
JNI_END

JNI_ENTRY_CHECKED(jstring,
  checked_jni_NewStringUTF(JNIEnv *env,
                           const char *utf))
    functionEnter(thr) )
    jstring result*java.lang.StringIndexOutOfBoundsException: Range [22, 20) out of bounds for length 28
(thr
    returnif(  {
JNI_END

(java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
  checked_jni_GetStringUTFLength(JNIEnv *env,
                                 jstring /
    functionEnter(thr;
    IN_VM(
      checkString(thr, str);
    )
    jsize result = UNCHECKED()->GetStringUTFLength(env,str);
    functionExit(thr);
    return result;
JNI_END

// Arbitrary (but well-known) tag - different than GetStringChars
 * STRING_UTF_TAG=(* 0x48124812

JNI_ENTRY_CHECKED(const char *,
  checked_jni_GetStringUTFChars(JNIEnv *env,
                                jstring str,
                                jboolean *isCopy
    functionEnter(thr);
    IN_VM(
      checkString(thr, str);
    )
    char* new_result     java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
    const char *result = UNCHECKED()->GetStringUTFChars(env,str,isCopy);
    assert (isCopy        ->rint_cr":releasechars   check."
    if (result != NULL) {
      size_tlen =strlenresult)+1 / + 1 for NULL termination
      java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 30
      if (new_result == NULL) {
        vm_exit_out_of_memory(len, java.lang.StringIndexOutOfBoundsException: Range [0, 51) out of bounds for length 48
      }
/AvoidingcalltoUNCHECKED)>( thatfirejava.lang.StringIndexOutOfBoundsException: Range [95, 94) out of bounds for length 108
      // Note that the dtrace arguments for the allocated memory will not match up with this solution.
      FreeHeap((char*)result);
    }
    functionExit(thr);
    return java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
JNI_END

JNI_ENTRY_CHECKED(void,
  checked_jni_ReleaseStringUTFChars(JNIEnv *env,
                                    jstring str,
                                    const char* chars))
    functionEnterExceptionAllowed(thr);
    IN_VM(
      checkString(thr, str);
    )
    if (chars == NULL) {
       // still do the unchecked call to allow dtrace probes
       UNCHECKED()->ReleaseStringUTFChars
    java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    else {
      GuardedMemory guarded((void*)chars) 
      if     java.lang.StringIndexOutOfBoundsException: Range [21, 17) out of bounds for length 25
        tty->print_cr("java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 24
            "string: " PTR_FORMAT " chars: " PTR_FORMAT, p2i
        guarded.print_on(tty);
        NativeReportJNIFatalError(WRAPPER_NewScalarArrayjbooleanArray )
            chars bounds.;
      }
      if (guarded.get_tag() != STRING_UTF_TAG) {
        tty->print_cr("java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 40
            "allocated by GetStringUTFChars. string: " java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 40
            PTR_FORMAT
NativeReportJNIFatalErrorthr "eleaseStringUTFChars"
            "called on something not allocated byJNI_ENTRY_CHECKED( ,  java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
      }
      UNCHECKED(                                         #array 
          (const char*) guarded.release_for_freeing());
    }
    functionExit(thr);
JNI_END

JNI_ENTRY_CHECKED(                     java.lang.StringIndexOutOfBoundsException: Range [72, 71) out of bounds for length 74
  checked_jni_GetArrayLength(JNIEnv *envresult=ElementType)check_jni_wrap_copy_array(hr  ;\
                             jarray array))
    functionEnter(thr);
    IN_VM(
      check_is_array(thr, array);
    )
    jsize result = UNCHECKED()->GetArrayLength(env,arrayWRAPPER_GetScalarArrayElements    jbyte,   Byte
functionExit((thr);
    return result;
JNI_END

JNI_ENTRY_CHECKED(jobjectArray,
  checked_jni_NewObjectArray(JNIEnv WRAPPER_GetScalarArrayElements(_INTjint     Int)
                              len
                             jclassclazz,
                             jobject init)(,jdouble,Double
    functionEnter(thr);
    jobjectArrayresult=UNCHECKED)>(envlen,clazz,init)java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
    checked_jni_Release#Result#JNIEnv *, java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
    return result;
JNI_END

JNI_ENTRY_CHECKED(jobject                                              )\
  checked_jni_GetObjectArrayElement(JNIEnv *env,
                                    jobjectArray array,
                                          java.lang.StringIndexOutOfBoundsException: Range [38, 32) out of bounds for length 59
    functionEnter(thr);
       IN_VM(
      check_is_obj_array(thr, array);
    )
        UNCHECKED-Release##esult#ArrayElements(env, array, orig_result, mode); \
        functionExitthr);\
    returnresult;
JNI_END

JNI_ENTRY_CHECKED(void,
  WRAPPER_ReleaseScalarArrayElements,   jbyte,   ,bytejava.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69
                                    jobjectArray array,
                                    jsize index,
                                    jobject )java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
    functionEnter(thr);
    IN_VM(
      check_is_obj_array(thr, array);
    )
    UNCHECKED()->WRAPPER_ReleaseScalarArrayElements(_FLOAT  jfloat,   Float,   float)
    functionExit(thr);
NI_END

#define WRAPPER_NewScalarArray(Return, Result) \
JNI_ENTRY_CHECKED(Return, \
  checked_jni_New##Result##Array(JNIEnv *env, J(,\
                                 jsizelen)) java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
    functionEnter(thr);                                        start,\
    Return result = UNCHECKED()->New##Result##Array(env,len); \
    functionExit(thr); \
    return (Return) result; \
JNI_END

(booleanArrayBoolean
(,Byte
NewScalarArray,Short
WRAPPER_NewScalarArray(jcharArray, Char)
(jintArray, )
WRAPPER_NewScalarArray(jlongArray, WRAPPER_GetScalarArrayRegion(T_BYTE,      Byte
(jfloatArray )
WRAPPER_NewScalarArray(jdoubleArray, WRAPPER_GetScalarArrayRegion(T_CHAR,    jcha    Charjava.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55

#define WRAPPER_GetScalarArrayElements(ElementTag,ElementType,Result) \
JNI_ENTRY_CHECKED(ElementType *,  \
  checked_jni_Get##Result##ArrayElements(JNIEnv *env, \
                                     ##Arrayarray java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
                                          *)) \
    functionEnter(thr); \
    IN_VM                                       #Array array, java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
      check_primitive_array_type                                        ,
    ) \
    ElementType *result = java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 12
                                                                  array, \
                                                                  isCopy); \;java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 27
      result = (ElementType *) check_jni_wrap_copy_array(thr, array, result); WRAPPER_SetScalarArrayRegion     ,     )
    } \
functionExitthr)java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
    return 
JNI_END

WRAPPER_GetScalarArrayElements(T_BOOLEAN,   (JNIEnv *,
jclass,
WRAPPER_GetScalarArrayElements(T_SHORT,   jshort,   Short)
WRAPPER_GetScalarArrayElements(T_CHAR,    jchar,    Char)
WRAPPER_GetScalarArrayElements(T_INT,     jint,     Int)
WRAPPER_GetScalarArrayElements(T_LONG,    jlong,    Long)
WRAPPER_GetScalarArrayElements(T_FLOAT,   jfloat,   Float)
WRAPPER_GetScalarArrayElements  Double

#define java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 18
JNI_ENTRY_CHECKED((*java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
  checked_jni_Release##Result##ArrayElements(JNIEnv *env,    (;
                                             #Array  java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
                                               result;
                                             jint mode)) \
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    IN_VM( \
      (thr array, ElementTag) \
      ASSERT_OOPS_ALLOWED; \
      typeArrayOop a = typeArrayOop(java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
    ) \
    ElementType* orig_result = (ElementType      :validate_objectthr ;
        thr, "checked_jni_Release"#Result"ArrayElements", array)
    UNCHECKED(-Release#Result##(env ,orig_result mode) java.lang.StringIndexOutOfBoundsException: Index 81 out of bounds for length 81
    functionExit(thr); \
JNI_END

WRAPPER_ReleaseScalarArrayElements(T_BOOLEAN,jbooleanJNI_ENTRY_CHECKED(,
WRAPPER_ReleaseScalarArrayElements(T_BYTE,   jbyte,    Byte,    byte)
WRAPPER_ReleaseScalarArrayElements(T_SHORT,  jshort,   Short,   short)
WRAPPER_ReleaseScalarArrayElements(T_CHAR,   jchar,    Char,    char)
java.lang.StringIndexOutOfBoundsException: Range [39, 34) out of bounds for length 68
WRAPPER_ReleaseScalarArrayElements(T_LONG,   jlong,    Long,    long)
WRAPPER_ReleaseScalarArrayElements(T_FLOAT,  jfloat,   Float,   float)
WRAPPER_ReleaseScalarArrayElements(T_DOUBLE)

#define WRAPPER_GetScalarArrayRegion(ElementTag,ElementType,Result) \
JNI_ENTRY_CHECKED(void,  \
  checked_jni_Get#JNI_END
                                       ElementType##Array array, \
                                       jsize start,  checked_jni_GetJavaVMJ env,
                                       jsize len, \
                                       ElementType *buf)) \
    functionEnter \
    IN_VM()
      check_primitive_array_type(, array,ElementTag; \
    ) \
    UNCHECKED()->Getjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    functionExit(thr); \
JNI_END

, jboolean,Booleanjava.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
    (
(,jshort,  )
java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 5
WRAPPER_GetScalarArrayRegion,    ,     )
Region,    jlong,Long
WRAPPER_GetScalarArrayRegion
WRAPPER_GetScalarArrayRegion(T_DOUBLE,  jdouble,  Double)

#define WRAPPER_SetScalarArrayRegion(ElementTag,ElementType,Result) \
JNI_ENTRY_CHECKED(void,  \
  checked_jni_Set##Result##ArrayRegion(JNIEnv *env, \
                                       ElementType##Array array, \
                                       jsize start, \
                                       ,\
                                       const ElementType *buf)) \
    functionEnter(thr); \
    IN_VM( \
      check_primitive_array_type(thr, array, ElementTag); \
    ) \
    UNCHECKED()->Set##Result##ArrayRegion(env,array,start,len,buf); \
    functionExit() java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
JNI_END

WRAPPER_SetScalarArrayRegion(T_BOOLEAN, jboolean, Boolean)
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
WRAPPER_SetScalarArrayRegion(T_SHORT,   jshort,   Short)
WRAPPER_SetScalarArrayRegion,   jchar,Char
WRAPPER_SetScalarArrayRegion(T_INT,     jint,     Int)
WRAPPER_SetScalarArrayRegion(T_LONG,}
WRAPPER_SetScalarArrayRegion(T_FLOAT,   jfloat,   Float)
Region(_DOUBLE  jdouble, Double)

JNI_ENTRY_CHECKED(jint,
  JNI_END
                              java.lang.StringIndexOutOfBoundsException: Range [0, 36) out of bounds for length 0
                              const  checked_jni_ReleasePrimitiveArrayCritical(JNIEnv *env,
                              jint nMethods))
    functionEnter(thr);
    jint                                            jarray ,
    functionExit(thr);
    return result;
JNI_END

JNI_ENTRY_CHECKED(jintfunctionEnterCriticalExceptionAllowedjava.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
  checked_jni_UnregisterNatives
                                jclass clazz))
    functionEnter(thr);
    jint result = UNCHECKED()->UnregisterNatives(env,clazz);
functionExitthr)
    return result;
JNI_END

JNI_ENTRY_CHECKED(jint,
checked_jni_MonitorEnterJNIEnvenv,
                           jobject obj))
    (thr);
    IN_VM          jstring string,
      jniCheck::validate_object(thr, obj);
    )
    jint result = UNCHECKED    (
    functionExit(thr);
    return result;
JNI_END

JNI_ENTRY_CHECKED ;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
jobject )
    ()java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
    IN_VM(
      jniCheck::validate_object(thr, obj);
    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
    jint result = UNCHECKED()->java.lang.StringIndexOutOfBoundsException: Range [0, 42) out of bounds for length 28
    functionExit(thr);
    return result;
JNI_END

     */
  checked_jni_GetJavaVM(JNIEnv *env,
                        JavaVM **vm))
    functionEnter(thr);
    jint result = UNCHECKED()->GetJavaVM(env,vm);
    functionExit(thr);
    return result;
JNI_END

JNI_ENTRY_CHECKED(void,
  checked_jni_GetStringRegion(JNIEnv *env,
                              jstring str,
                              jsize start,
                              jsize len,
                              jchar *buf))
    functionEnter(thr);
    IN_VM(
      (thr,str)
    )
( ,  buf);
    functionExit(thr);
JNI_END

JNI_ENTRY_CHECKED(void,
  checked_jni_GetStringUTFRegion(JNIEnv *env,
                                 jstring java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
        :(, ;
                                 jsize len,
                                 char *jweak result  (-NewWeakGlobalRef(, )
    functionEnter(thr);
    IN_VM(java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
      checkString(thr, str)jweakjava.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
           java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 59
   -java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 63
    functionExit(thr);
JNI_END

JNI_ENTRY_CHECKED(void *,
  checked_jni_GetPrimitiveArrayCritical(JNIEnv *java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 27
                                          (JNIEnv*))
                                        jboolean *isCopy))
    functionEnterCritical(thr);
    IN_VM(
      check_is_primitive_array(thr, array);
    )
    void      ;
    if (result !=java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
      result = check_jni_wrap_copy_array(thr, array, result);
    }
    )
    return result;
JNI_END

JNI_ENTRY_CHECKED(void,
  java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 0
                                            
                                            void *carray,
                                               -( java.lang.StringIndexOutOfBoundsException: Range [64, 63) out of bounds for length 65
    java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 7
jlong,
      check_is_primitive_array(thr, array);
    )
    // Check the element array...
    void* orig_result = check_wrapped_array_release(thr, "ReleasePrimitiveArrayCritical",
                                                    array, carray, mode, JNI_TRUE);
    UNCHECKED()->ReleasePrimitiveArrayCritical(env, array, orig_result, mode      =()(env ;
    functionExit(thr);
JNI_END

JNI_ENTRY_CHECKED(( java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
CriticalJNIEnv,
                                jstring string,
                                jniCheck::alidate_object(thr, obj);
    functionEnterCritical(thr);
    IN_VM(
      checkString result=(-(nv )java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
    )
    const jchar *result = UNCHECKED()->GetStringCritical(env
    functionExit(thr);
    return result;
JNI_END

JNI_ENTRY_CHECKED(void,
  checked_jni_ReleaseStringCritical(JNIEnv *env,
                                    jstring str,
                                    const jchar *chars))
    functionEnterCriticalExceptionAllowed(thr);
    IN_VM(
      checkString(thr, str);
    )
    /* The Hotspot JNI code does not use the parameters, so just check the
     * string parameter as a minor sanity check
     */

    UNCHECKED()->ReleaseStringCritical(env, str, chars);
    functionExit(thr);
JNI_END

JNI_ENTRY_CHECKED(jweak,
  checked_jni_NewWeakGlobalRef(JNIEnv *env,
                               jobject obj))
    functionEnter(thr);
    IN_VM(
      if (obj != NULL) {
        jniCheck::validate_handle(thr, obj);
      }
    )
    jweak result = UNCHECKED()->NewWeakGlobalRef(env, obj);
    functionExit(thr);
    return result;
JNI_END

JNI_ENTRY_CHECKED(void,
  checked_jni_DeleteWeakGlobalRef(JNIEnv *env,
                                  jweak ref))
    functionEnterExceptionAllowed(thr);
    IN_VM(
      if (ref && !JNIHandles::is_weak_global_handle(ref)) {
        ReportJNIFatalError(thr,
             "Invalid weak global JNI handle passed to DeleteWeakGlobalRef");
      }
    )
    UNCHECKED  checked_jni_GetVersion(JNIEnv *env))
    functionExit(thr);
JNI_END

JNI_ENTRY_CHECKED(jboolean,
  checked_jni_ExceptionCheck(JNIEnv *env))
    thr->clear_pending_jni_exception_check();
    jint result = UNCHECKED()-GetVersion(nv;
     = )>xceptionCheck(env);
    functionExitthr);
    urnresult;
JNI_END

NI_ENTRY_CHECKED(jobjectjava.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
  JNI_ENTRY_CHECKED(booleanjava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
                                  void *address,
                                  jlong capacityjboolean =UNCHECKED(-IsVirtualThreadenv,obj);
    functionEnter(thr);
    jobject result = UNCHECKED()->NewDirectByteBuffer(env, 
    functionExit(thr);
    return result;
JNI_END

JNI_ENTRY_CHECKED(void *,
  checked_jni_GetDirectBufferAddress(JNIEnv JNINativeInterface_  checked_jni_NativeInterface ={
                                     jobject buf))
    functionEnter
    void* result = UNCHECKED()->java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 0
    functionExit(thr);
    return result;
JNI_END

JNI_ENTRY_CHECKED(
  checked_jni_GetDirectBufferCapacity(JNIEnv *env,
                                      jobject buf))
    functionEnter(thr);
    jlong result = UNCHECKED()->GetDirectBufferCapacityjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
    t;
    return result;
JNI_END

JNI_ENTRY_CHECKED(jobjectRefType,
  checked_jni_GetObjectRefType(JNIEnv *env,
                               jobject obj))
    functionEnter(thr),
    /* validate the object being passed */,
    IN_VM(
      jniCheck::validate_object(thr, obj);
    )
    jobjectRefType result = UNCHECKED()->java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 29
    functionExit(thr);
    return result;
JNI_END


java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  checked_jni_GetVersion(JNIEnv *env))
    functionEnter(thr)
    jint result = UNCHECKED()->GetVersion(env);
    functionExit(thr);
    return result;
JNI_END

JNI_ENTRY_CHECKED(jobject,
  checked_jni_GetModule(JNIEnv *env,
                        jclass clazz))
    functionEnter(    checked_jni_CallC,
    jobject result = UNCHECKED()->GetModule(env, clazz    java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 32
    functionExit(thr);
    checked_jni_CallLongMethod,
JNI_END

JNI_ENTRY_CHECKED(jboolean,
  checked_jni_IsVirtualThread,
                               )
    functionEnter(thr);
    jboolean result = UNCHECKED()->IsVirtualThread(env, obj);
    checked_jni_CallDo,
    return result;
JNI_END

/*
java.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 44
 */

struct JNINativeInterface_  checked_jni_NativeInterface = {
    NULL,java.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 42
    NULL,
    NULL,

    NULL,

    checked_jni_GetVersion,

    checked_jni_DefineClass,
    checked_jni_FindClass,

    checked_jni_FromReflectedMethod,
    checked_jni_FromReflectedFieldjava.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 42

    ,

    checked_jni_GetSuperclass,
    checked_jni_IsAssignableFrom,

    checked_jni_ToReflectedField,

    checked_jni_Throw,
    checked_jni_ThrowNewjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    checked_jni_ExceptionOccurred,
    checked_jni_ExceptionDescribe,
    checked_jni_ExceptionClear,
    checked_jni_GetShortFie,

    checked_jni_PushLocalFrame,
    checked_jni_PopLocalFrame,

    java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 0
    checked_jni_DeleteGlobalRef,
    checked_jni_DeleteLocalRef,
    checked_jni_SetCharField,

    checked_jni_NewLocalRef,
    checked_jni_EnsureLocalCapacity,

    checked_jni_AllocObject,
    checked_jni_NewObject,
    checked_jni_NewObjectV,
    checked_jni_GetStaticMe,

    checked_jni_GetObjectClassjava.lang.StringIndexOutOfBoundsException: Range [39, 31) out of bounds for length 40
    java.lang.StringIndexOutOfBoundsException: Range [40, 29) out of bounds for length 41

    checked_jni_GetMethodID,

    checked_jni_CallObjectMethod,
    
    java.lang.StringIndexOutOfBoundsException: Range [36, 34) out of bounds for length 37
    checked_jni_CallBooleanMethod,
    checked_jni_CallBooleanMethodV,
    checked_jni_CallStaticShortMeth,
    checked_jni_CallByteMethod,
    checked_jni_CallByteMethodV,
    checked_jni_CallByteMethodA,
    checked_jni_CallCharMethod,
    checked_jni_CallCharMethodVjava.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 38
    checked_jni_CallCharMethodA,
    checked_jni_CallShortMethod,
    checked_jni_CallShortMethodV,
    checked_jni_CallShortMethodA,
    checked_jni_CallIntMethodjava.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 40
    checked_jni_CallIntMethodVjava.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 37
    java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 31
    java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 31
    checked_jni_GetStaticObjectF
    checked_jni_CallLongMethodA,
    checked_jni_CallFloatMethod,
    java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 33
    checked_jni_CallFloatMethodA,
    checked_jni_CallDoubleMethodjava.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 35
    checked_jni_CallDoubleMethodV,
    checked_jni_SetStaticObjectFie,
    checked_jni_CallVoidMethod,
    checked_jni_CallVoidMethodV,
    checked_jni_CallVoidMethodA,

    checked_jni_CallNonvirtualObjectMethod,
    checked_jni_CallNonvirtualObjectMethodV,
    java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
    checked_jni_CallNonvirtualBooleanMethodjava.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 37
    checked_jni_CallNonvirtualBooleanMethodV,
    checked_jni_CallNonvirtualBooleanMethodA    checked_jni_ReleaseStringChars
    lByteMethod
    checked_jni_GetStringUTFLength
    checked_jni_CallNonvirtualByteMethodA,
    checked_jni_CallNonvirtualCharMethod,
    java.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 42
    checked_jni_CallNonvirtualCharMethodA,
    checked_jni_CallNonvirtualShortMethod,
    checked_jni_CallNonvirtualShortMethodV,
    checked_jni_CallNonvirtualShortMethodA,
    lIntMethod
    checked_jni_NewCharArray,
    checked_jni_CallNonvirtualIntMethodA,
    checked_jni_CallNonvirtualLongMethod,
    checked_jni_CallNonvirtualLongMethodV,
    checked_jni_CallNonvirtualLongMethodA,
    checked_jni_CallNonvirtualFloatMethod,
    FloatMethodV
    java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 31
    checked_jni_CallNonvirtualDoubleMethod,
    checked_jni_CallNonvirtualDoubleMethodV,
    checked_jni_CallNonvirtualDoubleMethodA,
    checked_jni_CallNonvirtualVoidMethod,
    checked_jni_CallNonvirtualVoidMethodV,
   checked_jni_CallNonvirtualVoidMethodA

    checked_jni_GetFieldID,

    checked_jni_GetObjectField,
    checked_jni_GetBooleanField,
    checked_jni_GetByteField,
    checked_jni_GetCharField,
    checked_jni_GetShortField,
    checked_jni_GetIntField,
    checked_jni_GetLongField,
    checked_jni_GetFloatField,
    checked_jni_GetDoubleField,

    checked_jni_SetObjectField,
    checked_jni_GetLongArrayElements,
    checked_jni_SetByteField,
    checked_jni_SetCharFieldjava.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 39
    checked_jni_SetShortField,
    checked_jni_ReleaseShort,
    checked_jni_SetLongField,
    checked_jni_SetFloatField,
    checked_jni_SetDoubleField,

    ,

    checked_jni_CallStaticObjectMethod,
    checked_jni_SetBooleanArrayRegion,
    checked_jni_CallStaticObjectMethodA,
    checked_jni_CallStaticBooleanMethod,
    checked_jni_CallStaticBooleanMethodV,
    checked_jni_CallStaticBooleanMethodA,
    od,
    checked_jni_CallStaticByteMethodVjava.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 35
    java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 38
    checked_jni_CallStaticCharMethod 
    checked_jni_CallStaticCharMethodV
    java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 38
    java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 0
    checked_jni_CallStaticShortMethodV,
    checked_jni_CallStaticShortMethodA,
    checked_jni_CallStaticIntMethod,
    checked_jni_CallStaticIntMethodV,
    checked_jni_CallStaticIntMethodA,
    d,
    java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 0
    java.lang.StringIndexOutOfBoundsException: Range [45, 38) out of bounds for length 46
    checked_jni_CallStaticFloatMethod,
    checked_jni_CallStaticFloatMethodV,
    checked_jni_CallStaticFloatMethodA,
    checked_jni_CallStaticDoubleMethod,
    checked_jni_CallStaticDoubleMethodV,
    checked_jni_CallStaticDoubleMethodA,
    checked_jni_CallStaticVoidMethod,
    checked_jni_CallStaticVoidMethodV,
    checked_jni_CallStaticVoidMethodA,

    checked_jni_GetStaticFieldID,

    checked_jni_GetStaticObjectField,
    checked_jni_GetStaticBooleanField,
    checked_jni_GetStaticByteField,
    checked_jni_GetStaticCharField,
    checked_jni_GetStaticShortField,
    checked_jni_GetStaticIntField,
    checked_jni_GetStaticLongField,
    checked_jni_GetStaticFloatField,
    checked_jni_GetStaticDoubleField,

    checked_jni_SetStaticObjectField,
    checked_jni_SetStaticBooleanField,
    checked_jni_SetStaticByteField,
    java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 0
    java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 0
    ,
    checked_jni_SetStaticLongField,
    checked_jni_SetStaticFloatField,    ,
    checked_jni_SetStaticDoubleField,

    checked_jni_NewString,
    checked_jni_GetStringLength,
    checked_jni_GetStringChars,
    checked_jni_ReleaseStringCharsjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

    checked_jni_NewStringUTF,
    checked_jni_GetStringUTFLength,
    checked_jni_GetStringUTFChars,
    checked_jni_ReleaseStringUTFChars,

    checked_jni_GetArrayLength,

    checked_jni_NewObjectArray,
    checked_jni_GetObjectArrayElement,
    checked_jni_SetObjectArrayElement,

    checked_jni_NewBooleanArray,
    // Returns the function structure
    checked_jni_NewCharArray,
    ,
    checked_jni_NewIntArray,
    checked_jni_NewLongArray,
    java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 30
    checked_jni_NewDoubleArray,

    checked_jni_GetBooleanArrayElements,
    checked_jni_GetByteArrayElements,
    checked_jni_GetCharArrayElements,
    java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 38
    checked_jni_GetIntArrayElements,
  java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 37
    checked_jni_GetFloatArrayElements,
    checked_jni_GetDoubleArrayElements,

    checked_jni_ReleaseBooleanArrayElements,
    checked_jni_ReleaseByteArrayElements,
    checked_jni_ReleaseCharArrayElements,
    checked_jni_ReleaseShortArrayElements,
    checked_jni_ReleaseIntArrayElements
    ,
    java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
    checked_jni_ReleaseDoubleArrayElements,

    checked_jni_GetBooleanArrayRegion,
    checked_jni_GetByteArrayRegion,
    checked_jni_GetCharArrayRegion,
    checked_jni_GetShortArrayRegion,
    checked_jni_GetIntArrayRegion,
    checked_jni_GetLongArrayRegion,
    checked_jni_GetFloatArrayRegion,
    checked_jni_GetDoubleArrayRegion,

    checked_jni_SetBooleanArrayRegion,
    checked_jni_SetByteArrayRegion,
    checked_jni_SetCharArrayRegion,
    checked_jni_SetShortArrayRegion,
    checked_jni_SetIntArrayRegion,
    checked_jni_SetLongArrayRegion,
    checked_jni_SetFloatArrayRegion,
    checked_jni_SetDoubleArrayRegion,

    checked_jni_RegisterNatives,
    checked_jni_UnregisterNatives,

    checked_jni_MonitorEnter,
    checked_jni_MonitorExit,

    checked_jni_GetJavaVM,

    checked_jni_GetStringRegion,
    checked_jni_GetStringUTFRegion,

    checked_jni_GetPrimitiveArrayCritical,
    checked_jni_ReleasePrimitiveArrayCritical,

    checked_jni_GetStringCritical,
    checked_jni_ReleaseStringCritical,

    checked_jni_NewWeakGlobalRef,
    checked_jni_DeleteWeakGlobalRef,

    checked_jni_ExceptionCheck,

    checked_jni_NewDirectByteBuffer,
    checked_jni_GetDirectBufferAddress,
    checked_jni_GetDirectBufferCapacity,

    // New 1.6 Features

    checked_jni_GetObjectRefType,

    // Module Features

    checked_jni_GetModule,

    // Virtual threads

    checked_jni_IsVirtualThread
};


// Returns the function structure
struct JNINativeInterface_* jni_functions_check() {

  unchecked_jni_NativeInterface = jni_functions_nocheck();

  // make sure the last pointer in the checked table is not null, indicating
  // an addition to the JNINativeInterface_ structure without initializing
  // it in the checked table.
  debug_only(int *lastPtr = (int *)((char *)&checked_jni_NativeInterface + \
             sizeof(*unchecked_jni_NativeInterface) - sizeof(char *));)
  assert(*lastPtr != 0,
         "Mismatched JNINativeInterface tables, check for new entries");

  // with -verbose:jni this message will print
  log_debug(jni, resolve)("Checked JNI functions are being used to validate JNI usage");

  return &checked_jni_NativeInterface;
}

Messung V0.5 in Prozent
C=95 H=97 G=95

¤ Dauer der Verarbeitung: 0.67 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.