Created
June 19, 2013 14:36
-
-
Save zhangyoufu/5814814 to your computer and use it in GitHub Desktop.
JNIEnv functions table, helpful when reverse engineering JNI
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
#include <stdarg.h> | |
#include <stddef.h> | |
typedef int jint; | |
typedef int jclass; | |
typedef int jobject; | |
typedef int jmethodID; | |
typedef int jfieldID; | |
typedef int JNIEnv; | |
typedef int jsize; | |
typedef int jboolean; | |
typedef int jthrowable; | |
typedef int jbyte; | |
typedef int jvalue; | |
typedef int jchar; | |
typedef int jshort; | |
typedef int jlong; | |
typedef int jfloat; | |
typedef int jdouble; | |
typedef int jstring; | |
typedef int jarray; | |
typedef int jobjectArray; | |
typedef int jbooleanArray; | |
typedef int jbyteArray; | |
typedef int jcharArray; | |
typedef int jshortArray; | |
typedef int jintArray; | |
typedef int jlongArray; | |
typedef int jfloatArray; | |
typedef int jdoubleArray; | |
typedef int JNINativeMethod; | |
typedef int JavaVM; | |
typedef int jweak; | |
typedef int jobjectRefType; | |
struct JNINativeInterface { | |
void* reserved0; | |
void* reserved1; | |
void* reserved2; | |
void* reserved3; | |
jint (*GetVersion)(JNIEnv *); | |
jclass (*DefineClass)(JNIEnv*, const char*, jobject, const jbyte*, jsize); | |
jclass (*FindClass)(JNIEnv*, const char*); | |
jmethodID (*FromReflectedMethod)(JNIEnv*, jobject); | |
jfieldID (*FromReflectedField)(JNIEnv*, jobject); | |
/* spec doesn't show jboolean parameter */ | |
jobject (*ToReflectedMethod)(JNIEnv*, jclass, jmethodID, jboolean); | |
jclass (*GetSuperclass)(JNIEnv*, jclass); | |
jboolean (*IsAssignableFrom)(JNIEnv*, jclass, jclass); | |
/* spec doesn't show jboolean parameter */ | |
jobject (*ToReflectedField)(JNIEnv*, jclass, jfieldID, jboolean); | |
jint (*Throw)(JNIEnv*, jthrowable); | |
jint (*ThrowNew)(JNIEnv *, jclass, const char *); | |
jthrowable (*ExceptionOccurred)(JNIEnv*); | |
void (*ExceptionDescribe)(JNIEnv*); | |
void (*ExceptionClear)(JNIEnv*); | |
void (*FatalError)(JNIEnv*, const char*); | |
jint (*PushLocalFrame)(JNIEnv*, jint); | |
jobject (*PopLocalFrame)(JNIEnv*, jobject); | |
jobject (*NewGlobalRef)(JNIEnv*, jobject); | |
void (*DeleteGlobalRef)(JNIEnv*, jobject); | |
void (*DeleteLocalRef)(JNIEnv*, jobject); | |
jboolean (*IsSameObject)(JNIEnv*, jobject, jobject); | |
jobject (*NewLocalRef)(JNIEnv*, jobject); | |
jint (*EnsureLocalCapacity)(JNIEnv*, jint); | |
jobject (*AllocObject)(JNIEnv*, jclass); | |
jobject (*NewObject)(JNIEnv*, jclass, jmethodID, ...); | |
jobject (*NewObjectV)(JNIEnv*, jclass, jmethodID, va_list); | |
jobject (*NewObjectA)(JNIEnv*, jclass, jmethodID, jvalue*); | |
jclass (*GetObjectClass)(JNIEnv*, jobject); | |
jboolean (*IsInstanceOf)(JNIEnv*, jobject, jclass); | |
jmethodID (*GetMethodID)(JNIEnv*, jclass, const char*, const char*); | |
jobject (*CallObjectMethod)(JNIEnv*, jobject, jmethodID, ...); | |
jobject (*CallObjectMethodV)(JNIEnv*, jobject, jmethodID, va_list); | |
jobject (*CallObjectMethodA)(JNIEnv*, jobject, jmethodID, jvalue*); | |
jboolean (*CallBooleanMethod)(JNIEnv*, jobject, jmethodID, ...); | |
jboolean (*CallBooleanMethodV)(JNIEnv*, jobject, jmethodID, va_list); | |
jboolean (*CallBooleanMethodA)(JNIEnv*, jobject, jmethodID, jvalue*); | |
jbyte (*CallByteMethod)(JNIEnv*, jobject, jmethodID, ...); | |
jbyte (*CallByteMethodV)(JNIEnv*, jobject, jmethodID, va_list); | |
jbyte (*CallByteMethodA)(JNIEnv*, jobject, jmethodID, jvalue*); | |
jchar (*CallCharMethod)(JNIEnv*, jobject, jmethodID, ...); | |
jchar (*CallCharMethodV)(JNIEnv*, jobject, jmethodID, va_list); | |
jchar (*CallCharMethodA)(JNIEnv*, jobject, jmethodID, jvalue*); | |
jshort (*CallShortMethod)(JNIEnv*, jobject, jmethodID, ...); | |
jshort (*CallShortMethodV)(JNIEnv*, jobject, jmethodID, va_list); | |
jshort (*CallShortMethodA)(JNIEnv*, jobject, jmethodID, jvalue*); | |
jint (*CallIntMethod)(JNIEnv*, jobject, jmethodID, ...); | |
jint (*CallIntMethodV)(JNIEnv*, jobject, jmethodID, va_list); | |
jint (*CallIntMethodA)(JNIEnv*, jobject, jmethodID, jvalue*); | |
jlong (*CallLongMethod)(JNIEnv*, jobject, jmethodID, ...); | |
jlong (*CallLongMethodV)(JNIEnv*, jobject, jmethodID, va_list); | |
jlong (*CallLongMethodA)(JNIEnv*, jobject, jmethodID, jvalue*); | |
jfloat (*CallFloatMethod)(JNIEnv*, jobject, jmethodID, ...); | |
jfloat (*CallFloatMethodV)(JNIEnv*, jobject, jmethodID, va_list); | |
jfloat (*CallFloatMethodA)(JNIEnv*, jobject, jmethodID, jvalue*); | |
jdouble (*CallDoubleMethod)(JNIEnv*, jobject, jmethodID, ...); | |
jdouble (*CallDoubleMethodV)(JNIEnv*, jobject, jmethodID, va_list); | |
jdouble (*CallDoubleMethodA)(JNIEnv*, jobject, jmethodID, jvalue*); | |
void (*CallVoidMethod)(JNIEnv*, jobject, jmethodID, ...); | |
void (*CallVoidMethodV)(JNIEnv*, jobject, jmethodID, va_list); | |
void (*CallVoidMethodA)(JNIEnv*, jobject, jmethodID, jvalue*); | |
jobject (*CallNonvirtualObjectMethod)(JNIEnv*, jobject, jclass, | |
jmethodID, ...); | |
jobject (*CallNonvirtualObjectMethodV)(JNIEnv*, jobject, jclass, | |
jmethodID, va_list); | |
jobject (*CallNonvirtualObjectMethodA)(JNIEnv*, jobject, jclass, | |
jmethodID, jvalue*); | |
jboolean (*CallNonvirtualBooleanMethod)(JNIEnv*, jobject, jclass, | |
jmethodID, ...); | |
jboolean (*CallNonvirtualBooleanMethodV)(JNIEnv*, jobject, jclass, | |
jmethodID, va_list); | |
jboolean (*CallNonvirtualBooleanMethodA)(JNIEnv*, jobject, jclass, | |
jmethodID, jvalue*); | |
jbyte (*CallNonvirtualByteMethod)(JNIEnv*, jobject, jclass, | |
jmethodID, ...); | |
jbyte (*CallNonvirtualByteMethodV)(JNIEnv*, jobject, jclass, | |
jmethodID, va_list); | |
jbyte (*CallNonvirtualByteMethodA)(JNIEnv*, jobject, jclass, | |
jmethodID, jvalue*); | |
jchar (*CallNonvirtualCharMethod)(JNIEnv*, jobject, jclass, | |
jmethodID, ...); | |
jchar (*CallNonvirtualCharMethodV)(JNIEnv*, jobject, jclass, | |
jmethodID, va_list); | |
jchar (*CallNonvirtualCharMethodA)(JNIEnv*, jobject, jclass, | |
jmethodID, jvalue*); | |
jshort (*CallNonvirtualShortMethod)(JNIEnv*, jobject, jclass, | |
jmethodID, ...); | |
jshort (*CallNonvirtualShortMethodV)(JNIEnv*, jobject, jclass, | |
jmethodID, va_list); | |
jshort (*CallNonvirtualShortMethodA)(JNIEnv*, jobject, jclass, | |
jmethodID, jvalue*); | |
jint (*CallNonvirtualIntMethod)(JNIEnv*, jobject, jclass, | |
jmethodID, ...); | |
jint (*CallNonvirtualIntMethodV)(JNIEnv*, jobject, jclass, | |
jmethodID, va_list); | |
jint (*CallNonvirtualIntMethodA)(JNIEnv*, jobject, jclass, | |
jmethodID, jvalue*); | |
jlong (*CallNonvirtualLongMethod)(JNIEnv*, jobject, jclass, | |
jmethodID, ...); | |
jlong (*CallNonvirtualLongMethodV)(JNIEnv*, jobject, jclass, | |
jmethodID, va_list); | |
jlong (*CallNonvirtualLongMethodA)(JNIEnv*, jobject, jclass, | |
jmethodID, jvalue*); | |
jfloat (*CallNonvirtualFloatMethod)(JNIEnv*, jobject, jclass, | |
jmethodID, ...); | |
jfloat (*CallNonvirtualFloatMethodV)(JNIEnv*, jobject, jclass, | |
jmethodID, va_list); | |
jfloat (*CallNonvirtualFloatMethodA)(JNIEnv*, jobject, jclass, | |
jmethodID, jvalue*); | |
jdouble (*CallNonvirtualDoubleMethod)(JNIEnv*, jobject, jclass, | |
jmethodID, ...); | |
jdouble (*CallNonvirtualDoubleMethodV)(JNIEnv*, jobject, jclass, | |
jmethodID, va_list); | |
jdouble (*CallNonvirtualDoubleMethodA)(JNIEnv*, jobject, jclass, | |
jmethodID, jvalue*); | |
void (*CallNonvirtualVoidMethod)(JNIEnv*, jobject, jclass, | |
jmethodID, ...); | |
void (*CallNonvirtualVoidMethodV)(JNIEnv*, jobject, jclass, | |
jmethodID, va_list); | |
void (*CallNonvirtualVoidMethodA)(JNIEnv*, jobject, jclass, | |
jmethodID, jvalue*); | |
jfieldID (*GetFieldID)(JNIEnv*, jclass, const char*, const char*); | |
jobject (*GetObjectField)(JNIEnv*, jobject, jfieldID); | |
jboolean (*GetBooleanField)(JNIEnv*, jobject, jfieldID); | |
jbyte (*GetByteField)(JNIEnv*, jobject, jfieldID); | |
jchar (*GetCharField)(JNIEnv*, jobject, jfieldID); | |
jshort (*GetShortField)(JNIEnv*, jobject, jfieldID); | |
jint (*GetIntField)(JNIEnv*, jobject, jfieldID); | |
jlong (*GetLongField)(JNIEnv*, jobject, jfieldID); | |
jfloat (*GetFloatField)(JNIEnv*, jobject, jfieldID); | |
jdouble (*GetDoubleField)(JNIEnv*, jobject, jfieldID); | |
void (*SetObjectField)(JNIEnv*, jobject, jfieldID, jobject); | |
void (*SetBooleanField)(JNIEnv*, jobject, jfieldID, jboolean); | |
void (*SetByteField)(JNIEnv*, jobject, jfieldID, jbyte); | |
void (*SetCharField)(JNIEnv*, jobject, jfieldID, jchar); | |
void (*SetShortField)(JNIEnv*, jobject, jfieldID, jshort); | |
void (*SetIntField)(JNIEnv*, jobject, jfieldID, jint); | |
void (*SetLongField)(JNIEnv*, jobject, jfieldID, jlong); | |
void (*SetFloatField)(JNIEnv*, jobject, jfieldID, jfloat); | |
void (*SetDoubleField)(JNIEnv*, jobject, jfieldID, jdouble); | |
jmethodID (*GetStaticMethodID)(JNIEnv*, jclass, const char*, const char*); | |
jobject (*CallStaticObjectMethod)(JNIEnv*, jclass, jmethodID, ...); | |
jobject (*CallStaticObjectMethodV)(JNIEnv*, jclass, jmethodID, va_list); | |
jobject (*CallStaticObjectMethodA)(JNIEnv*, jclass, jmethodID, jvalue*); | |
jboolean (*CallStaticBooleanMethod)(JNIEnv*, jclass, jmethodID, ...); | |
jboolean (*CallStaticBooleanMethodV)(JNIEnv*, jclass, jmethodID, | |
va_list); | |
jboolean (*CallStaticBooleanMethodA)(JNIEnv*, jclass, jmethodID, | |
jvalue*); | |
jbyte (*CallStaticByteMethod)(JNIEnv*, jclass, jmethodID, ...); | |
jbyte (*CallStaticByteMethodV)(JNIEnv*, jclass, jmethodID, va_list); | |
jbyte (*CallStaticByteMethodA)(JNIEnv*, jclass, jmethodID, jvalue*); | |
jchar (*CallStaticCharMethod)(JNIEnv*, jclass, jmethodID, ...); | |
jchar (*CallStaticCharMethodV)(JNIEnv*, jclass, jmethodID, va_list); | |
jchar (*CallStaticCharMethodA)(JNIEnv*, jclass, jmethodID, jvalue*); | |
jshort (*CallStaticShortMethod)(JNIEnv*, jclass, jmethodID, ...); | |
jshort (*CallStaticShortMethodV)(JNIEnv*, jclass, jmethodID, va_list); | |
jshort (*CallStaticShortMethodA)(JNIEnv*, jclass, jmethodID, jvalue*); | |
jint (*CallStaticIntMethod)(JNIEnv*, jclass, jmethodID, ...); | |
jint (*CallStaticIntMethodV)(JNIEnv*, jclass, jmethodID, va_list); | |
jint (*CallStaticIntMethodA)(JNIEnv*, jclass, jmethodID, jvalue*); | |
jlong (*CallStaticLongMethod)(JNIEnv*, jclass, jmethodID, ...); | |
jlong (*CallStaticLongMethodV)(JNIEnv*, jclass, jmethodID, va_list); | |
jlong (*CallStaticLongMethodA)(JNIEnv*, jclass, jmethodID, jvalue*); | |
jfloat (*CallStaticFloatMethod)(JNIEnv*, jclass, jmethodID, ...); | |
jfloat (*CallStaticFloatMethodV)(JNIEnv*, jclass, jmethodID, va_list); | |
jfloat (*CallStaticFloatMethodA)(JNIEnv*, jclass, jmethodID, jvalue*); | |
jdouble (*CallStaticDoubleMethod)(JNIEnv*, jclass, jmethodID, ...); | |
jdouble (*CallStaticDoubleMethodV)(JNIEnv*, jclass, jmethodID, va_list); | |
jdouble (*CallStaticDoubleMethodA)(JNIEnv*, jclass, jmethodID, jvalue*); | |
void (*CallStaticVoidMethod)(JNIEnv*, jclass, jmethodID, ...); | |
void (*CallStaticVoidMethodV)(JNIEnv*, jclass, jmethodID, va_list); | |
void (*CallStaticVoidMethodA)(JNIEnv*, jclass, jmethodID, jvalue*); | |
jfieldID (*GetStaticFieldID)(JNIEnv*, jclass, const char*, | |
const char*); | |
jobject (*GetStaticObjectField)(JNIEnv*, jclass, jfieldID); | |
jboolean (*GetStaticBooleanField)(JNIEnv*, jclass, jfieldID); | |
jbyte (*GetStaticByteField)(JNIEnv*, jclass, jfieldID); | |
jchar (*GetStaticCharField)(JNIEnv*, jclass, jfieldID); | |
jshort (*GetStaticShortField)(JNIEnv*, jclass, jfieldID); | |
jint (*GetStaticIntField)(JNIEnv*, jclass, jfieldID); | |
jlong (*GetStaticLongField)(JNIEnv*, jclass, jfieldID); | |
jfloat (*GetStaticFloatField)(JNIEnv*, jclass, jfieldID); | |
jdouble (*GetStaticDoubleField)(JNIEnv*, jclass, jfieldID); | |
void (*SetStaticObjectField)(JNIEnv*, jclass, jfieldID, jobject); | |
void (*SetStaticBooleanField)(JNIEnv*, jclass, jfieldID, jboolean); | |
void (*SetStaticByteField)(JNIEnv*, jclass, jfieldID, jbyte); | |
void (*SetStaticCharField)(JNIEnv*, jclass, jfieldID, jchar); | |
void (*SetStaticShortField)(JNIEnv*, jclass, jfieldID, jshort); | |
void (*SetStaticIntField)(JNIEnv*, jclass, jfieldID, jint); | |
void (*SetStaticLongField)(JNIEnv*, jclass, jfieldID, jlong); | |
void (*SetStaticFloatField)(JNIEnv*, jclass, jfieldID, jfloat); | |
void (*SetStaticDoubleField)(JNIEnv*, jclass, jfieldID, jdouble); | |
jstring (*NewString)(JNIEnv*, const jchar*, jsize); | |
jsize (*GetStringLength)(JNIEnv*, jstring); | |
const jchar* (*GetStringChars)(JNIEnv*, jstring, jboolean*); | |
void (*ReleaseStringChars)(JNIEnv*, jstring, const jchar*); | |
jstring (*NewStringUTF)(JNIEnv*, const char*); | |
jsize (*GetStringUTFLength)(JNIEnv*, jstring); | |
/* JNI spec says this returns const jbyte*, but that's inconsistent */ | |
const char* (*GetStringUTFChars)(JNIEnv*, jstring, jboolean*); | |
void (*ReleaseStringUTFChars)(JNIEnv*, jstring, const char*); | |
jsize (*GetArrayLength)(JNIEnv*, jarray); | |
jobjectArray (*NewObjectArray)(JNIEnv*, jsize, jclass, jobject); | |
jobject (*GetObjectArrayElement)(JNIEnv*, jobjectArray, jsize); | |
void (*SetObjectArrayElement)(JNIEnv*, jobjectArray, jsize, jobject); | |
jbooleanArray (*NewBooleanArray)(JNIEnv*, jsize); | |
jbyteArray (*NewByteArray)(JNIEnv*, jsize); | |
jcharArray (*NewCharArray)(JNIEnv*, jsize); | |
jshortArray (*NewShortArray)(JNIEnv*, jsize); | |
jintArray (*NewIntArray)(JNIEnv*, jsize); | |
jlongArray (*NewLongArray)(JNIEnv*, jsize); | |
jfloatArray (*NewFloatArray)(JNIEnv*, jsize); | |
jdoubleArray (*NewDoubleArray)(JNIEnv*, jsize); | |
jboolean* (*GetBooleanArrayElements)(JNIEnv*, jbooleanArray, jboolean*); | |
jbyte* (*GetByteArrayElements)(JNIEnv*, jbyteArray, jboolean*); | |
jchar* (*GetCharArrayElements)(JNIEnv*, jcharArray, jboolean*); | |
jshort* (*GetShortArrayElements)(JNIEnv*, jshortArray, jboolean*); | |
jint* (*GetIntArrayElements)(JNIEnv*, jintArray, jboolean*); | |
jlong* (*GetLongArrayElements)(JNIEnv*, jlongArray, jboolean*); | |
jfloat* (*GetFloatArrayElements)(JNIEnv*, jfloatArray, jboolean*); | |
jdouble* (*GetDoubleArrayElements)(JNIEnv*, jdoubleArray, jboolean*); | |
void (*ReleaseBooleanArrayElements)(JNIEnv*, jbooleanArray, | |
jboolean*, jint); | |
void (*ReleaseByteArrayElements)(JNIEnv*, jbyteArray, | |
jbyte*, jint); | |
void (*ReleaseCharArrayElements)(JNIEnv*, jcharArray, | |
jchar*, jint); | |
void (*ReleaseShortArrayElements)(JNIEnv*, jshortArray, | |
jshort*, jint); | |
void (*ReleaseIntArrayElements)(JNIEnv*, jintArray, | |
jint*, jint); | |
void (*ReleaseLongArrayElements)(JNIEnv*, jlongArray, | |
jlong*, jint); | |
void (*ReleaseFloatArrayElements)(JNIEnv*, jfloatArray, | |
jfloat*, jint); | |
void (*ReleaseDoubleArrayElements)(JNIEnv*, jdoubleArray, | |
jdouble*, jint); | |
void (*GetBooleanArrayRegion)(JNIEnv*, jbooleanArray, | |
jsize, jsize, jboolean*); | |
void (*GetByteArrayRegion)(JNIEnv*, jbyteArray, | |
jsize, jsize, jbyte*); | |
void (*GetCharArrayRegion)(JNIEnv*, jcharArray, | |
jsize, jsize, jchar*); | |
void (*GetShortArrayRegion)(JNIEnv*, jshortArray, | |
jsize, jsize, jshort*); | |
void (*GetIntArrayRegion)(JNIEnv*, jintArray, | |
jsize, jsize, jint*); | |
void (*GetLongArrayRegion)(JNIEnv*, jlongArray, | |
jsize, jsize, jlong*); | |
void (*GetFloatArrayRegion)(JNIEnv*, jfloatArray, | |
jsize, jsize, jfloat*); | |
void (*GetDoubleArrayRegion)(JNIEnv*, jdoubleArray, | |
jsize, jsize, jdouble*); | |
/* spec shows these without const; some jni.h do, some don't */ | |
void (*SetBooleanArrayRegion)(JNIEnv*, jbooleanArray, | |
jsize, jsize, const jboolean*); | |
void (*SetByteArrayRegion)(JNIEnv*, jbyteArray, | |
jsize, jsize, const jbyte*); | |
void (*SetCharArrayRegion)(JNIEnv*, jcharArray, | |
jsize, jsize, const jchar*); | |
void (*SetShortArrayRegion)(JNIEnv*, jshortArray, | |
jsize, jsize, const jshort*); | |
void (*SetIntArrayRegion)(JNIEnv*, jintArray, | |
jsize, jsize, const jint*); | |
void (*SetLongArrayRegion)(JNIEnv*, jlongArray, | |
jsize, jsize, const jlong*); | |
void (*SetFloatArrayRegion)(JNIEnv*, jfloatArray, | |
jsize, jsize, const jfloat*); | |
void (*SetDoubleArrayRegion)(JNIEnv*, jdoubleArray, | |
jsize, jsize, const jdouble*); | |
jint (*RegisterNatives)(JNIEnv*, jclass, const JNINativeMethod*, | |
jint); | |
jint (*UnregisterNatives)(JNIEnv*, jclass); | |
jint (*MonitorEnter)(JNIEnv*, jobject); | |
jint (*MonitorExit)(JNIEnv*, jobject); | |
jint (*GetJavaVM)(JNIEnv*, JavaVM**); | |
void (*GetStringRegion)(JNIEnv*, jstring, jsize, jsize, jchar*); | |
void (*GetStringUTFRegion)(JNIEnv*, jstring, jsize, jsize, char*); | |
void* (*GetPrimitiveArrayCritical)(JNIEnv*, jarray, jboolean*); | |
void (*ReleasePrimitiveArrayCritical)(JNIEnv*, jarray, void*, jint); | |
const jchar* (*GetStringCritical)(JNIEnv*, jstring, jboolean*); | |
void (*ReleaseStringCritical)(JNIEnv*, jstring, const jchar*); | |
jweak (*NewWeakGlobalRef)(JNIEnv*, jobject); | |
void (*DeleteWeakGlobalRef)(JNIEnv*, jweak); | |
jboolean (*ExceptionCheck)(JNIEnv*); | |
jobject (*NewDirectByteBuffer)(JNIEnv*, void*, jlong); | |
void* (*GetDirectBufferAddress)(JNIEnv*, jobject); | |
jlong (*GetDirectBufferCapacity)(JNIEnv*, jobject); | |
/* added in JNI 1.6 */ | |
jobjectRefType (*GetObjectRefType)(JNIEnv*, jobject); | |
}; | |
int main() | |
{ | |
printf( "GetVersion: %lx\n", offsetof( struct JNINativeInterface, GetVersion ) ); | |
printf( "DefineClass: %lx\n", offsetof( struct JNINativeInterface, DefineClass ) ); | |
printf( "FindClass: %lx\n", offsetof( struct JNINativeInterface, FindClass ) ); | |
printf( "FromReflectedMethod: %lx\n", offsetof( struct JNINativeInterface, FromReflectedMethod ) ); | |
printf( "FromReflectedField: %lx\n", offsetof( struct JNINativeInterface, FromReflectedField ) ); | |
printf( "ToReflectedMethod: %lx\n", offsetof( struct JNINativeInterface, ToReflectedMethod ) ); | |
printf( "GetSuperclass: %lx\n", offsetof( struct JNINativeInterface, GetSuperclass ) ); | |
printf( "IsAssignableFrom: %lx\n", offsetof( struct JNINativeInterface, IsAssignableFrom ) ); | |
printf( "ToReflectedField: %lx\n", offsetof( struct JNINativeInterface, ToReflectedField ) ); | |
printf( "Throw: %lx\n", offsetof( struct JNINativeInterface, Throw ) ); | |
printf( "ThrowNew: %lx\n", offsetof( struct JNINativeInterface, ThrowNew ) ); | |
printf( "ExceptionOccurred: %lx\n", offsetof( struct JNINativeInterface, ExceptionOccurred ) ); | |
printf( "ExceptionDescribe: %lx\n", offsetof( struct JNINativeInterface, ExceptionDescribe ) ); | |
printf( "ExceptionClear: %lx\n", offsetof( struct JNINativeInterface, ExceptionClear ) ); | |
printf( "FatalError: %lx\n", offsetof( struct JNINativeInterface, FatalError ) ); | |
printf( "PushLocalFrame: %lx\n", offsetof( struct JNINativeInterface, PushLocalFrame ) ); | |
printf( "PopLocalFrame: %lx\n", offsetof( struct JNINativeInterface, PopLocalFrame ) ); | |
printf( "NewGlobalRef: %lx\n", offsetof( struct JNINativeInterface, NewGlobalRef ) ); | |
printf( "DeleteGlobalRef: %lx\n", offsetof( struct JNINativeInterface, DeleteGlobalRef ) ); | |
printf( "DeleteLocalRef: %lx\n", offsetof( struct JNINativeInterface, DeleteLocalRef ) ); | |
printf( "IsSameObject: %lx\n", offsetof( struct JNINativeInterface, IsSameObject ) ); | |
printf( "NewLocalRef: %lx\n", offsetof( struct JNINativeInterface, NewLocalRef ) ); | |
printf( "EnsureLocalCapacity: %lx\n", offsetof( struct JNINativeInterface, EnsureLocalCapacity ) ); | |
printf( "AllocObject: %lx\n", offsetof( struct JNINativeInterface, AllocObject ) ); | |
printf( "NewObject: %lx\n", offsetof( struct JNINativeInterface, NewObject ) ); | |
printf( "NewObjectV: %lx\n", offsetof( struct JNINativeInterface, NewObjectV ) ); | |
printf( "NewObjectA: %lx\n", offsetof( struct JNINativeInterface, NewObjectA ) ); | |
printf( "GetObjectClass: %lx\n", offsetof( struct JNINativeInterface, GetObjectClass ) ); | |
printf( "IsInstanceOf: %lx\n", offsetof( struct JNINativeInterface, IsInstanceOf ) ); | |
printf( "GetMethodID: %lx\n", offsetof( struct JNINativeInterface, GetMethodID ) ); | |
printf( "CallObjectMethod: %lx\n", offsetof( struct JNINativeInterface, CallObjectMethod ) ); | |
printf( "CallObjectMethodV: %lx\n", offsetof( struct JNINativeInterface, CallObjectMethodV ) ); | |
printf( "CallObjectMethodA: %lx\n", offsetof( struct JNINativeInterface, CallObjectMethodA ) ); | |
printf( "CallBooleanMethod: %lx\n", offsetof( struct JNINativeInterface, CallBooleanMethod ) ); | |
printf( "CallBooleanMethodV: %lx\n", offsetof( struct JNINativeInterface, CallBooleanMethodV ) ); | |
printf( "CallBooleanMethodA: %lx\n", offsetof( struct JNINativeInterface, CallBooleanMethodA ) ); | |
printf( "CallByteMethod: %lx\n", offsetof( struct JNINativeInterface, CallByteMethod ) ); | |
printf( "CallByteMethodV: %lx\n", offsetof( struct JNINativeInterface, CallByteMethodV ) ); | |
printf( "CallByteMethodA: %lx\n", offsetof( struct JNINativeInterface, CallByteMethodA ) ); | |
printf( "CallCharMethod: %lx\n", offsetof( struct JNINativeInterface, CallCharMethod ) ); | |
printf( "CallCharMethodV: %lx\n", offsetof( struct JNINativeInterface, CallCharMethodV ) ); | |
printf( "CallCharMethodA: %lx\n", offsetof( struct JNINativeInterface, CallCharMethodA ) ); | |
printf( "CallShortMethod: %lx\n", offsetof( struct JNINativeInterface, CallShortMethod ) ); | |
printf( "CallShortMethodV: %lx\n", offsetof( struct JNINativeInterface, CallShortMethodV ) ); | |
printf( "CallShortMethodA: %lx\n", offsetof( struct JNINativeInterface, CallShortMethodA ) ); | |
printf( "CallIntMethod: %lx\n", offsetof( struct JNINativeInterface, CallIntMethod ) ); | |
printf( "CallIntMethodV: %lx\n", offsetof( struct JNINativeInterface, CallIntMethodV ) ); | |
printf( "CallIntMethodA: %lx\n", offsetof( struct JNINativeInterface, CallIntMethodA ) ); | |
printf( "CallLongMethod: %lx\n", offsetof( struct JNINativeInterface, CallLongMethod ) ); | |
printf( "CallLongMethodV: %lx\n", offsetof( struct JNINativeInterface, CallLongMethodV ) ); | |
printf( "CallLongMethodA: %lx\n", offsetof( struct JNINativeInterface, CallLongMethodA ) ); | |
printf( "CallFloatMethod: %lx\n", offsetof( struct JNINativeInterface, CallFloatMethod ) ); | |
printf( "CallFloatMethodV: %lx\n", offsetof( struct JNINativeInterface, CallFloatMethodV ) ); | |
printf( "CallFloatMethodA: %lx\n", offsetof( struct JNINativeInterface, CallFloatMethodA ) ); | |
printf( "CallDoubleMethod: %lx\n", offsetof( struct JNINativeInterface, CallDoubleMethod ) ); | |
printf( "CallDoubleMethodV: %lx\n", offsetof( struct JNINativeInterface, CallDoubleMethodV ) ); | |
printf( "CallDoubleMethodA: %lx\n", offsetof( struct JNINativeInterface, CallDoubleMethodA ) ); | |
printf( "CallVoidMethod: %lx\n", offsetof( struct JNINativeInterface, CallVoidMethod ) ); | |
printf( "CallVoidMethodV: %lx\n", offsetof( struct JNINativeInterface, CallVoidMethodV ) ); | |
printf( "CallVoidMethodA: %lx\n", offsetof( struct JNINativeInterface, CallVoidMethodA ) ); | |
printf( "CallNonvirtualObjectMethod: %lx\n", offsetof( struct JNINativeInterface, CallNonvirtualObjectMethod ) ); | |
printf( "CallNonvirtualObjectMethodV: %lx\n", offsetof( struct JNINativeInterface, CallNonvirtualObjectMethodV ) ); | |
printf( "CallNonvirtualObjectMethodA: %lx\n", offsetof( struct JNINativeInterface, CallNonvirtualObjectMethodA ) ); | |
printf( "CallNonvirtualBooleanMethod: %lx\n", offsetof( struct JNINativeInterface, CallNonvirtualBooleanMethod ) ); | |
printf( "CallNonvirtualBooleanMethodV: %lx\n", offsetof( struct JNINativeInterface, CallNonvirtualBooleanMethodV ) ); | |
printf( "CallNonvirtualBooleanMethodA: %lx\n", offsetof( struct JNINativeInterface, CallNonvirtualBooleanMethodA ) ); | |
printf( "CallNonvirtualByteMethod: %lx\n", offsetof( struct JNINativeInterface, CallNonvirtualByteMethod ) ); | |
printf( "CallNonvirtualByteMethodV: %lx\n", offsetof( struct JNINativeInterface, CallNonvirtualByteMethodV ) ); | |
printf( "CallNonvirtualByteMethodA: %lx\n", offsetof( struct JNINativeInterface, CallNonvirtualByteMethodA ) ); | |
printf( "CallNonvirtualCharMethod: %lx\n", offsetof( struct JNINativeInterface, CallNonvirtualCharMethod ) ); | |
printf( "CallNonvirtualCharMethodV: %lx\n", offsetof( struct JNINativeInterface, CallNonvirtualCharMethodV ) ); | |
printf( "CallNonvirtualCharMethodA: %lx\n", offsetof( struct JNINativeInterface, CallNonvirtualCharMethodA ) ); | |
printf( "CallNonvirtualShortMethod: %lx\n", offsetof( struct JNINativeInterface, CallNonvirtualShortMethod ) ); | |
printf( "CallNonvirtualShortMethodV: %lx\n", offsetof( struct JNINativeInterface, CallNonvirtualShortMethodV ) ); | |
printf( "CallNonvirtualShortMethodA: %lx\n", offsetof( struct JNINativeInterface, CallNonvirtualShortMethodA ) ); | |
printf( "CallNonvirtualIntMethod: %lx\n", offsetof( struct JNINativeInterface, CallNonvirtualIntMethod ) ); | |
printf( "CallNonvirtualIntMethodV: %lx\n", offsetof( struct JNINativeInterface, CallNonvirtualIntMethodV ) ); | |
printf( "CallNonvirtualIntMethodA: %lx\n", offsetof( struct JNINativeInterface, CallNonvirtualIntMethodA ) ); | |
printf( "CallNonvirtualLongMethod: %lx\n", offsetof( struct JNINativeInterface, CallNonvirtualLongMethod ) ); | |
printf( "CallNonvirtualLongMethodV: %lx\n", offsetof( struct JNINativeInterface, CallNonvirtualLongMethodV ) ); | |
printf( "CallNonvirtualLongMethodA: %lx\n", offsetof( struct JNINativeInterface, CallNonvirtualLongMethodA ) ); | |
printf( "CallNonvirtualFloatMethod: %lx\n", offsetof( struct JNINativeInterface, CallNonvirtualFloatMethod ) ); | |
printf( "CallNonvirtualFloatMethodV: %lx\n", offsetof( struct JNINativeInterface, CallNonvirtualFloatMethodV ) ); | |
printf( "CallNonvirtualFloatMethodA: %lx\n", offsetof( struct JNINativeInterface, CallNonvirtualFloatMethodA ) ); | |
printf( "CallNonvirtualDoubleMethod: %lx\n", offsetof( struct JNINativeInterface, CallNonvirtualDoubleMethod ) ); | |
printf( "CallNonvirtualDoubleMethodV: %lx\n", offsetof( struct JNINativeInterface, CallNonvirtualDoubleMethodV ) ); | |
printf( "CallNonvirtualDoubleMethodA: %lx\n", offsetof( struct JNINativeInterface, CallNonvirtualDoubleMethodA ) ); | |
printf( "CallNonvirtualVoidMethod: %lx\n", offsetof( struct JNINativeInterface, CallNonvirtualVoidMethod ) ); | |
printf( "CallNonvirtualVoidMethodV: %lx\n", offsetof( struct JNINativeInterface, CallNonvirtualVoidMethodV ) ); | |
printf( "CallNonvirtualVoidMethodA: %lx\n", offsetof( struct JNINativeInterface, CallNonvirtualVoidMethodA ) ); | |
printf( "GetFieldID: %lx\n", offsetof( struct JNINativeInterface, GetFieldID ) ); | |
printf( "GetObjectField: %lx\n", offsetof( struct JNINativeInterface, GetObjectField ) ); | |
printf( "GetBooleanField: %lx\n", offsetof( struct JNINativeInterface, GetBooleanField ) ); | |
printf( "GetByteField: %lx\n", offsetof( struct JNINativeInterface, GetByteField ) ); | |
printf( "GetCharField: %lx\n", offsetof( struct JNINativeInterface, GetCharField ) ); | |
printf( "GetShortField: %lx\n", offsetof( struct JNINativeInterface, GetShortField ) ); | |
printf( "GetIntField: %lx\n", offsetof( struct JNINativeInterface, GetIntField ) ); | |
printf( "GetLongField: %lx\n", offsetof( struct JNINativeInterface, GetLongField ) ); | |
printf( "GetFloatField: %lx\n", offsetof( struct JNINativeInterface, GetFloatField ) ); | |
printf( "GetDoubleField: %lx\n", offsetof( struct JNINativeInterface, GetDoubleField ) ); | |
printf( "SetObjectField: %lx\n", offsetof( struct JNINativeInterface, SetObjectField ) ); | |
printf( "SetBooleanField: %lx\n", offsetof( struct JNINativeInterface, SetBooleanField ) ); | |
printf( "SetByteField: %lx\n", offsetof( struct JNINativeInterface, SetByteField ) ); | |
printf( "SetCharField: %lx\n", offsetof( struct JNINativeInterface, SetCharField ) ); | |
printf( "SetShortField: %lx\n", offsetof( struct JNINativeInterface, SetShortField ) ); | |
printf( "SetIntField: %lx\n", offsetof( struct JNINativeInterface, SetIntField ) ); | |
printf( "SetLongField: %lx\n", offsetof( struct JNINativeInterface, SetLongField ) ); | |
printf( "SetFloatField: %lx\n", offsetof( struct JNINativeInterface, SetFloatField ) ); | |
printf( "SetDoubleField: %lx\n", offsetof( struct JNINativeInterface, SetDoubleField ) ); | |
printf( "GetStaticMethodID: %lx\n", offsetof( struct JNINativeInterface, GetStaticMethodID ) ); | |
printf( "CallStaticObjectMethod: %lx\n", offsetof( struct JNINativeInterface, CallStaticObjectMethod ) ); | |
printf( "CallStaticObjectMethodV: %lx\n", offsetof( struct JNINativeInterface, CallStaticObjectMethodV ) ); | |
printf( "CallStaticObjectMethodA: %lx\n", offsetof( struct JNINativeInterface, CallStaticObjectMethodA ) ); | |
printf( "CallStaticBooleanMethod: %lx\n", offsetof( struct JNINativeInterface, CallStaticBooleanMethod ) ); | |
printf( "CallStaticBooleanMethodV: %lx\n", offsetof( struct JNINativeInterface, CallStaticBooleanMethodV ) ); | |
printf( "CallStaticBooleanMethodA: %lx\n", offsetof( struct JNINativeInterface, CallStaticBooleanMethodA ) ); | |
printf( "CallStaticByteMethod: %lx\n", offsetof( struct JNINativeInterface, CallStaticByteMethod ) ); | |
printf( "CallStaticByteMethodV: %lx\n", offsetof( struct JNINativeInterface, CallStaticByteMethodV ) ); | |
printf( "CallStaticByteMethodA: %lx\n", offsetof( struct JNINativeInterface, CallStaticByteMethodA ) ); | |
printf( "CallStaticCharMethod: %lx\n", offsetof( struct JNINativeInterface, CallStaticCharMethod ) ); | |
printf( "CallStaticCharMethodV: %lx\n", offsetof( struct JNINativeInterface, CallStaticCharMethodV ) ); | |
printf( "CallStaticCharMethodA: %lx\n", offsetof( struct JNINativeInterface, CallStaticCharMethodA ) ); | |
printf( "CallStaticShortMethod: %lx\n", offsetof( struct JNINativeInterface, CallStaticShortMethod ) ); | |
printf( "CallStaticShortMethodV: %lx\n", offsetof( struct JNINativeInterface, CallStaticShortMethodV ) ); | |
printf( "CallStaticShortMethodA: %lx\n", offsetof( struct JNINativeInterface, CallStaticShortMethodA ) ); | |
printf( "CallStaticIntMethod: %lx\n", offsetof( struct JNINativeInterface, CallStaticIntMethod ) ); | |
printf( "CallStaticIntMethodV: %lx\n", offsetof( struct JNINativeInterface, CallStaticIntMethodV ) ); | |
printf( "CallStaticIntMethodA: %lx\n", offsetof( struct JNINativeInterface, CallStaticIntMethodA ) ); | |
printf( "CallStaticLongMethod: %lx\n", offsetof( struct JNINativeInterface, CallStaticLongMethod ) ); | |
printf( "CallStaticLongMethodV: %lx\n", offsetof( struct JNINativeInterface, CallStaticLongMethodV ) ); | |
printf( "CallStaticLongMethodA: %lx\n", offsetof( struct JNINativeInterface, CallStaticLongMethodA ) ); | |
printf( "CallStaticFloatMethod: %lx\n", offsetof( struct JNINativeInterface, CallStaticFloatMethod ) ); | |
printf( "CallStaticFloatMethodV: %lx\n", offsetof( struct JNINativeInterface, CallStaticFloatMethodV ) ); | |
printf( "CallStaticFloatMethodA: %lx\n", offsetof( struct JNINativeInterface, CallStaticFloatMethodA ) ); | |
printf( "CallStaticDoubleMethod: %lx\n", offsetof( struct JNINativeInterface, CallStaticDoubleMethod ) ); | |
printf( "CallStaticDoubleMethodV: %lx\n", offsetof( struct JNINativeInterface, CallStaticDoubleMethodV ) ); | |
printf( "CallStaticDoubleMethodA: %lx\n", offsetof( struct JNINativeInterface, CallStaticDoubleMethodA ) ); | |
printf( "CallStaticVoidMethod: %lx\n", offsetof( struct JNINativeInterface, CallStaticVoidMethod ) ); | |
printf( "CallStaticVoidMethodV: %lx\n", offsetof( struct JNINativeInterface, CallStaticVoidMethodV ) ); | |
printf( "CallStaticVoidMethodA: %lx\n", offsetof( struct JNINativeInterface, CallStaticVoidMethodA ) ); | |
printf( "GetStaticFieldID: %lx\n", offsetof( struct JNINativeInterface, GetStaticFieldID ) ); | |
printf( "GetStaticObjectField: %lx\n", offsetof( struct JNINativeInterface, GetStaticObjectField ) ); | |
printf( "GetStaticBooleanField: %lx\n", offsetof( struct JNINativeInterface, GetStaticBooleanField ) ); | |
printf( "GetStaticByteField: %lx\n", offsetof( struct JNINativeInterface, GetStaticByteField ) ); | |
printf( "GetStaticCharField: %lx\n", offsetof( struct JNINativeInterface, GetStaticCharField ) ); | |
printf( "GetStaticShortField: %lx\n", offsetof( struct JNINativeInterface, GetStaticShortField ) ); | |
printf( "GetStaticIntField: %lx\n", offsetof( struct JNINativeInterface, GetStaticIntField ) ); | |
printf( "GetStaticLongField: %lx\n", offsetof( struct JNINativeInterface, GetStaticLongField ) ); | |
printf( "GetStaticFloatField: %lx\n", offsetof( struct JNINativeInterface, GetStaticFloatField ) ); | |
printf( "GetStaticDoubleField: %lx\n", offsetof( struct JNINativeInterface, GetStaticDoubleField ) ); | |
printf( "SetStaticObjectField: %lx\n", offsetof( struct JNINativeInterface, SetStaticObjectField ) ); | |
printf( "SetStaticBooleanField: %lx\n", offsetof( struct JNINativeInterface, SetStaticBooleanField ) ); | |
printf( "SetStaticByteField: %lx\n", offsetof( struct JNINativeInterface, SetStaticByteField ) ); | |
printf( "SetStaticCharField: %lx\n", offsetof( struct JNINativeInterface, SetStaticCharField ) ); | |
printf( "SetStaticShortField: %lx\n", offsetof( struct JNINativeInterface, SetStaticShortField ) ); | |
printf( "SetStaticIntField: %lx\n", offsetof( struct JNINativeInterface, SetStaticIntField ) ); | |
printf( "SetStaticLongField: %lx\n", offsetof( struct JNINativeInterface, SetStaticLongField ) ); | |
printf( "SetStaticFloatField: %lx\n", offsetof( struct JNINativeInterface, SetStaticFloatField ) ); | |
printf( "SetStaticDoubleField: %lx\n", offsetof( struct JNINativeInterface, SetStaticDoubleField ) ); | |
printf( "NewString: %lx\n", offsetof( struct JNINativeInterface, NewString ) ); | |
printf( "GetStringLength: %lx\n", offsetof( struct JNINativeInterface, GetStringLength ) ); | |
printf( "GetStringChars: %lx\n", offsetof( struct JNINativeInterface, GetStringChars ) ); | |
printf( "ReleaseStringChars: %lx\n", offsetof( struct JNINativeInterface, ReleaseStringChars ) ); | |
printf( "NewStringUTF: %lx\n", offsetof( struct JNINativeInterface, NewStringUTF ) ); | |
printf( "GetStringUTFLength: %lx\n", offsetof( struct JNINativeInterface, GetStringUTFLength ) ); | |
printf( "GetStringUTFChars: %lx\n", offsetof( struct JNINativeInterface, GetStringUTFChars ) ); | |
printf( "ReleaseStringUTFChars: %lx\n", offsetof( struct JNINativeInterface, ReleaseStringUTFChars ) ); | |
printf( "GetArrayLength: %lx\n", offsetof( struct JNINativeInterface, GetArrayLength ) ); | |
printf( "NewObjectArray: %lx\n", offsetof( struct JNINativeInterface, NewObjectArray ) ); | |
printf( "GetObjectArrayElement: %lx\n", offsetof( struct JNINativeInterface, GetObjectArrayElement ) ); | |
printf( "SetObjectArrayElement: %lx\n", offsetof( struct JNINativeInterface, SetObjectArrayElement ) ); | |
printf( "NewBooleanArray: %lx\n", offsetof( struct JNINativeInterface, NewBooleanArray ) ); | |
printf( "NewByteArray: %lx\n", offsetof( struct JNINativeInterface, NewByteArray ) ); | |
printf( "NewCharArray: %lx\n", offsetof( struct JNINativeInterface, NewCharArray ) ); | |
printf( "NewShortArray: %lx\n", offsetof( struct JNINativeInterface, NewShortArray ) ); | |
printf( "NewIntArray: %lx\n", offsetof( struct JNINativeInterface, NewIntArray ) ); | |
printf( "NewLongArray: %lx\n", offsetof( struct JNINativeInterface, NewLongArray ) ); | |
printf( "NewFloatArray: %lx\n", offsetof( struct JNINativeInterface, NewFloatArray ) ); | |
printf( "NewDoubleArray: %lx\n", offsetof( struct JNINativeInterface, NewDoubleArray ) ); | |
printf( "GetBooleanArrayElements: %lx\n", offsetof( struct JNINativeInterface, GetBooleanArrayElements ) ); | |
printf( "GetByteArrayElements: %lx\n", offsetof( struct JNINativeInterface, GetByteArrayElements ) ); | |
printf( "GetCharArrayElements: %lx\n", offsetof( struct JNINativeInterface, GetCharArrayElements ) ); | |
printf( "GetShortArrayElements: %lx\n", offsetof( struct JNINativeInterface, GetShortArrayElements ) ); | |
printf( "GetIntArrayElements: %lx\n", offsetof( struct JNINativeInterface, GetIntArrayElements ) ); | |
printf( "GetLongArrayElements: %lx\n", offsetof( struct JNINativeInterface, GetLongArrayElements ) ); | |
printf( "GetFloatArrayElements: %lx\n", offsetof( struct JNINativeInterface, GetFloatArrayElements ) ); | |
printf( "GetDoubleArrayElements: %lx\n", offsetof( struct JNINativeInterface, GetDoubleArrayElements ) ); | |
printf( "ReleaseBooleanArrayElements: %lx\n", offsetof( struct JNINativeInterface, ReleaseBooleanArrayElements ) ); | |
printf( "ReleaseByteArrayElements: %lx\n", offsetof( struct JNINativeInterface, ReleaseByteArrayElements ) ); | |
printf( "ReleaseCharArrayElements: %lx\n", offsetof( struct JNINativeInterface, ReleaseCharArrayElements ) ); | |
printf( "ReleaseShortArrayElements: %lx\n", offsetof( struct JNINativeInterface, ReleaseShortArrayElements ) ); | |
printf( "ReleaseIntArrayElements: %lx\n", offsetof( struct JNINativeInterface, ReleaseIntArrayElements ) ); | |
printf( "ReleaseLongArrayElements: %lx\n", offsetof( struct JNINativeInterface, ReleaseLongArrayElements ) ); | |
printf( "ReleaseFloatArrayElements: %lx\n", offsetof( struct JNINativeInterface, ReleaseFloatArrayElements ) ); | |
printf( "ReleaseDoubleArrayElements: %lx\n", offsetof( struct JNINativeInterface, ReleaseDoubleArrayElements ) ); | |
printf( "GetBooleanArrayRegion: %lx\n", offsetof( struct JNINativeInterface, GetBooleanArrayRegion ) ); | |
printf( "GetByteArrayRegion: %lx\n", offsetof( struct JNINativeInterface, GetByteArrayRegion ) ); | |
printf( "GetCharArrayRegion: %lx\n", offsetof( struct JNINativeInterface, GetCharArrayRegion ) ); | |
printf( "GetShortArrayRegion: %lx\n", offsetof( struct JNINativeInterface, GetShortArrayRegion ) ); | |
printf( "GetIntArrayRegion: %lx\n", offsetof( struct JNINativeInterface, GetIntArrayRegion ) ); | |
printf( "GetLongArrayRegion: %lx\n", offsetof( struct JNINativeInterface, GetLongArrayRegion ) ); | |
printf( "GetFloatArrayRegion: %lx\n", offsetof( struct JNINativeInterface, GetFloatArrayRegion ) ); | |
printf( "GetDoubleArrayRegion: %lx\n", offsetof( struct JNINativeInterface, GetDoubleArrayRegion ) ); | |
printf( "SetBooleanArrayRegion: %lx\n", offsetof( struct JNINativeInterface, SetBooleanArrayRegion ) ); | |
printf( "SetByteArrayRegion: %lx\n", offsetof( struct JNINativeInterface, SetByteArrayRegion ) ); | |
printf( "SetCharArrayRegion: %lx\n", offsetof( struct JNINativeInterface, SetCharArrayRegion ) ); | |
printf( "SetShortArrayRegion: %lx\n", offsetof( struct JNINativeInterface, SetShortArrayRegion ) ); | |
printf( "SetIntArrayRegion: %lx\n", offsetof( struct JNINativeInterface, SetIntArrayRegion ) ); | |
printf( "SetLongArrayRegion: %lx\n", offsetof( struct JNINativeInterface, SetLongArrayRegion ) ); | |
printf( "SetFloatArrayRegion: %lx\n", offsetof( struct JNINativeInterface, SetFloatArrayRegion ) ); | |
printf( "SetDoubleArrayRegion: %lx\n", offsetof( struct JNINativeInterface, SetDoubleArrayRegion ) ); | |
printf( "RegisterNatives: %lx\n", offsetof( struct JNINativeInterface, RegisterNatives ) ); | |
printf( "UnregisterNatives: %lx\n", offsetof( struct JNINativeInterface, UnregisterNatives ) ); | |
printf( "MonitorEnter: %lx\n", offsetof( struct JNINativeInterface, MonitorEnter ) ); | |
printf( "MonitorExit: %lx\n", offsetof( struct JNINativeInterface, MonitorExit ) ); | |
printf( "GetJavaVM: %lx\n", offsetof( struct JNINativeInterface, GetJavaVM ) ); | |
printf( "GetStringRegion: %lx\n", offsetof( struct JNINativeInterface, GetStringRegion ) ); | |
printf( "GetStringUTFRegion: %lx\n", offsetof( struct JNINativeInterface, GetStringUTFRegion ) ); | |
printf( "GetPrimitiveArrayCritical: %lx\n", offsetof( struct JNINativeInterface, GetPrimitiveArrayCritical ) ); | |
printf( "ReleasePrimitiveArrayCritical: %lx\n", offsetof( struct JNINativeInterface, ReleasePrimitiveArrayCritical ) ); | |
printf( "GetStringCritical: %lx\n", offsetof( struct JNINativeInterface, GetStringCritical ) ); | |
printf( "ReleaseStringCritical: %lx\n", offsetof( struct JNINativeInterface, ReleaseStringCritical ) ); | |
printf( "NewWeakGlobalRef: %lx\n", offsetof( struct JNINativeInterface, NewWeakGlobalRef ) ); | |
printf( "DeleteWeakGlobalRef: %lx\n", offsetof( struct JNINativeInterface, DeleteWeakGlobalRef ) ); | |
printf( "ExceptionCheck: %lx\n", offsetof( struct JNINativeInterface, ExceptionCheck ) ); | |
printf( "NewDirectByteBuffer: %lx\n", offsetof( struct JNINativeInterface, NewDirectByteBuffer ) ); | |
printf( "GetDirectBufferAddress: %lx\n", offsetof( struct JNINativeInterface, GetDirectBufferAddress ) ); | |
printf( "GetDirectBufferCapacity: %lx\n", offsetof( struct JNINativeInterface, GetDirectBufferCapacity ) ); | |
printf( "GetObjectRefType: %lx\n", offsetof( struct JNINativeInterface, GetObjectRefType ) ); | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment