protected static Object callMethodJValuePtr(JNIEnvironment env,int objJREF,int methodID,Address argAddress,TypeReference expectedReturnType,boolean nonVirtual) throws InvocationTargetException {
  RuntimeEntrypoints.checkJNICountDownToGC();
  try {
    Object obj=env.getJNIRef(objJREF);
    MethodReference mr=MemberReference.getMethodRef(methodID);
    Object[] args=packageParametersFromJValuePtr(mr,argAddress);
    return callMethod(obj,mr,args,expectedReturnType,nonVirtual);
  }
 catch (  Throwable unexpected) {
    if (JNIFunctions.traceJNI)     unexpected.printStackTrace(System.err);
    env.recordException(unexpected);
    return 0;
  }
}

protected static Object callMethodJValuePtr ( JNIEnvironment env , int objJREF , int methodID , Address argAddress , TypeReference expectedReturnType , boolean nonVirtual ) throws InvocationTargetException { RuntimeEntrypoints . checkJNICountDownToGC ( ) ; try { Object obj = env . getJNIRef ( objJREF ) ; MethodReference mr = MemberReference . getMethodRef ( methodID ) ; Object [ ] args = packageParametersFromJValuePtr ( mr , argAddress ) ; return callMethod ( obj , mr , args , expectedReturnType , nonVirtual ) ; } catch ( Throwable unexpected ) { if ( JNIFunctions . traceJNI ) unexpected . printStackTrace ( System . err ) ; env . recordException ( unexpected ) ; return 0 ; } }
dispatch method call , arguments in jvalue
