Produced by OmniGraffle 6.1 2011-05-24 04:08:50 +0000Canvas 1Layer 1package x.y.z;class C { ... native int foo (int p);}class JPF_x_y_z_C { ... public static int foo__I__I (MJIEnv env, int thisRef, int p) { int d = env.getIntField(thisRef, "data"); .. }}...int a = c.foo(3);...aload_1icont_3invokevirtual ..executeMethod (ThreadInfo ti..){ MJIEnv env = ti.getMJIEnv(); Object[] args = getArguments(); .. mth.invoke(peerCls, args); ..}ClassInfo (..){ peerCls = loadNativePeer(..); ..}executeMethod()peerClsClassInfoexecuteMethod()methodsNativePeergetXField(..)setXField(..)...threadInfoMJIEnvenvThreadInfoJPFclassloadingJPFmethodinvocationJPFobjectaccessJPF (model) classJVM (Java) classJava reflection callreflection