if (verboseJNI) VM.sysWrite("JNI called: CallNonvirtualDoubleMethodA  \n");
if (traceJNI) VM.sysWrite("JNI called: CallNonvirtualDoubleMethodA  \n");
  private static double CallNonvirtualDoubleMethodA(int envJREF, int objJREF, int classJREF, int methodID, VM_Address argAddress)    throws Exception {      if (verboseJNI) VM.sysWrite("JNI called: CallNonvirtualDoubleMethodA  \n");      VM_JNIEnvironment env;      try {        // dereference the object instance        env = VM_Thread.getCurrentThread().getJNIEnv();            Object obj =  env.getJNIRef(objJREF);        Object returnObj = VM_JNIEnvironment.invokeWithJValue(obj, methodID, argAddress,                                                               VM_Type.DoubleType, true);        return VM_Reflection.unwrapDouble(returnObj);     // should be a wrapper for a double value      } catch (Throwable unexpected) {        env = VM_Thread.getCurrentThread().getJNIEnv();        env.recordException(unexpected);        return 0;      }    }