1f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner/* 2f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner * Copyright 2006 The Android Open Source Project 3f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner * 4f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner * JNI specification, as defined by Sun: 5f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner * http://java.sun.com/javase/6/docs/technotes/guides/jni/spec/jniTOC.html 6f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner * 7f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner * Everything here is expected to be VM-neutral. 8f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner */ 9f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#ifndef _JNI_H 10f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define _JNI_H 11f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 12f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#include <stdarg.h> 13f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 14f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner/* 15f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner * Primitive types that match up with Java equivalents. 16f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner */ 17f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#ifdef HAVE_INTTYPES_H 18f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner# include <inttypes.h> /* C99 */ 19f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef uint8_t jboolean; /* unsigned 8 bits */ 20f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef int8_t jbyte; /* signed 8 bits */ 21f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef uint16_t jchar; /* unsigned 16 bits */ 22f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef int16_t jshort; /* signed 16 bits */ 23f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef int32_t jint; /* signed 32 bits */ 24f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef int64_t jlong; /* signed 64 bits */ 25f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef float jfloat; /* 32-bit IEEE 754 */ 26f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef double jdouble; /* 64-bit IEEE 754 */ 27f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#else 28f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef unsigned char jboolean; /* unsigned 8 bits */ 29f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef signed char jbyte; /* signed 8 bits */ 30f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef unsigned short jchar; /* unsigned 16 bits */ 31f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef short jshort; /* signed 16 bits */ 32f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef int jint; /* signed 32 bits */ 33f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef long long jlong; /* signed 64 bits */ 34f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef float jfloat; /* 32-bit IEEE 754 */ 35f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef double jdouble; /* 64-bit IEEE 754 */ 36f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#endif 37f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 38f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner/* "cardinal indices and sizes" */ 39f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef jint jsize; 40f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 41f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#ifdef __cplusplus 42f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner/* 43f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner * Reference types, in C++ 44f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner */ 45f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnerclass _jobject {}; 46f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnerclass _jclass : public _jobject {}; 47f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnerclass _jstring : public _jobject {}; 48f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnerclass _jarray : public _jobject {}; 49f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnerclass _jobjectArray : public _jarray {}; 50f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnerclass _jbooleanArray : public _jarray {}; 51f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnerclass _jbyteArray : public _jarray {}; 52f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnerclass _jcharArray : public _jarray {}; 53f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnerclass _jshortArray : public _jarray {}; 54f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnerclass _jintArray : public _jarray {}; 55f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnerclass _jlongArray : public _jarray {}; 56f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnerclass _jfloatArray : public _jarray {}; 57f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnerclass _jdoubleArray : public _jarray {}; 58f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnerclass _jthrowable : public _jobject {}; 59f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 60f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef _jobject* jobject; 61f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef _jclass* jclass; 62f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef _jstring* jstring; 63f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef _jarray* jarray; 64f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef _jobjectArray* jobjectArray; 65f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef _jbooleanArray* jbooleanArray; 66f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef _jbyteArray* jbyteArray; 67f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef _jcharArray* jcharArray; 68f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef _jshortArray* jshortArray; 69f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef _jintArray* jintArray; 70f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef _jlongArray* jlongArray; 71f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef _jfloatArray* jfloatArray; 72f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef _jdoubleArray* jdoubleArray; 73f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef _jthrowable* jthrowable; 74f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef _jobject* jweak; 75f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 76f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 77f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#else /* not __cplusplus */ 78f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 79f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner/* 80f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner * Reference types, in C. 81f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner */ 82f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef void* jobject; 83f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef jobject jclass; 84f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef jobject jstring; 85f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef jobject jarray; 86f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef jarray jobjectArray; 87f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef jarray jbooleanArray; 88f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef jarray jbyteArray; 89f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef jarray jcharArray; 90f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef jarray jshortArray; 91f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef jarray jintArray; 92f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef jarray jlongArray; 93f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef jarray jfloatArray; 94f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef jarray jdoubleArray; 95f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef jobject jthrowable; 96f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef jobject jweak; 97f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 98f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#endif /* not __cplusplus */ 99f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 100f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnerstruct _jfieldID; /* opaque structure */ 101f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef struct _jfieldID* jfieldID; /* field IDs */ 102f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 103f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnerstruct _jmethodID; /* opaque structure */ 104f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef struct _jmethodID* jmethodID; /* method IDs */ 105f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 106f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnerstruct JNIInvokeInterface; 107f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 108f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef union jvalue { 109f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jboolean z; 110f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jbyte b; 111f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jchar c; 112f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jshort s; 113f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint i; 114f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jlong j; 115f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jfloat f; 116f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jdouble d; 117f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jobject l; 118f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner} jvalue; 119f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 120f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef enum jobjectRefType { 121f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner JNIInvalidRefType = 0, 122f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner JNILocalRefType = 1, 123f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner JNIGlobalRefType = 2, 124f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner JNIWeakGlobalRefType = 3 125f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner} jobjectRefType; 126f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 127f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef struct { 128f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner const char* name; 129f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner const char* signature; 130f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void* fnPtr; 131f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner} JNINativeMethod; 132f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 133f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnerstruct _JNIEnv; 134f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnerstruct _JavaVM; 135f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef const struct JNINativeInterface* C_JNIEnv; 136f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 137f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#if defined(__cplusplus) 138f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef _JNIEnv JNIEnv; 139f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef _JavaVM JavaVM; 140f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#else 141f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef const struct JNINativeInterface* JNIEnv; 142f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef const struct JNIInvokeInterface* JavaVM; 143f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#endif 144f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 145f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner/* 146f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner * Table of interface function pointers. 147f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner */ 148f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnerstruct JNINativeInterface { 149f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void* reserved0; 150f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void* reserved1; 151f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void* reserved2; 152f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void* reserved3; 153f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 154f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint (*GetVersion)(JNIEnv *); 155f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 156f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jclass (*DefineClass)(JNIEnv*, const char*, jobject, const jbyte*, 157f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jsize); 158f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jclass (*FindClass)(JNIEnv*, const char*); 159f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 160f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jmethodID (*FromReflectedMethod)(JNIEnv*, jobject); 161f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jfieldID (*FromReflectedField)(JNIEnv*, jobject); 162f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner /* spec doesn't show jboolean parameter */ 163f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jobject (*ToReflectedMethod)(JNIEnv*, jclass, jmethodID, jboolean); 164f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 165f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jclass (*GetSuperclass)(JNIEnv*, jclass); 166f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jboolean (*IsAssignableFrom)(JNIEnv*, jclass, jclass); 167f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 168f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner /* spec doesn't show jboolean parameter */ 169f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jobject (*ToReflectedField)(JNIEnv*, jclass, jfieldID, jboolean); 170f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 171f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint (*Throw)(JNIEnv*, jthrowable); 172f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint (*ThrowNew)(JNIEnv *, jclass, const char *); 173f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jthrowable (*ExceptionOccurred)(JNIEnv*); 174f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*ExceptionDescribe)(JNIEnv*); 175f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*ExceptionClear)(JNIEnv*); 176f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*FatalError)(JNIEnv*, const char*); 177f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 178f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint (*PushLocalFrame)(JNIEnv*, jint); 179f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jobject (*PopLocalFrame)(JNIEnv*, jobject); 180f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 181f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jobject (*NewGlobalRef)(JNIEnv*, jobject); 182f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*DeleteGlobalRef)(JNIEnv*, jobject); 183f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*DeleteLocalRef)(JNIEnv*, jobject); 184f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jboolean (*IsSameObject)(JNIEnv*, jobject, jobject); 185f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 186f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jobject (*NewLocalRef)(JNIEnv*, jobject); 187f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint (*EnsureLocalCapacity)(JNIEnv*, jint); 188f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 189f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jobject (*AllocObject)(JNIEnv*, jclass); 190f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jobject (*NewObject)(JNIEnv*, jclass, jmethodID, ...); 191f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jobject (*NewObjectV)(JNIEnv*, jclass, jmethodID, va_list); 192f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jobject (*NewObjectA)(JNIEnv*, jclass, jmethodID, jvalue*); 193f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 194f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jclass (*GetObjectClass)(JNIEnv*, jobject); 195f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jboolean (*IsInstanceOf)(JNIEnv*, jobject, jclass); 196f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jmethodID (*GetMethodID)(JNIEnv*, jclass, const char*, const char*); 197f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 198f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jobject (*CallObjectMethod)(JNIEnv*, jobject, jmethodID, ...); 199f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jobject (*CallObjectMethodV)(JNIEnv*, jobject, jmethodID, va_list); 200f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jobject (*CallObjectMethodA)(JNIEnv*, jobject, jmethodID, jvalue*); 201f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jboolean (*CallBooleanMethod)(JNIEnv*, jobject, jmethodID, ...); 202f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jboolean (*CallBooleanMethodV)(JNIEnv*, jobject, jmethodID, va_list); 203f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jboolean (*CallBooleanMethodA)(JNIEnv*, jobject, jmethodID, jvalue*); 204f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jbyte (*CallByteMethod)(JNIEnv*, jobject, jmethodID, ...); 205f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jbyte (*CallByteMethodV)(JNIEnv*, jobject, jmethodID, va_list); 206f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jbyte (*CallByteMethodA)(JNIEnv*, jobject, jmethodID, jvalue*); 207f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jchar (*CallCharMethod)(JNIEnv*, jobject, jmethodID, ...); 208f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jchar (*CallCharMethodV)(JNIEnv*, jobject, jmethodID, va_list); 209f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jchar (*CallCharMethodA)(JNIEnv*, jobject, jmethodID, jvalue*); 210f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jshort (*CallShortMethod)(JNIEnv*, jobject, jmethodID, ...); 211f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jshort (*CallShortMethodV)(JNIEnv*, jobject, jmethodID, va_list); 212f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jshort (*CallShortMethodA)(JNIEnv*, jobject, jmethodID, jvalue*); 213f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint (*CallIntMethod)(JNIEnv*, jobject, jmethodID, ...); 214f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint (*CallIntMethodV)(JNIEnv*, jobject, jmethodID, va_list); 215f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint (*CallIntMethodA)(JNIEnv*, jobject, jmethodID, jvalue*); 216f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jlong (*CallLongMethod)(JNIEnv*, jobject, jmethodID, ...); 217f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jlong (*CallLongMethodV)(JNIEnv*, jobject, jmethodID, va_list); 218f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jlong (*CallLongMethodA)(JNIEnv*, jobject, jmethodID, jvalue*); 219f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jfloat (*CallFloatMethod)(JNIEnv*, jobject, jmethodID, ...); 220f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jfloat (*CallFloatMethodV)(JNIEnv*, jobject, jmethodID, va_list); 221f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jfloat (*CallFloatMethodA)(JNIEnv*, jobject, jmethodID, jvalue*); 222f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jdouble (*CallDoubleMethod)(JNIEnv*, jobject, jmethodID, ...); 223f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jdouble (*CallDoubleMethodV)(JNIEnv*, jobject, jmethodID, va_list); 224f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jdouble (*CallDoubleMethodA)(JNIEnv*, jobject, jmethodID, jvalue*); 225f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*CallVoidMethod)(JNIEnv*, jobject, jmethodID, ...); 226f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*CallVoidMethodV)(JNIEnv*, jobject, jmethodID, va_list); 227f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*CallVoidMethodA)(JNIEnv*, jobject, jmethodID, jvalue*); 228f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 229f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jobject (*CallNonvirtualObjectMethod)(JNIEnv*, jobject, jclass, 230f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jmethodID, ...); 231f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jobject (*CallNonvirtualObjectMethodV)(JNIEnv*, jobject, jclass, 232f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jmethodID, va_list); 233f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jobject (*CallNonvirtualObjectMethodA)(JNIEnv*, jobject, jclass, 234f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jmethodID, jvalue*); 235f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jboolean (*CallNonvirtualBooleanMethod)(JNIEnv*, jobject, jclass, 236f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jmethodID, ...); 237f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jboolean (*CallNonvirtualBooleanMethodV)(JNIEnv*, jobject, jclass, 238f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jmethodID, va_list); 239f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jboolean (*CallNonvirtualBooleanMethodA)(JNIEnv*, jobject, jclass, 240f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jmethodID, jvalue*); 241f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jbyte (*CallNonvirtualByteMethod)(JNIEnv*, jobject, jclass, 242f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jmethodID, ...); 243f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jbyte (*CallNonvirtualByteMethodV)(JNIEnv*, jobject, jclass, 244f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jmethodID, va_list); 245f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jbyte (*CallNonvirtualByteMethodA)(JNIEnv*, jobject, jclass, 246f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jmethodID, jvalue*); 247f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jchar (*CallNonvirtualCharMethod)(JNIEnv*, jobject, jclass, 248f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jmethodID, ...); 249f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jchar (*CallNonvirtualCharMethodV)(JNIEnv*, jobject, jclass, 250f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jmethodID, va_list); 251f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jchar (*CallNonvirtualCharMethodA)(JNIEnv*, jobject, jclass, 252f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jmethodID, jvalue*); 253f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jshort (*CallNonvirtualShortMethod)(JNIEnv*, jobject, jclass, 254f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jmethodID, ...); 255f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jshort (*CallNonvirtualShortMethodV)(JNIEnv*, jobject, jclass, 256f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jmethodID, va_list); 257f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jshort (*CallNonvirtualShortMethodA)(JNIEnv*, jobject, jclass, 258f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jmethodID, jvalue*); 259f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint (*CallNonvirtualIntMethod)(JNIEnv*, jobject, jclass, 260f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jmethodID, ...); 261f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint (*CallNonvirtualIntMethodV)(JNIEnv*, jobject, jclass, 262f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jmethodID, va_list); 263f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint (*CallNonvirtualIntMethodA)(JNIEnv*, jobject, jclass, 264f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jmethodID, jvalue*); 265f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jlong (*CallNonvirtualLongMethod)(JNIEnv*, jobject, jclass, 266f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jmethodID, ...); 267f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jlong (*CallNonvirtualLongMethodV)(JNIEnv*, jobject, jclass, 268f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jmethodID, va_list); 269f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jlong (*CallNonvirtualLongMethodA)(JNIEnv*, jobject, jclass, 270f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jmethodID, jvalue*); 271f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jfloat (*CallNonvirtualFloatMethod)(JNIEnv*, jobject, jclass, 272f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jmethodID, ...); 273f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jfloat (*CallNonvirtualFloatMethodV)(JNIEnv*, jobject, jclass, 274f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jmethodID, va_list); 275f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jfloat (*CallNonvirtualFloatMethodA)(JNIEnv*, jobject, jclass, 276f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jmethodID, jvalue*); 277f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jdouble (*CallNonvirtualDoubleMethod)(JNIEnv*, jobject, jclass, 278f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jmethodID, ...); 279f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jdouble (*CallNonvirtualDoubleMethodV)(JNIEnv*, jobject, jclass, 280f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jmethodID, va_list); 281f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jdouble (*CallNonvirtualDoubleMethodA)(JNIEnv*, jobject, jclass, 282f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jmethodID, jvalue*); 283f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*CallNonvirtualVoidMethod)(JNIEnv*, jobject, jclass, 284f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jmethodID, ...); 285f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*CallNonvirtualVoidMethodV)(JNIEnv*, jobject, jclass, 286f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jmethodID, va_list); 287f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*CallNonvirtualVoidMethodA)(JNIEnv*, jobject, jclass, 288f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jmethodID, jvalue*); 289f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 290f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jfieldID (*GetFieldID)(JNIEnv*, jclass, const char*, const char*); 291f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 292f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jobject (*GetObjectField)(JNIEnv*, jobject, jfieldID); 293f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jboolean (*GetBooleanField)(JNIEnv*, jobject, jfieldID); 294f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jbyte (*GetByteField)(JNIEnv*, jobject, jfieldID); 295f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jchar (*GetCharField)(JNIEnv*, jobject, jfieldID); 296f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jshort (*GetShortField)(JNIEnv*, jobject, jfieldID); 297f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint (*GetIntField)(JNIEnv*, jobject, jfieldID); 298f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jlong (*GetLongField)(JNIEnv*, jobject, jfieldID); 299f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jfloat (*GetFloatField)(JNIEnv*, jobject, jfieldID); 300f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jdouble (*GetDoubleField)(JNIEnv*, jobject, jfieldID); 301f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 302f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*SetObjectField)(JNIEnv*, jobject, jfieldID, jobject); 303f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*SetBooleanField)(JNIEnv*, jobject, jfieldID, jboolean); 304f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*SetByteField)(JNIEnv*, jobject, jfieldID, jbyte); 305f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*SetCharField)(JNIEnv*, jobject, jfieldID, jchar); 306f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*SetShortField)(JNIEnv*, jobject, jfieldID, jshort); 307f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*SetIntField)(JNIEnv*, jobject, jfieldID, jint); 308f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*SetLongField)(JNIEnv*, jobject, jfieldID, jlong); 309f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*SetFloatField)(JNIEnv*, jobject, jfieldID, jfloat); 310f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*SetDoubleField)(JNIEnv*, jobject, jfieldID, jdouble); 311f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 312f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jmethodID (*GetStaticMethodID)(JNIEnv*, jclass, const char*, const char*); 313f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 314f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jobject (*CallStaticObjectMethod)(JNIEnv*, jclass, jmethodID, ...); 315f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jobject (*CallStaticObjectMethodV)(JNIEnv*, jclass, jmethodID, va_list); 316f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jobject (*CallStaticObjectMethodA)(JNIEnv*, jclass, jmethodID, jvalue*); 317f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jboolean (*CallStaticBooleanMethod)(JNIEnv*, jclass, jmethodID, ...); 318f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jboolean (*CallStaticBooleanMethodV)(JNIEnv*, jclass, jmethodID, 319f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner va_list); 320f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jboolean (*CallStaticBooleanMethodA)(JNIEnv*, jclass, jmethodID, 321f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jvalue*); 322f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jbyte (*CallStaticByteMethod)(JNIEnv*, jclass, jmethodID, ...); 323f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jbyte (*CallStaticByteMethodV)(JNIEnv*, jclass, jmethodID, va_list); 324f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jbyte (*CallStaticByteMethodA)(JNIEnv*, jclass, jmethodID, jvalue*); 325f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jchar (*CallStaticCharMethod)(JNIEnv*, jclass, jmethodID, ...); 326f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jchar (*CallStaticCharMethodV)(JNIEnv*, jclass, jmethodID, va_list); 327f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jchar (*CallStaticCharMethodA)(JNIEnv*, jclass, jmethodID, jvalue*); 328f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jshort (*CallStaticShortMethod)(JNIEnv*, jclass, jmethodID, ...); 329f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jshort (*CallStaticShortMethodV)(JNIEnv*, jclass, jmethodID, va_list); 330f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jshort (*CallStaticShortMethodA)(JNIEnv*, jclass, jmethodID, jvalue*); 331f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint (*CallStaticIntMethod)(JNIEnv*, jclass, jmethodID, ...); 332f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint (*CallStaticIntMethodV)(JNIEnv*, jclass, jmethodID, va_list); 333f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint (*CallStaticIntMethodA)(JNIEnv*, jclass, jmethodID, jvalue*); 334f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jlong (*CallStaticLongMethod)(JNIEnv*, jclass, jmethodID, ...); 335f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jlong (*CallStaticLongMethodV)(JNIEnv*, jclass, jmethodID, va_list); 336f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jlong (*CallStaticLongMethodA)(JNIEnv*, jclass, jmethodID, jvalue*); 337f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jfloat (*CallStaticFloatMethod)(JNIEnv*, jclass, jmethodID, ...); 338f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jfloat (*CallStaticFloatMethodV)(JNIEnv*, jclass, jmethodID, va_list); 339f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jfloat (*CallStaticFloatMethodA)(JNIEnv*, jclass, jmethodID, jvalue*); 340f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jdouble (*CallStaticDoubleMethod)(JNIEnv*, jclass, jmethodID, ...); 341f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jdouble (*CallStaticDoubleMethodV)(JNIEnv*, jclass, jmethodID, va_list); 342f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jdouble (*CallStaticDoubleMethodA)(JNIEnv*, jclass, jmethodID, jvalue*); 343f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*CallStaticVoidMethod)(JNIEnv*, jclass, jmethodID, ...); 344f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*CallStaticVoidMethodV)(JNIEnv*, jclass, jmethodID, va_list); 345f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*CallStaticVoidMethodA)(JNIEnv*, jclass, jmethodID, jvalue*); 346f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 347f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jfieldID (*GetStaticFieldID)(JNIEnv*, jclass, const char*, 348f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner const char*); 349f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 350f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jobject (*GetStaticObjectField)(JNIEnv*, jclass, jfieldID); 351f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jboolean (*GetStaticBooleanField)(JNIEnv*, jclass, jfieldID); 352f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jbyte (*GetStaticByteField)(JNIEnv*, jclass, jfieldID); 353f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jchar (*GetStaticCharField)(JNIEnv*, jclass, jfieldID); 354f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jshort (*GetStaticShortField)(JNIEnv*, jclass, jfieldID); 355f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint (*GetStaticIntField)(JNIEnv*, jclass, jfieldID); 356f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jlong (*GetStaticLongField)(JNIEnv*, jclass, jfieldID); 357f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jfloat (*GetStaticFloatField)(JNIEnv*, jclass, jfieldID); 358f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jdouble (*GetStaticDoubleField)(JNIEnv*, jclass, jfieldID); 359f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 360f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*SetStaticObjectField)(JNIEnv*, jclass, jfieldID, jobject); 361f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*SetStaticBooleanField)(JNIEnv*, jclass, jfieldID, jboolean); 362f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*SetStaticByteField)(JNIEnv*, jclass, jfieldID, jbyte); 363f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*SetStaticCharField)(JNIEnv*, jclass, jfieldID, jchar); 364f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*SetStaticShortField)(JNIEnv*, jclass, jfieldID, jshort); 365f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*SetStaticIntField)(JNIEnv*, jclass, jfieldID, jint); 366f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*SetStaticLongField)(JNIEnv*, jclass, jfieldID, jlong); 367f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*SetStaticFloatField)(JNIEnv*, jclass, jfieldID, jfloat); 368f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*SetStaticDoubleField)(JNIEnv*, jclass, jfieldID, jdouble); 369f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 370f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jstring (*NewString)(JNIEnv*, const jchar*, jsize); 371f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jsize (*GetStringLength)(JNIEnv*, jstring); 372f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner const jchar* (*GetStringChars)(JNIEnv*, jstring, jboolean*); 373f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*ReleaseStringChars)(JNIEnv*, jstring, const jchar*); 374f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jstring (*NewStringUTF)(JNIEnv*, const char*); 375f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jsize (*GetStringUTFLength)(JNIEnv*, jstring); 376f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner /* JNI spec says this returns const jbyte*, but that's inconsistent */ 377f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner const char* (*GetStringUTFChars)(JNIEnv*, jstring, jboolean*); 378f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*ReleaseStringUTFChars)(JNIEnv*, jstring, const char*); 379f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jsize (*GetArrayLength)(JNIEnv*, jarray); 380f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jobjectArray (*NewObjectArray)(JNIEnv*, jsize, jclass, jobject); 381f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jobject (*GetObjectArrayElement)(JNIEnv*, jobjectArray, jsize); 382f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*SetObjectArrayElement)(JNIEnv*, jobjectArray, jsize, jobject); 383f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 384f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jbooleanArray (*NewBooleanArray)(JNIEnv*, jsize); 385f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jbyteArray (*NewByteArray)(JNIEnv*, jsize); 386f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jcharArray (*NewCharArray)(JNIEnv*, jsize); 387f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jshortArray (*NewShortArray)(JNIEnv*, jsize); 388f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jintArray (*NewIntArray)(JNIEnv*, jsize); 389f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jlongArray (*NewLongArray)(JNIEnv*, jsize); 390f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jfloatArray (*NewFloatArray)(JNIEnv*, jsize); 391f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jdoubleArray (*NewDoubleArray)(JNIEnv*, jsize); 392f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 393f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jboolean* (*GetBooleanArrayElements)(JNIEnv*, jbooleanArray, jboolean*); 394f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jbyte* (*GetByteArrayElements)(JNIEnv*, jbyteArray, jboolean*); 395f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jchar* (*GetCharArrayElements)(JNIEnv*, jcharArray, jboolean*); 396f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jshort* (*GetShortArrayElements)(JNIEnv*, jshortArray, jboolean*); 397f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint* (*GetIntArrayElements)(JNIEnv*, jintArray, jboolean*); 398f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jlong* (*GetLongArrayElements)(JNIEnv*, jlongArray, jboolean*); 399f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jfloat* (*GetFloatArrayElements)(JNIEnv*, jfloatArray, jboolean*); 400f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jdouble* (*GetDoubleArrayElements)(JNIEnv*, jdoubleArray, jboolean*); 401f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 402f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*ReleaseBooleanArrayElements)(JNIEnv*, jbooleanArray, 403f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jboolean*, jint); 404f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*ReleaseByteArrayElements)(JNIEnv*, jbyteArray, 405f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jbyte*, jint); 406f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*ReleaseCharArrayElements)(JNIEnv*, jcharArray, 407f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jchar*, jint); 408f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*ReleaseShortArrayElements)(JNIEnv*, jshortArray, 409f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jshort*, jint); 410f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*ReleaseIntArrayElements)(JNIEnv*, jintArray, 411f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint*, jint); 412f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*ReleaseLongArrayElements)(JNIEnv*, jlongArray, 413f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jlong*, jint); 414f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*ReleaseFloatArrayElements)(JNIEnv*, jfloatArray, 415f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jfloat*, jint); 416f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*ReleaseDoubleArrayElements)(JNIEnv*, jdoubleArray, 417f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jdouble*, jint); 418f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 419f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*GetBooleanArrayRegion)(JNIEnv*, jbooleanArray, 420f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jsize, jsize, jboolean*); 421f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*GetByteArrayRegion)(JNIEnv*, jbyteArray, 422f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jsize, jsize, jbyte*); 423f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*GetCharArrayRegion)(JNIEnv*, jcharArray, 424f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jsize, jsize, jchar*); 425f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*GetShortArrayRegion)(JNIEnv*, jshortArray, 426f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jsize, jsize, jshort*); 427f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*GetIntArrayRegion)(JNIEnv*, jintArray, 428f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jsize, jsize, jint*); 429f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*GetLongArrayRegion)(JNIEnv*, jlongArray, 430f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jsize, jsize, jlong*); 431f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*GetFloatArrayRegion)(JNIEnv*, jfloatArray, 432f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jsize, jsize, jfloat*); 433f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*GetDoubleArrayRegion)(JNIEnv*, jdoubleArray, 434f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jsize, jsize, jdouble*); 435f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 436f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner /* spec shows these without const; some jni.h do, some don't */ 437f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*SetBooleanArrayRegion)(JNIEnv*, jbooleanArray, 438f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jsize, jsize, const jboolean*); 439f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*SetByteArrayRegion)(JNIEnv*, jbyteArray, 440f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jsize, jsize, const jbyte*); 441f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*SetCharArrayRegion)(JNIEnv*, jcharArray, 442f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jsize, jsize, const jchar*); 443f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*SetShortArrayRegion)(JNIEnv*, jshortArray, 444f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jsize, jsize, const jshort*); 445f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*SetIntArrayRegion)(JNIEnv*, jintArray, 446f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jsize, jsize, const jint*); 447f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*SetLongArrayRegion)(JNIEnv*, jlongArray, 448f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jsize, jsize, const jlong*); 449f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*SetFloatArrayRegion)(JNIEnv*, jfloatArray, 450f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jsize, jsize, const jfloat*); 451f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*SetDoubleArrayRegion)(JNIEnv*, jdoubleArray, 452f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jsize, jsize, const jdouble*); 453f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 454f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint (*RegisterNatives)(JNIEnv*, jclass, const JNINativeMethod*, 455f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint); 456f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint (*UnregisterNatives)(JNIEnv*, jclass); 457f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint (*MonitorEnter)(JNIEnv*, jobject); 458f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint (*MonitorExit)(JNIEnv*, jobject); 459f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint (*GetJavaVM)(JNIEnv*, JavaVM**); 460f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 461f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*GetStringRegion)(JNIEnv*, jstring, jsize, jsize, jchar*); 462f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*GetStringUTFRegion)(JNIEnv*, jstring, jsize, jsize, char*); 463f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 464f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void* (*GetPrimitiveArrayCritical)(JNIEnv*, jarray, jboolean*); 465f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*ReleasePrimitiveArrayCritical)(JNIEnv*, jarray, void*, jint); 466f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 467f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner const jchar* (*GetStringCritical)(JNIEnv*, jstring, jboolean*); 468f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*ReleaseStringCritical)(JNIEnv*, jstring, const jchar*); 469f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 470f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jweak (*NewWeakGlobalRef)(JNIEnv*, jobject); 471f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void (*DeleteWeakGlobalRef)(JNIEnv*, jweak); 472f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 473f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jboolean (*ExceptionCheck)(JNIEnv*); 474f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 475f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jobject (*NewDirectByteBuffer)(JNIEnv*, void*, jlong); 476f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void* (*GetDirectBufferAddress)(JNIEnv*, jobject); 477f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jlong (*GetDirectBufferCapacity)(JNIEnv*, jobject); 478f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 479f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner /* added in JNI 1.6 */ 480f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jobjectRefType (*GetObjectRefType)(JNIEnv*, jobject); 481f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner}; 482f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 483f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner/* 484f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner * C++ object wrapper. 485f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner * 486f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner * This is usually overlaid on a C struct whose first element is a 487f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner * JNINativeInterface*. We rely somewhat on compiler behavior. 488f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner */ 489f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnerstruct _JNIEnv { 490f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner /* do not rename this; it does not seem to be entirely opaque */ 491f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner const struct JNINativeInterface* functions; 492f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 493f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#if defined(__cplusplus) 494f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 495f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint GetVersion() 496f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetVersion(this); } 497f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 498f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jclass DefineClass(const char *name, jobject loader, const jbyte* buf, 499f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jsize bufLen) 500f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->DefineClass(this, name, loader, buf, bufLen); } 501f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 502f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jclass FindClass(const char* name) 503f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->FindClass(this, name); } 504f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 505f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jmethodID FromReflectedMethod(jobject method) 506f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->FromReflectedMethod(this, method); } 507f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 508f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jfieldID FromReflectedField(jobject field) 509f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->FromReflectedField(this, field); } 510f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 511f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jobject ToReflectedMethod(jclass cls, jmethodID methodID, jboolean isStatic) 512f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->ToReflectedMethod(this, cls, methodID, isStatic); } 513f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 514f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jclass GetSuperclass(jclass clazz) 515f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetSuperclass(this, clazz); } 516f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 517f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jboolean IsAssignableFrom(jclass clazz1, jclass clazz2) 518f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->IsAssignableFrom(this, clazz1, clazz2); } 519f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 520f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jobject ToReflectedField(jclass cls, jfieldID fieldID, jboolean isStatic) 521f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->ToReflectedField(this, cls, fieldID, isStatic); } 522f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 523f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint Throw(jthrowable obj) 524f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->Throw(this, obj); } 525f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 526f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint ThrowNew(jclass clazz, const char* message) 527f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->ThrowNew(this, clazz, message); } 528f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 529f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jthrowable ExceptionOccurred() 530f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->ExceptionOccurred(this); } 531f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 532f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void ExceptionDescribe() 533f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->ExceptionDescribe(this); } 534f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 535f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void ExceptionClear() 536f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->ExceptionClear(this); } 537f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 538f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void FatalError(const char* msg) 539f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->FatalError(this, msg); } 540f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 541f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint PushLocalFrame(jint capacity) 542f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->PushLocalFrame(this, capacity); } 543f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 544f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jobject PopLocalFrame(jobject result) 545f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->PopLocalFrame(this, result); } 546f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 547f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jobject NewGlobalRef(jobject obj) 548f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->NewGlobalRef(this, obj); } 549f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 550f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void DeleteGlobalRef(jobject globalRef) 551f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->DeleteGlobalRef(this, globalRef); } 552f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 553f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void DeleteLocalRef(jobject localRef) 554f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->DeleteLocalRef(this, localRef); } 555f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 556f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jboolean IsSameObject(jobject ref1, jobject ref2) 557f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->IsSameObject(this, ref1, ref2); } 558f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 559f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jobject NewLocalRef(jobject ref) 560f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->NewLocalRef(this, ref); } 561f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 562f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint EnsureLocalCapacity(jint capacity) 563f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->EnsureLocalCapacity(this, capacity); } 564f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 565f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jobject AllocObject(jclass clazz) 566f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->AllocObject(this, clazz); } 567f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 568f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jobject NewObject(jclass clazz, jmethodID methodID, ...) 569f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { 570f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner va_list args; 571f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner va_start(args, methodID); 572f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jobject result = functions->NewObjectV(this, clazz, methodID, args); 573f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner va_end(args); 574f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner return result; 575f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner } 576f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 577f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jobject NewObjectV(jclass clazz, jmethodID methodID, va_list args) 578f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->NewObjectV(this, clazz, methodID, args); } 579f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 580f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jobject NewObjectA(jclass clazz, jmethodID methodID, jvalue* args) 581f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->NewObjectA(this, clazz, methodID, args); } 582f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 583f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jclass GetObjectClass(jobject obj) 584f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetObjectClass(this, obj); } 585f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 586f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jboolean IsInstanceOf(jobject obj, jclass clazz) 587f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->IsInstanceOf(this, obj, clazz); } 588f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 589f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jmethodID GetMethodID(jclass clazz, const char* name, const char* sig) 590f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetMethodID(this, clazz, name, sig); } 591f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 592f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define CALL_TYPE_METHOD(_jtype, _jname) \ 593f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner _jtype Call##_jname##Method(jobject obj, jmethodID methodID, ...) \ 594f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { \ 595f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner _jtype result; \ 596f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner va_list args; \ 597f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner va_start(args, methodID); \ 598f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner result = functions->Call##_jname##MethodV(this, obj, methodID, \ 599f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner args); \ 600f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner va_end(args); \ 601f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner return result; \ 602f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner } 603f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define CALL_TYPE_METHODV(_jtype, _jname) \ 604f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner _jtype Call##_jname##MethodV(jobject obj, jmethodID methodID, \ 605f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner va_list args) \ 606f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->Call##_jname##MethodV(this, obj, methodID, args); } 607f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define CALL_TYPE_METHODA(_jtype, _jname) \ 608f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner _jtype Call##_jname##MethodA(jobject obj, jmethodID methodID, \ 609f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jvalue* args) \ 610f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->Call##_jname##MethodA(this, obj, methodID, args); } 611f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 612f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define CALL_TYPE(_jtype, _jname) \ 613f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner CALL_TYPE_METHOD(_jtype, _jname) \ 614f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner CALL_TYPE_METHODV(_jtype, _jname) \ 615f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner CALL_TYPE_METHODA(_jtype, _jname) 616f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 617f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner CALL_TYPE(jobject, Object) 618f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner CALL_TYPE(jboolean, Boolean) 619f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner CALL_TYPE(jbyte, Byte) 620f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner CALL_TYPE(jchar, Char) 621f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner CALL_TYPE(jshort, Short) 622f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner CALL_TYPE(jint, Int) 623f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner CALL_TYPE(jlong, Long) 624f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner CALL_TYPE(jfloat, Float) 625f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner CALL_TYPE(jdouble, Double) 626f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 627f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void CallVoidMethod(jobject obj, jmethodID methodID, ...) 628f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { 629f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner va_list args; 630f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner va_start(args, methodID); 631f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner functions->CallVoidMethodV(this, obj, methodID, args); 632f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner va_end(args); 633f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner } 634f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void CallVoidMethodV(jobject obj, jmethodID methodID, va_list args) 635f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->CallVoidMethodV(this, obj, methodID, args); } 636f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void CallVoidMethodA(jobject obj, jmethodID methodID, jvalue* args) 637f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->CallVoidMethodA(this, obj, methodID, args); } 638f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 639f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define CALL_NONVIRT_TYPE_METHOD(_jtype, _jname) \ 640f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner _jtype CallNonvirtual##_jname##Method(jobject obj, jclass clazz, \ 641f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jmethodID methodID, ...) \ 642f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { \ 643f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner _jtype result; \ 644f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner va_list args; \ 645f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner va_start(args, methodID); \ 646f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner result = functions->CallNonvirtual##_jname##MethodV(this, obj, \ 647f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner clazz, methodID, args); \ 648f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner va_end(args); \ 649f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner return result; \ 650f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner } 651f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define CALL_NONVIRT_TYPE_METHODV(_jtype, _jname) \ 652f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner _jtype CallNonvirtual##_jname##MethodV(jobject obj, jclass clazz, \ 653f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jmethodID methodID, va_list args) \ 654f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->CallNonvirtual##_jname##MethodV(this, obj, clazz, \ 655f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner methodID, args); } 656f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define CALL_NONVIRT_TYPE_METHODA(_jtype, _jname) \ 657f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner _jtype CallNonvirtual##_jname##MethodA(jobject obj, jclass clazz, \ 658f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jmethodID methodID, jvalue* args) \ 659f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->CallNonvirtual##_jname##MethodA(this, obj, clazz, \ 660f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner methodID, args); } 661f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 662f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define CALL_NONVIRT_TYPE(_jtype, _jname) \ 663f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner CALL_NONVIRT_TYPE_METHOD(_jtype, _jname) \ 664f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner CALL_NONVIRT_TYPE_METHODV(_jtype, _jname) \ 665f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner CALL_NONVIRT_TYPE_METHODA(_jtype, _jname) 666f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 667f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner CALL_NONVIRT_TYPE(jobject, Object) 668f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner CALL_NONVIRT_TYPE(jboolean, Boolean) 669f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner CALL_NONVIRT_TYPE(jbyte, Byte) 670f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner CALL_NONVIRT_TYPE(jchar, Char) 671f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner CALL_NONVIRT_TYPE(jshort, Short) 672f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner CALL_NONVIRT_TYPE(jint, Int) 673f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner CALL_NONVIRT_TYPE(jlong, Long) 674f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner CALL_NONVIRT_TYPE(jfloat, Float) 675f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner CALL_NONVIRT_TYPE(jdouble, Double) 676f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 677f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void CallNonvirtualVoidMethod(jobject obj, jclass clazz, 678f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jmethodID methodID, ...) 679f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { 680f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner va_list args; 681f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner va_start(args, methodID); 682f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner functions->CallNonvirtualVoidMethodV(this, obj, clazz, methodID, args); 683f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner va_end(args); 684f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner } 685f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void CallNonvirtualVoidMethodV(jobject obj, jclass clazz, 686f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jmethodID methodID, va_list args) 687f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->CallNonvirtualVoidMethodV(this, obj, clazz, methodID, args); } 688f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void CallNonvirtualVoidMethodA(jobject obj, jclass clazz, 689f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jmethodID methodID, jvalue* args) 690f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->CallNonvirtualVoidMethodA(this, obj, clazz, methodID, args); } 691f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 692f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jfieldID GetFieldID(jclass clazz, const char* name, const char* sig) 693f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetFieldID(this, clazz, name, sig); } 694f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 695f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jobject GetObjectField(jobject obj, jfieldID fieldID) 696f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetObjectField(this, obj, fieldID); } 697f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jboolean GetBooleanField(jobject obj, jfieldID fieldID) 698f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetBooleanField(this, obj, fieldID); } 699f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jbyte GetByteField(jobject obj, jfieldID fieldID) 700f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetByteField(this, obj, fieldID); } 701f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jchar GetCharField(jobject obj, jfieldID fieldID) 702f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetCharField(this, obj, fieldID); } 703f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jshort GetShortField(jobject obj, jfieldID fieldID) 704f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetShortField(this, obj, fieldID); } 705f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint GetIntField(jobject obj, jfieldID fieldID) 706f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetIntField(this, obj, fieldID); } 707f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jlong GetLongField(jobject obj, jfieldID fieldID) 708f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetLongField(this, obj, fieldID); } 709f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jfloat GetFloatField(jobject obj, jfieldID fieldID) 710f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetFloatField(this, obj, fieldID); } 711f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jdouble GetDoubleField(jobject obj, jfieldID fieldID) 712f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetDoubleField(this, obj, fieldID); } 713f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 714f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void SetObjectField(jobject obj, jfieldID fieldID, jobject value) 715f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->SetObjectField(this, obj, fieldID, value); } 716f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void SetBooleanField(jobject obj, jfieldID fieldID, jboolean value) 717f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->SetBooleanField(this, obj, fieldID, value); } 718f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void SetByteField(jobject obj, jfieldID fieldID, jbyte value) 719f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->SetByteField(this, obj, fieldID, value); } 720f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void SetCharField(jobject obj, jfieldID fieldID, jchar value) 721f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->SetCharField(this, obj, fieldID, value); } 722f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void SetShortField(jobject obj, jfieldID fieldID, jshort value) 723f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->SetShortField(this, obj, fieldID, value); } 724f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void SetIntField(jobject obj, jfieldID fieldID, jint value) 725f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->SetIntField(this, obj, fieldID, value); } 726f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void SetLongField(jobject obj, jfieldID fieldID, jlong value) 727f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->SetLongField(this, obj, fieldID, value); } 728f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void SetFloatField(jobject obj, jfieldID fieldID, jfloat value) 729f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->SetFloatField(this, obj, fieldID, value); } 730f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void SetDoubleField(jobject obj, jfieldID fieldID, jdouble value) 731f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->SetDoubleField(this, obj, fieldID, value); } 732f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 733f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jmethodID GetStaticMethodID(jclass clazz, const char* name, const char* sig) 734f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetStaticMethodID(this, clazz, name, sig); } 735f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 736f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define CALL_STATIC_TYPE_METHOD(_jtype, _jname) \ 737f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner _jtype CallStatic##_jname##Method(jclass clazz, jmethodID methodID, \ 738f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner ...) \ 739f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { \ 740f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner _jtype result; \ 741f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner va_list args; \ 742f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner va_start(args, methodID); \ 743f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner result = functions->CallStatic##_jname##MethodV(this, clazz, \ 744f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner methodID, args); \ 745f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner va_end(args); \ 746f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner return result; \ 747f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner } 748f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define CALL_STATIC_TYPE_METHODV(_jtype, _jname) \ 749f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner _jtype CallStatic##_jname##MethodV(jclass clazz, jmethodID methodID, \ 750f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner va_list args) \ 751f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->CallStatic##_jname##MethodV(this, clazz, methodID, \ 752f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner args); } 753f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define CALL_STATIC_TYPE_METHODA(_jtype, _jname) \ 754f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner _jtype CallStatic##_jname##MethodA(jclass clazz, jmethodID methodID, \ 755f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jvalue* args) \ 756f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->CallStatic##_jname##MethodA(this, clazz, methodID, \ 757f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner args); } 758f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 759f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define CALL_STATIC_TYPE(_jtype, _jname) \ 760f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner CALL_STATIC_TYPE_METHOD(_jtype, _jname) \ 761f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner CALL_STATIC_TYPE_METHODV(_jtype, _jname) \ 762f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner CALL_STATIC_TYPE_METHODA(_jtype, _jname) 763f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 764f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner CALL_STATIC_TYPE(jobject, Object) 765f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner CALL_STATIC_TYPE(jboolean, Boolean) 766f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner CALL_STATIC_TYPE(jbyte, Byte) 767f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner CALL_STATIC_TYPE(jchar, Char) 768f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner CALL_STATIC_TYPE(jshort, Short) 769f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner CALL_STATIC_TYPE(jint, Int) 770f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner CALL_STATIC_TYPE(jlong, Long) 771f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner CALL_STATIC_TYPE(jfloat, Float) 772f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner CALL_STATIC_TYPE(jdouble, Double) 773f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 774f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void CallStaticVoidMethod(jclass clazz, jmethodID methodID, ...) 775f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { 776f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner va_list args; 777f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner va_start(args, methodID); 778f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner functions->CallStaticVoidMethodV(this, clazz, methodID, args); 779f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner va_end(args); 780f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner } 781f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void CallStaticVoidMethodV(jclass clazz, jmethodID methodID, va_list args) 782f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->CallStaticVoidMethodV(this, clazz, methodID, args); } 783f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void CallStaticVoidMethodA(jclass clazz, jmethodID methodID, jvalue* args) 784f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->CallStaticVoidMethodA(this, clazz, methodID, args); } 785f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 786f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jfieldID GetStaticFieldID(jclass clazz, const char* name, const char* sig) 787f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetStaticFieldID(this, clazz, name, sig); } 788f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 789f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jobject GetStaticObjectField(jclass clazz, jfieldID fieldID) 790f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetStaticObjectField(this, clazz, fieldID); } 791f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jboolean GetStaticBooleanField(jclass clazz, jfieldID fieldID) 792f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetStaticBooleanField(this, clazz, fieldID); } 793f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jbyte GetStaticByteField(jclass clazz, jfieldID fieldID) 794f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetStaticByteField(this, clazz, fieldID); } 795f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jchar GetStaticCharField(jclass clazz, jfieldID fieldID) 796f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetStaticCharField(this, clazz, fieldID); } 797f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jshort GetStaticShortField(jclass clazz, jfieldID fieldID) 798f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetStaticShortField(this, clazz, fieldID); } 799f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint GetStaticIntField(jclass clazz, jfieldID fieldID) 800f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetStaticIntField(this, clazz, fieldID); } 801f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jlong GetStaticLongField(jclass clazz, jfieldID fieldID) 802f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetStaticLongField(this, clazz, fieldID); } 803f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jfloat GetStaticFloatField(jclass clazz, jfieldID fieldID) 804f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetStaticFloatField(this, clazz, fieldID); } 805f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jdouble GetStaticDoubleField(jclass clazz, jfieldID fieldID) 806f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetStaticDoubleField(this, clazz, fieldID); } 807f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 808f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void SetStaticObjectField(jclass clazz, jfieldID fieldID, jobject value) 809f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->SetStaticObjectField(this, clazz, fieldID, value); } 810f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void SetStaticBooleanField(jclass clazz, jfieldID fieldID, jboolean value) 811f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->SetStaticBooleanField(this, clazz, fieldID, value); } 812f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void SetStaticByteField(jclass clazz, jfieldID fieldID, jbyte value) 813f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->SetStaticByteField(this, clazz, fieldID, value); } 814f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void SetStaticCharField(jclass clazz, jfieldID fieldID, jchar value) 815f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->SetStaticCharField(this, clazz, fieldID, value); } 816f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void SetStaticShortField(jclass clazz, jfieldID fieldID, jshort value) 817f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->SetStaticShortField(this, clazz, fieldID, value); } 818f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void SetStaticIntField(jclass clazz, jfieldID fieldID, jint value) 819f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->SetStaticIntField(this, clazz, fieldID, value); } 820f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void SetStaticLongField(jclass clazz, jfieldID fieldID, jlong value) 821f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->SetStaticLongField(this, clazz, fieldID, value); } 822f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void SetStaticFloatField(jclass clazz, jfieldID fieldID, jfloat value) 823f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->SetStaticFloatField(this, clazz, fieldID, value); } 824f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void SetStaticDoubleField(jclass clazz, jfieldID fieldID, jdouble value) 825f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->SetStaticDoubleField(this, clazz, fieldID, value); } 826f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 827f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jstring NewString(const jchar* unicodeChars, jsize len) 828f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->NewString(this, unicodeChars, len); } 829f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 830f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jsize GetStringLength(jstring string) 831f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetStringLength(this, string); } 832f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 833f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner const jchar* GetStringChars(jstring string, jboolean* isCopy) 834f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetStringChars(this, string, isCopy); } 835f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 836f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void ReleaseStringChars(jstring string, const jchar* chars) 837f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->ReleaseStringChars(this, string, chars); } 838f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 839f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jstring NewStringUTF(const char* bytes) 840f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->NewStringUTF(this, bytes); } 841f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 842f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jsize GetStringUTFLength(jstring string) 843f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetStringUTFLength(this, string); } 844f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 845f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner const char* GetStringUTFChars(jstring string, jboolean* isCopy) 846f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetStringUTFChars(this, string, isCopy); } 847f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 848f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void ReleaseStringUTFChars(jstring string, const char* utf) 849f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->ReleaseStringUTFChars(this, string, utf); } 850f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 851f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jsize GetArrayLength(jarray array) 852f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetArrayLength(this, array); } 853f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 854f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jobjectArray NewObjectArray(jsize length, jclass elementClass, 855f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jobject initialElement) 856f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->NewObjectArray(this, length, elementClass, 857f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner initialElement); } 858f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 859f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jobject GetObjectArrayElement(jobjectArray array, jsize index) 860f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetObjectArrayElement(this, array, index); } 861f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 862f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void SetObjectArrayElement(jobjectArray array, jsize index, jobject value) 863f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->SetObjectArrayElement(this, array, index, value); } 864f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 865f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jbooleanArray NewBooleanArray(jsize length) 866f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->NewBooleanArray(this, length); } 867f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jbyteArray NewByteArray(jsize length) 868f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->NewByteArray(this, length); } 869f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jcharArray NewCharArray(jsize length) 870f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->NewCharArray(this, length); } 871f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jshortArray NewShortArray(jsize length) 872f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->NewShortArray(this, length); } 873f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jintArray NewIntArray(jsize length) 874f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->NewIntArray(this, length); } 875f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jlongArray NewLongArray(jsize length) 876f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->NewLongArray(this, length); } 877f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jfloatArray NewFloatArray(jsize length) 878f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->NewFloatArray(this, length); } 879f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jdoubleArray NewDoubleArray(jsize length) 880f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->NewDoubleArray(this, length); } 881f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 882f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jboolean* GetBooleanArrayElements(jbooleanArray array, jboolean* isCopy) 883f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetBooleanArrayElements(this, array, isCopy); } 884f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jbyte* GetByteArrayElements(jbyteArray array, jboolean* isCopy) 885f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetByteArrayElements(this, array, isCopy); } 886f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jchar* GetCharArrayElements(jcharArray array, jboolean* isCopy) 887f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetCharArrayElements(this, array, isCopy); } 888f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jshort* GetShortArrayElements(jshortArray array, jboolean* isCopy) 889f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetShortArrayElements(this, array, isCopy); } 890f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint* GetIntArrayElements(jintArray array, jboolean* isCopy) 891f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetIntArrayElements(this, array, isCopy); } 892f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jlong* GetLongArrayElements(jlongArray array, jboolean* isCopy) 893f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetLongArrayElements(this, array, isCopy); } 894f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jfloat* GetFloatArrayElements(jfloatArray array, jboolean* isCopy) 895f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetFloatArrayElements(this, array, isCopy); } 896f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jdouble* GetDoubleArrayElements(jdoubleArray array, jboolean* isCopy) 897f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetDoubleArrayElements(this, array, isCopy); } 898f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 899f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void ReleaseBooleanArrayElements(jbooleanArray array, jboolean* elems, 900f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint mode) 901f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->ReleaseBooleanArrayElements(this, array, elems, mode); } 902f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void ReleaseByteArrayElements(jbyteArray array, jbyte* elems, 903f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint mode) 904f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->ReleaseByteArrayElements(this, array, elems, mode); } 905f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void ReleaseCharArrayElements(jcharArray array, jchar* elems, 906f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint mode) 907f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->ReleaseCharArrayElements(this, array, elems, mode); } 908f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void ReleaseShortArrayElements(jshortArray array, jshort* elems, 909f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint mode) 910f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->ReleaseShortArrayElements(this, array, elems, mode); } 911f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void ReleaseIntArrayElements(jintArray array, jint* elems, 912f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint mode) 913f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->ReleaseIntArrayElements(this, array, elems, mode); } 914f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void ReleaseLongArrayElements(jlongArray array, jlong* elems, 915f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint mode) 916f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->ReleaseLongArrayElements(this, array, elems, mode); } 917f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void ReleaseFloatArrayElements(jfloatArray array, jfloat* elems, 918f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint mode) 919f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->ReleaseFloatArrayElements(this, array, elems, mode); } 920f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void ReleaseDoubleArrayElements(jdoubleArray array, jdouble* elems, 921f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint mode) 922f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->ReleaseDoubleArrayElements(this, array, elems, mode); } 923f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 924f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void GetBooleanArrayRegion(jbooleanArray array, jsize start, jsize len, 925f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jboolean* buf) 926f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->GetBooleanArrayRegion(this, array, start, len, buf); } 927f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void GetByteArrayRegion(jbyteArray array, jsize start, jsize len, 928f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jbyte* buf) 929f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->GetByteArrayRegion(this, array, start, len, buf); } 930f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void GetCharArrayRegion(jcharArray array, jsize start, jsize len, 931f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jchar* buf) 932f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->GetCharArrayRegion(this, array, start, len, buf); } 933f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void GetShortArrayRegion(jshortArray array, jsize start, jsize len, 934f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jshort* buf) 935f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->GetShortArrayRegion(this, array, start, len, buf); } 936f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void GetIntArrayRegion(jintArray array, jsize start, jsize len, 937f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint* buf) 938f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->GetIntArrayRegion(this, array, start, len, buf); } 939f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void GetLongArrayRegion(jlongArray array, jsize start, jsize len, 940f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jlong* buf) 941f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->GetLongArrayRegion(this, array, start, len, buf); } 942f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void GetFloatArrayRegion(jfloatArray array, jsize start, jsize len, 943f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jfloat* buf) 944f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->GetFloatArrayRegion(this, array, start, len, buf); } 945f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void GetDoubleArrayRegion(jdoubleArray array, jsize start, jsize len, 946f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jdouble* buf) 947f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->GetDoubleArrayRegion(this, array, start, len, buf); } 948f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 949f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void SetBooleanArrayRegion(jbooleanArray array, jsize start, jsize len, 950f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner const jboolean* buf) 951f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->SetBooleanArrayRegion(this, array, start, len, buf); } 952f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void SetByteArrayRegion(jbyteArray array, jsize start, jsize len, 953f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner const jbyte* buf) 954f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->SetByteArrayRegion(this, array, start, len, buf); } 955f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void SetCharArrayRegion(jcharArray array, jsize start, jsize len, 956f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner const jchar* buf) 957f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->SetCharArrayRegion(this, array, start, len, buf); } 958f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void SetShortArrayRegion(jshortArray array, jsize start, jsize len, 959f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner const jshort* buf) 960f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->SetShortArrayRegion(this, array, start, len, buf); } 961f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void SetIntArrayRegion(jintArray array, jsize start, jsize len, 962f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner const jint* buf) 963f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->SetIntArrayRegion(this, array, start, len, buf); } 964f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void SetLongArrayRegion(jlongArray array, jsize start, jsize len, 965f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner const jlong* buf) 966f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->SetLongArrayRegion(this, array, start, len, buf); } 967f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void SetFloatArrayRegion(jfloatArray array, jsize start, jsize len, 968f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner const jfloat* buf) 969f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->SetFloatArrayRegion(this, array, start, len, buf); } 970f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void SetDoubleArrayRegion(jdoubleArray array, jsize start, jsize len, 971f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner const jdouble* buf) 972f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->SetDoubleArrayRegion(this, array, start, len, buf); } 973f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 974f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint RegisterNatives(jclass clazz, const JNINativeMethod* methods, 975f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint nMethods) 976f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->RegisterNatives(this, clazz, methods, nMethods); } 977f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 978f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint UnregisterNatives(jclass clazz) 979f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->UnregisterNatives(this, clazz); } 980f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 981f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint MonitorEnter(jobject obj) 982f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->MonitorEnter(this, obj); } 983f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 984f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint MonitorExit(jobject obj) 985f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->MonitorExit(this, obj); } 986f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 987f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint GetJavaVM(JavaVM** vm) 988f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetJavaVM(this, vm); } 989f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 990f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void GetStringRegion(jstring str, jsize start, jsize len, jchar* buf) 991f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->GetStringRegion(this, str, start, len, buf); } 992f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 993f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void GetStringUTFRegion(jstring str, jsize start, jsize len, char* buf) 994f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetStringUTFRegion(this, str, start, len, buf); } 995f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 996f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void* GetPrimitiveArrayCritical(jarray array, jboolean* isCopy) 997f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetPrimitiveArrayCritical(this, array, isCopy); } 998f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 999f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void ReleasePrimitiveArrayCritical(jarray array, void* carray, jint mode) 1000f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->ReleasePrimitiveArrayCritical(this, array, carray, mode); } 1001f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 1002f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner const jchar* GetStringCritical(jstring string, jboolean* isCopy) 1003f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetStringCritical(this, string, isCopy); } 1004f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 1005f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void ReleaseStringCritical(jstring string, const jchar* carray) 1006f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->ReleaseStringCritical(this, string, carray); } 1007f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 1008f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jweak NewWeakGlobalRef(jobject obj) 1009f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->NewWeakGlobalRef(this, obj); } 1010f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 1011f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void DeleteWeakGlobalRef(jweak obj) 1012f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { functions->DeleteWeakGlobalRef(this, obj); } 1013f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 1014f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jboolean ExceptionCheck() 1015f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->ExceptionCheck(this); } 1016f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 1017f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jobject NewDirectByteBuffer(void* address, jlong capacity) 1018f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->NewDirectByteBuffer(this, address, capacity); } 1019f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 1020f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void* GetDirectBufferAddress(jobject buf) 1021f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetDirectBufferAddress(this, buf); } 1022f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 1023f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jlong GetDirectBufferCapacity(jobject buf) 1024f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetDirectBufferCapacity(this, buf); } 1025f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 1026f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner /* added in JNI 1.6 */ 1027f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jobjectRefType GetObjectRefType(jobject obj) 1028f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetObjectRefType(this, obj); } 1029f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#endif /*__cplusplus*/ 1030f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner}; 1031f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 1032f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 1033f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner/* 1034f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner * JNI invocation interface. 1035f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner */ 1036f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnerstruct JNIInvokeInterface { 1037f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void* reserved0; 1038f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void* reserved1; 1039f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void* reserved2; 1040f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 1041f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint (*DestroyJavaVM)(JavaVM*); 1042f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint (*AttachCurrentThread)(JavaVM*, JNIEnv**, void*); 1043f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint (*DetachCurrentThread)(JavaVM*); 1044f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint (*GetEnv)(JavaVM*, void**, jint); 1045f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint (*AttachCurrentThreadAsDaemon)(JavaVM*, JNIEnv**, void*); 1046f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner}; 1047f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 1048f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner/* 1049f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner * C++ version. 1050f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner */ 1051f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnerstruct _JavaVM { 1052f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner const struct JNIInvokeInterface* functions; 1053f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 1054f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#if defined(__cplusplus) 1055f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint DestroyJavaVM() 1056f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->DestroyJavaVM(this); } 1057f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint AttachCurrentThread(JNIEnv** p_env, void* thr_args) 1058f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->AttachCurrentThread(this, p_env, thr_args); } 1059f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint DetachCurrentThread() 1060f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->DetachCurrentThread(this); } 1061f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint GetEnv(void** env, jint version) 1062f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->GetEnv(this, env, version); } 1063f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint AttachCurrentThreadAsDaemon(JNIEnv** p_env, void* thr_args) 1064f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner { return functions->AttachCurrentThreadAsDaemon(this, p_env, thr_args); } 1065f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#endif /*__cplusplus*/ 1066f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner}; 1067f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 1068f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnerstruct JavaVMAttachArgs { 1069f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint version; /* must be >= JNI_VERSION_1_2 */ 1070f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner const char* name; /* NULL or name of thread as modified UTF-8 str */ 1071f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jobject group; /* global ref of a ThreadGroup object, or NULL */ 1072f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner}; 1073f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef struct JavaVMAttachArgs JavaVMAttachArgs; 1074f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 1075f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner/* 1076f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner * JNI 1.2+ initialization. (As of 1.6, the pre-1.2 structures are no 1077f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner * longer supported.) 1078f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner */ 1079f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef struct JavaVMOption { 1080f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner const char* optionString; 1081f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner void* extraInfo; 1082f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner} JavaVMOption; 1083f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 1084f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnertypedef struct JavaVMInitArgs { 1085f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint version; /* use JNI_VERSION_1_2 or later */ 1086f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 1087f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jint nOptions; 1088f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner JavaVMOption* options; 1089f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner jboolean ignoreUnrecognized; 1090f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner} JavaVMInitArgs; 1091f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 1092f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#ifdef __cplusplus 1093f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnerextern "C" { 1094f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#endif 1095f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner/* 1096f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner * VM initialization functions. 1097f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner * 1098f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner * Note these are the only symbols exported for JNI by the VM. 1099f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner */ 1100f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnerjint JNI_GetDefaultJavaVMInitArgs(void*); 1101f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnerjint JNI_CreateJavaVM(JavaVM**, JNIEnv**, void*); 1102f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnerjint JNI_GetCreatedJavaVMs(JavaVM**, jsize, jsize*); 1103f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 1104f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner/* 1105f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner * Prototypes for functions exported by loadable shared libs. These are 1106f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner * called by JNI, not provided by JNI. 1107f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner */ 1108f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnerjint JNI_OnLoad(JavaVM* vm, void* reserved); 1109f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turnervoid JNI_OnUnload(JavaVM* vm, void* reserved); 1110f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 1111f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#ifdef __cplusplus 1112f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner} 1113f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#endif 1114f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 1115f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 1116f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner/* 1117f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner * Manifest constants. 1118f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner */ 1119f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define JNI_FALSE 0 1120f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define JNI_TRUE 1 1121f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 1122f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define JNI_VERSION_1_1 0x00010001 1123f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define JNI_VERSION_1_2 0x00010002 1124f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define JNI_VERSION_1_4 0x00010004 1125f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define JNI_VERSION_1_6 0x00010006 1126f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 1127f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define JNI_OK (0) /* no error */ 1128f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define JNI_ERR (-1) /* generic error */ 1129f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define JNI_EDETACHED (-2) /* thread detached from the VM */ 1130f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define JNI_EVERSION (-3) /* JNI version error */ 1131f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 1132f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define JNI_COMMIT 1 /* copy content, do not free buffer */ 1133f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define JNI_ABORT 2 /* free buffer w/o copying back */ 1134f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 1135f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner/* need these for Windows-aware headers */ 1136f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define JNIIMPORT 1137f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define JNIEXPORT 1138f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#define JNICALL 1139f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner 1140f13db29e2847a3760e403332ea3243915e0f4bf3David 'Digit' Turner#endif /*_JNI_H*/ 1141