private static void ReleaseStringCritical(JNIEnvironment env,int strJREF,Address carray){
  if (traceJNI)   VM.sysWrite("JNI called: ReleaseStringCritical \n");
  RuntimeEntrypoints.checkJNICountDownToGC();
  try {
    VM.enableGC(true);
  }
 catch (  Throwable unexpected) {
    if (traceJNI)     unexpected.printStackTrace(System.err);
    env.recordException(unexpected);
  }
}

private static void ReleaseStringCritical ( JNIEnvironment env , int strJREF , Address carray ) { if ( traceJNI ) VM . sysWrite ( "JNI called: ReleaseStringCritical \n" ) ; RuntimeEntrypoints . checkJNICountDownToGC ( ) ; try { VM . enableGC ( true ) ; } catch ( Throwable unexpected ) { if ( traceJNI ) unexpected . printStackTrace ( System . err ) ; env . recordException ( unexpected ) ; } }
releasestringcritical : this function is intended to be paired with the getstringcritical function . since the native code has direct access to the string ' s backing array of characters , no copyback update is necessary ; gc is simply reenabled .
