jni_internal.h revision ea4dca856f8c19299a1858d2cc1f35b03ca0f694
1df20fe0c097073f75f22d16e72fd3636a31d3ca1Ian Rogers// Copyright 2011 Google Inc. All Rights Reserved. 2df20fe0c097073f75f22d16e72fd3636a31d3ca1Ian Rogers 3df20fe0c097073f75f22d16e72fd3636a31d3ca1Ian Rogers#ifndef ART_SRC_JNI_INTERNAL_H_ 4df20fe0c097073f75f22d16e72fd3636a31d3ca1Ian Rogers#define ART_SRC_JNI_INTERNAL_H_ 5df20fe0c097073f75f22d16e72fd3636a31d3ca1Ian Rogers 6df20fe0c097073f75f22d16e72fd3636a31d3ca1Ian Rogers#include "jni.h" 7578bbdc684db8ed68e9fedbc678669d27fa68b6eBrian Carlstrom 8578bbdc684db8ed68e9fedbc678669d27fa68b6eBrian Carlstrom#include "assembler.h" 9578bbdc684db8ed68e9fedbc678669d27fa68b6eBrian Carlstrom#include "macros.h" 10df20fe0c097073f75f22d16e72fd3636a31d3ca1Ian Rogers 11df20fe0c097073f75f22d16e72fd3636a31d3ca1Ian Rogersnamespace art { 12df20fe0c097073f75f22d16e72fd3636a31d3ca1Ian Rogers 13df20fe0c097073f75f22d16e72fd3636a31d3ca1Ian Rogers// TODO: This is a place holder for a true JNIEnv used to provide limited 14df20fe0c097073f75f22d16e72fd3636a31d3ca1Ian Rogers// functionality for the JNI compiler 15df20fe0c097073f75f22d16e72fd3636a31d3ca1Ian Rogersclass JniEnvironment { 16df20fe0c097073f75f22d16e72fd3636a31d3ca1Ian Rogers public: 17df20fe0c097073f75f22d16e72fd3636a31d3ca1Ian Rogers explicit JniEnvironment(); 18df20fe0c097073f75f22d16e72fd3636a31d3ca1Ian Rogers 19df20fe0c097073f75f22d16e72fd3636a31d3ca1Ian Rogers static Offset MonitorEnterOffset() { 20df20fe0c097073f75f22d16e72fd3636a31d3ca1Ian Rogers return Offset(OFFSETOF_MEMBER(JniEnvironment, monitor_enter_)); 21df20fe0c097073f75f22d16e72fd3636a31d3ca1Ian Rogers } 22df20fe0c097073f75f22d16e72fd3636a31d3ca1Ian Rogers 23df20fe0c097073f75f22d16e72fd3636a31d3ca1Ian Rogers static Offset MonitorExitOffset() { 24df20fe0c097073f75f22d16e72fd3636a31d3ca1Ian Rogers return Offset(OFFSETOF_MEMBER(JniEnvironment, monitor_exit_)); 25df20fe0c097073f75f22d16e72fd3636a31d3ca1Ian Rogers } 26df20fe0c097073f75f22d16e72fd3636a31d3ca1Ian Rogers 27df20fe0c097073f75f22d16e72fd3636a31d3ca1Ian Rogers private: 28ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro struct JNINativeInterface_* functions_; 29ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 30df20fe0c097073f75f22d16e72fd3636a31d3ca1Ian Rogers void (*monitor_enter_)(JniEnvironment*, jobject); 31df20fe0c097073f75f22d16e72fd3636a31d3ca1Ian Rogers void (*monitor_exit_)(JniEnvironment*, jobject); 322ed144c2b49ae1da6c464d7a1be0062870530802Carl Shapiro 332ed144c2b49ae1da6c464d7a1be0062870530802Carl Shapiro DISALLOW_COPY_AND_ASSIGN(JniEnvironment); 342ed144c2b49ae1da6c464d7a1be0062870530802Carl Shapiro}; 352ed144c2b49ae1da6c464d7a1be0062870530802Carl Shapiro 36ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiroclass JniNativeInterface { 372ed144c2b49ae1da6c464d7a1be0062870530802Carl Shapiro public: 38ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static struct JNINativeInterface* GetInterface() { 39ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro return &native_interface_; 40ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro } 41ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro private: 42ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jint GetVersion(JNIEnv* env); 43ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 44ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jclass DefineClass(JNIEnv* env, 45ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro const char* name, 46ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject loader, 47ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro const jbyte* buf, 48ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jsize len); 49ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jclass FindClass(JNIEnv* env, const char* name); 50ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 51ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jmethodID FromReflectedMethod(JNIEnv* env, jobject method); 52ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jfieldID FromReflectedField(JNIEnv* env, jobject field); 53ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jobject ToReflectedMethod(JNIEnv* env, 54ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass cls, 55ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 56ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jboolean isStatic); 57ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 58ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jclass GetSuperclass(JNIEnv* env, jclass sub); 59ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jboolean IsAssignableFrom(JNIEnv* env, jclass sub, jclass sup); 60ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jobject ToReflectedField(JNIEnv* env, 61ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass cls, 62ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jfieldID fieldID, 63ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jboolean isStatic); 64ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 65ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jint Throw(JNIEnv* env, jthrowable obj); 66ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jint ThrowNew(JNIEnv* env, jclass clazz, const char* msg); 67ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jthrowable ExceptionOccurred(JNIEnv* env); 68ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void ExceptionDescribe(JNIEnv* env); 69ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void ExceptionClear(JNIEnv* env); 70ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void FatalError(JNIEnv* env, const char* msg); 71ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 72ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jint PushLocalFrame(JNIEnv* env, jint cap); 73ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jobject PopLocalFrame(JNIEnv* env, jobject res); 74ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 75ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jobject NewGlobalRef(JNIEnv* env, jobject lobj); 76ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void DeleteGlobalRef(JNIEnv* env, jobject gref); 77ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void DeleteLocalRef(JNIEnv* env, jobject obj); 78ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jboolean IsSameObject(JNIEnv* env, jobject obj1, jobject obj2); 79ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 80ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jobject NewLocalRef(JNIEnv* env, jobject ref); 81ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jint EnsureLocalCapacity(JNIEnv* env, jint); 82ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 83ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jobject AllocObject(JNIEnv* env, jclass clazz); 84ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jobject NewObject(JNIEnv* env, jclass clazz, jmethodID methodID, ...); 85ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jobject NewObjectV(JNIEnv* env, 86ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 87ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 88ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro va_list args); 89ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jobject NewObjectA(JNIEnv* env, 90ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 91ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 92ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jvalue* args); 93ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 94ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jclass GetObjectClass(JNIEnv* env, jobject obj); 95ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jboolean IsInstanceOf(JNIEnv* env, jobject obj, jclass clazz); 96ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 97ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jmethodID GetMethodID(JNIEnv* env, 98ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 99ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro const char* name, 100ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro const char* sig); 101ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 102ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jobject CallObjectMethod(JNIEnv* env, 103ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 104ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 105ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro ...); 106ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jobject CallObjectMethodV(JNIEnv* env, 107ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 108ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 109ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro va_list args); 110ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jobject CallObjectMethodA(JNIEnv* env, 111ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 112ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 113ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jvalue* args); 114ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 115ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jboolean CallBooleanMethod(JNIEnv* env, 116ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 117ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 118ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro ...); 119ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jboolean CallBooleanMethodV(JNIEnv* env, 120ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 121ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 122ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro va_list args); 123ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jboolean CallBooleanMethodA(JNIEnv* env, 124ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 125ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 126ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jvalue* args); 127ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 128ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jbyte CallByteMethod(JNIEnv* env, 129ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 130ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 131ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro ...); 132ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jbyte CallByteMethodV(JNIEnv* env, 133ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 134ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 135ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro va_list args); 136ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jbyte CallByteMethodA(JNIEnv* env, 137ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 138ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 139ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jvalue* args); 140ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 141ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jchar CallCharMethod(JNIEnv* env, 142ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 143ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 144ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro ...); 145ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jchar CallCharMethodV(JNIEnv* env, 146ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 147ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 148ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro va_list args); 149ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jchar CallCharMethodA(JNIEnv* env, 150ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 151ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 152ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jvalue* args); 153ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 154ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jshort CallShortMethod(JNIEnv* env, 155ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 156ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 157ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro ...); 158ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jshort CallShortMethodV(JNIEnv* env, 159ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 160ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 161ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro va_list args); 162ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jshort CallShortMethodA(JNIEnv* env, 163ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 164ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 165ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jvalue* args); 166ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 167ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jint CallIntMethod(JNIEnv* env, 168ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 169ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 170ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro ...); 171ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jint CallIntMethodV(JNIEnv* env, 172ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 173ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 174ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro va_list args); 175ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jint CallIntMethodA(JNIEnv* env, 176ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 177ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 178ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jvalue* args); 179ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 180ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jlong CallLongMethod(JNIEnv* env, 181ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 182ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 183ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro ...); 184ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jlong CallLongMethodV(JNIEnv* env, 185ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 186ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 187ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro va_list args); 188ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jlong CallLongMethodA(JNIEnv* env, 189ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 190ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 191ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jvalue* args); 192ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 193ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jfloat CallFloatMethod(JNIEnv* env, 194ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 195ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 196ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro ...); 197ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jfloat CallFloatMethodV(JNIEnv* env, 198ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 199ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 200ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro va_list args); 201ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jfloat CallFloatMethodA(JNIEnv* env, 202ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 203ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 204ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jvalue* args); 205ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 206ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jdouble CallDoubleMethod(JNIEnv* env, 207ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 208ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 209ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro ...); 210ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jdouble CallDoubleMethodV(JNIEnv* env, 211ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 212ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 213ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro va_list args); 214ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jdouble CallDoubleMethodA(JNIEnv* env, 215ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 216ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 217ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jvalue* args); 218ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 219ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void CallVoidMethod(JNIEnv* env, 220ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 221ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 222ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro ...); 223ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void CallVoidMethodV(JNIEnv* env, 224ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 225ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 226ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro va_list args); 227ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void CallVoidMethodA(JNIEnv* env, 228ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 229ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 230ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jvalue* args); 231ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 232ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jobject CallNonvirtualObjectMethod(JNIEnv* env, 233ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 234ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 235ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 236ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro ...); 237ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jobject CallNonvirtualObjectMethodV(JNIEnv* env, 238ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 239ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 240ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 241ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro va_list args); 242ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jobject CallNonvirtualObjectMethodA(JNIEnv* env, 243ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 244ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 245ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 246ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jvalue* args); 247ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 248ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jboolean CallNonvirtualBooleanMethod(JNIEnv* env, 249ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 250ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 251ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 252ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro ...); 253ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jboolean CallNonvirtualBooleanMethodV(JNIEnv* env, 254ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 255ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 256ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 257ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro va_list args); 258ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jboolean CallNonvirtualBooleanMethodA(JNIEnv* env, 259ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 260ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 261ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 262ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jvalue* args); 263ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 264ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jbyte CallNonvirtualByteMethod(JNIEnv* env, 265ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 266ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 267ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 268ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro ...); 269ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jbyte CallNonvirtualByteMethodV(JNIEnv* env, 270ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 271ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 272ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 273ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro va_list args); 274ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jbyte CallNonvirtualByteMethodA(JNIEnv* env, 275ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 276ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 277ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 278ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jvalue* args); 279ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 280ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jchar CallNonvirtualCharMethod(JNIEnv* env, 281ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 282ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 283ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 284ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro ...); 285ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jchar CallNonvirtualCharMethodV(JNIEnv* env, 286ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 287ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 288ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 289ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro va_list args); 290ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jchar CallNonvirtualCharMethodA(JNIEnv* env, 291ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 292ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 293ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 294ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jvalue* args); 295ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 296ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jshort CallNonvirtualShortMethod(JNIEnv* env, 297ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 298ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 299ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 300ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro ...); 301ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jshort CallNonvirtualShortMethodV(JNIEnv* env, 302ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 303ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 304ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 305ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro va_list args); 306ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jshort CallNonvirtualShortMethodA(JNIEnv* env, 307ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 308ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 309ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 310ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jvalue* args); 311ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 312ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jint CallNonvirtualIntMethod(JNIEnv* env, 313ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 314ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 315ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 316ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro ...); 317ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jint CallNonvirtualIntMethodV(JNIEnv* env, 318ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 319ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 320ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 321ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro va_list args); 322ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jint CallNonvirtualIntMethodA(JNIEnv* env, 323ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 324ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 325ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 326ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jvalue* args); 327ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 328ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jlong CallNonvirtualLongMethod(JNIEnv* env, 329ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 330ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 331ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 332ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro ...); 333ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jlong CallNonvirtualLongMethodV(JNIEnv* env, 334ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 335ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 336ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 337ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro va_list args); 338ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jlong CallNonvirtualLongMethodA(JNIEnv* env, 339ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 340ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 341ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 342ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jvalue* args); 343ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 344ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jfloat CallNonvirtualFloatMethod(JNIEnv* env, 345ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 346ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 347ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 348ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro ...); 349ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jfloat CallNonvirtualFloatMethodV(JNIEnv* env, 350ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 351ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 352ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 353ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro va_list args); 354ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jfloat CallNonvirtualFloatMethodA(JNIEnv* env, 355ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 356ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 357ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 358ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jvalue* args); 359ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 360ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jdouble CallNonvirtualDoubleMethod(JNIEnv* env, 361ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 362ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 363ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 364ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro ...); 365ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jdouble CallNonvirtualDoubleMethodV(JNIEnv* env, 366ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 367ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 368ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 369ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro va_list args); 370ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jdouble CallNonvirtualDoubleMethodA(JNIEnv* env, 371ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 372ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 373ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 374ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jvalue* args); 375ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 376ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void CallNonvirtualVoidMethod(JNIEnv* env, 377ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 378ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 379ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 380ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro ...); 381ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void CallNonvirtualVoidMethodV(JNIEnv* env, 382ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 383ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 384ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 385ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro va_list args); 386ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void CallNonvirtualVoidMethodA(JNIEnv* env, 387ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 388ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 389ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 390ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jvalue* args); 391ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 392ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jfieldID GetFieldID(JNIEnv* env, 393ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 394ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro const char* name, 395ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro const char* sig); 3962ed144c2b49ae1da6c464d7a1be0062870530802Carl Shapiro 397ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jobject GetObjectField(JNIEnv* env, jobject obj, jfieldID fieldID); 398ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jboolean GetBooleanField(JNIEnv* env, jobject obj, jfieldID fieldID); 399ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jbyte GetByteField(JNIEnv* env, jobject obj, jfieldID fieldID); 400ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jchar GetCharField(JNIEnv* env, jobject obj, jfieldID fieldID); 401ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jshort GetShortField(JNIEnv* env, jobject obj, jfieldID fieldID); 402ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jint GetIntField(JNIEnv* env, jobject obj, jfieldID fieldID); 403ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jlong GetLongField(JNIEnv* env, jobject obj, jfieldID fieldID); 404ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jfloat GetFloatField(JNIEnv* env, jobject obj, jfieldID fieldID); 405ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jdouble GetDoubleField(JNIEnv* env, jobject obj, jfieldID fieldID); 4062ed144c2b49ae1da6c464d7a1be0062870530802Carl Shapiro 407ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void SetObjectField(JNIEnv* env, 408ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 409ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jfieldID fieldID, 410ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject val); 411ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void SetBooleanField(JNIEnv* env, 412ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 413ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jfieldID fieldID, 414ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jboolean val); 415ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void SetByteField(JNIEnv* env, 416ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 417ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jfieldID fieldID, 418ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jbyte val); 419ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void SetCharField(JNIEnv* env, 420ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 421ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jfieldID fieldID, 422ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jchar val); 423ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void SetShortField(JNIEnv* env, 424ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 425ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jfieldID fieldID, 426ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jshort val); 427ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void SetIntField(JNIEnv* env, jobject obj, jfieldID fieldID, jint val); 428ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void SetLongField(JNIEnv* env, 429ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 430ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jfieldID fieldID, 431ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jlong val); 432ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void SetFloatField(JNIEnv* env, 433ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 434ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jfieldID fieldID, 435ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jfloat val); 436ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void SetDoubleField(JNIEnv* env, 437ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject obj, 438ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jfieldID fieldID, 439ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jdouble val); 4402ed144c2b49ae1da6c464d7a1be0062870530802Carl Shapiro 441ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jmethodID GetStaticMethodID(JNIEnv* env, 442ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 443ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro const char* name, 444ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro const char* sig); 4452ed144c2b49ae1da6c464d7a1be0062870530802Carl Shapiro 446ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jobject CallStaticObjectMethod(JNIEnv* env, 447ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 448ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 449ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro ...); 450ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jobject CallStaticObjectMethodV(JNIEnv* env, 451ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 452ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 453ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro va_list args); 454ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jobject CallStaticObjectMethodA(JNIEnv* env, 455ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 456ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 457ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jvalue* args); 4582ed144c2b49ae1da6c464d7a1be0062870530802Carl Shapiro 459ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jboolean CallStaticBooleanMethod(JNIEnv* env, 460ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 461ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 462ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro ...); 463ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jboolean CallStaticBooleanMethodV(JNIEnv* env, 464ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 465ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 466ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro va_list args); 467ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jboolean CallStaticBooleanMethodA(JNIEnv* env, 468ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 469ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 470ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jvalue* args); 471ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 472ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jbyte CallStaticByteMethod(JNIEnv* env, 473ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 474ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 475ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro ...); 476ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jbyte CallStaticByteMethodV(JNIEnv* env, 477ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 478ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 479ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro va_list args); 480ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jbyte CallStaticByteMethodA(JNIEnv* env, 481ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 482ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 483ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jvalue* args); 484ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 485ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jchar CallStaticCharMethod(JNIEnv* env, 486ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 487ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 488ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro ...); 489ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jchar CallStaticCharMethodV(JNIEnv* env, 490ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 491ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 492ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro va_list args); 493ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jchar CallStaticCharMethodA(JNIEnv* env, 494ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 495ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 496ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jvalue* args); 497ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 498ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jshort CallStaticShortMethod(JNIEnv* env, 499ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 500ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 501ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro ...); 502ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jshort CallStaticShortMethodV(JNIEnv* env, 503ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 504ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 505ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro va_list args); 506ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jshort CallStaticShortMethodA(JNIEnv* env, 507ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 508ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 509ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jvalue* args); 510ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 511ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jint CallStaticIntMethod(JNIEnv* env, 512ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 513ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 514ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro ...); 515ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jint CallStaticIntMethodV(JNIEnv* env, 516ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 517ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 518ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro va_list args); 519ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jint CallStaticIntMethodA(JNIEnv* env, 520ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 521ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 522ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jvalue* args); 523ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 524ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jlong CallStaticLongMethod(JNIEnv* env, 525ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 526ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 527ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro ...); 528ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jlong CallStaticLongMethodV(JNIEnv* env, 529ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 530ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 531ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro va_list args); 532ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jlong CallStaticLongMethodA(JNIEnv* env, 533ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 534ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 535ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jvalue* args); 536ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 537ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jfloat CallStaticFloatMethod(JNIEnv* env, 538ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 539ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 540ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro ...); 541ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jfloat CallStaticFloatMethodV(JNIEnv* env, 542ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 543ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 544ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro va_list args); 545ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jfloat CallStaticFloatMethodA(JNIEnv* env, 546ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 547ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 548ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jvalue* args); 549ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 550ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jdouble CallStaticDoubleMethod(JNIEnv* env, 551ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 552ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 553ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro ...); 554ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jdouble CallStaticDoubleMethodV(JNIEnv* env, 555ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 556ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 557ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro va_list args); 558ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jdouble CallStaticDoubleMethodA(JNIEnv* env, 559ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 560ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 561ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jvalue* args); 562ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 563ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void CallStaticVoidMethod(JNIEnv* env, 564ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass cls, 565ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 566ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro ...); 567ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void CallStaticVoidMethodV(JNIEnv* env, 568ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass cls, 569ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 570ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro va_list args); 571ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void CallStaticVoidMethodA(JNIEnv* env, 572ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass cls, 573ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jmethodID methodID, 574ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jvalue* args); 575ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 576ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jfieldID GetStaticFieldID(JNIEnv* env, 577ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 578ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro const char* name, 579ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro const char* sig); 580ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jobject GetStaticObjectField(JNIEnv* env, 581ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 582ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jfieldID fieldID); 583ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jboolean GetStaticBooleanField(JNIEnv* env, 584ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 585ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jfieldID fieldID); 586ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jbyte GetStaticByteField(JNIEnv* env, jclass clazz, jfieldID fieldID); 587ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jchar GetStaticCharField(JNIEnv* env, jclass clazz, jfieldID fieldID); 588ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jshort GetStaticShortField(JNIEnv* env, 589ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 590ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jfieldID fieldID); 591ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jint GetStaticIntField(JNIEnv* env, jclass clazz, jfieldID fieldID); 592ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jlong GetStaticLongField(JNIEnv* env, jclass clazz, jfieldID fieldID); 593ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jfloat GetStaticFloatField(JNIEnv* env, 594ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 595ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jfieldID fieldID); 596ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jdouble GetStaticDoubleField(JNIEnv* env, 597ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 598ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jfieldID fieldID); 599ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 600ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void SetStaticObjectField(JNIEnv* env, 601ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 602ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jfieldID fieldID, 603ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject value); 604ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void SetStaticBooleanField(JNIEnv* env, 605ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 606ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jfieldID fieldID, 607ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jboolean value); 608ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void SetStaticByteField(JNIEnv* env, 609ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 610ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jfieldID fieldID, 611ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jbyte value); 612ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void SetStaticCharField(JNIEnv* env, 613ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 614ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jfieldID fieldID, 615ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jchar value); 616ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void SetStaticShortField(JNIEnv* env, 617ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 618ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jfieldID fieldID, 619ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jshort value); 620ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void SetStaticIntField(JNIEnv* env, 621ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 622ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jfieldID fieldID, 623ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jint value); 624ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void SetStaticLongField(JNIEnv* env, 625ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 626ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jfieldID fieldID, 627ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jlong value); 628ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void SetStaticFloatField(JNIEnv* env, 629ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 630ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jfieldID fieldID, 631ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jfloat value); 632ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void SetStaticDoubleField(JNIEnv* env, 633ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 634ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jfieldID fieldID, 635ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jdouble value); 636ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 637ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jstring NewString(JNIEnv* env, const jchar* unicode, jsize len); 638ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jsize GetStringLength(JNIEnv* env, jstring str); 639ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static const jchar* GetStringChars(JNIEnv* env, 640ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jstring str, 641ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jboolean* isCopy); 642ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void ReleaseStringChars(JNIEnv* env, jstring str, const jchar* chars); 643ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jstring NewStringUTF(JNIEnv* env, const char* utf); 644ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jsize GetStringUTFLength(JNIEnv* env, jstring str); 645ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static const char* GetStringUTFChars(JNIEnv* env, 646ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jstring str, 647ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jboolean* isCopy); 648ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void ReleaseStringUTFChars(JNIEnv* env, 649ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jstring str, 650ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro const char* chars); 651ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 652ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jsize GetArrayLength(JNIEnv* env, jarray array); 653ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 654ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jobjectArray NewObjectArray(JNIEnv* env, 655ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jsize len, 656ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 657ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject init); 658ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jobject GetObjectArrayElement(JNIEnv* env, 659ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobjectArray array, 660ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jsize index); 661ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void SetObjectArrayElement(JNIEnv* env, 662ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobjectArray array, 663ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jsize index, 664ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jobject val); 665ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 666ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jbooleanArray NewBooleanArray(JNIEnv* env, jsize len); 667ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jbyteArray NewByteArray(JNIEnv* env, jsize len); 668ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jcharArray NewCharArray(JNIEnv* env, jsize len); 669ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jshortArray NewShortArray(JNIEnv* env, jsize len); 670ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jintArray NewIntArray(JNIEnv* env, jsize len); 671ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jlongArray NewLongArray(JNIEnv* env, jsize len); 672ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jfloatArray NewFloatArray(JNIEnv* env, jsize len); 673ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jdoubleArray NewDoubleArray(JNIEnv* env, jsize len); 674ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 675ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jboolean* GetBooleanArrayElements(JNIEnv* env, 676ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jbooleanArray array, 677ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jboolean* isCopy); 678ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jbyte* GetByteArrayElements(JNIEnv* env, 679ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jbyteArray array, 680ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jboolean* isCopy); 681ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jchar* GetCharArrayElements(JNIEnv* env, 682ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jcharArray array, 683ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jboolean* isCopy); 684ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jshort* GetShortArrayElements(JNIEnv* env, 685ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jshortArray array, 686ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jboolean* isCopy); 687ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jint* GetIntArrayElements(JNIEnv* env, 688ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jintArray array, 689ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jboolean* isCopy); 690ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jlong* GetLongArrayElements(JNIEnv* env, 691ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jlongArray array, 692ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jboolean* isCopy); 693ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jfloat* GetFloatArrayElements(JNIEnv* env, 694ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jfloatArray array, 695ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jboolean* isCopy); 696ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jdouble* GetDoubleArrayElements(JNIEnv* env, 697ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jdoubleArray array, 698ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jboolean* isCopy); 699ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 700ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void ReleaseBooleanArrayElements(JNIEnv* env, 701ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jbooleanArray array, 702ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jboolean* elems, 703ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jint mode); 704ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void ReleaseByteArrayElements(JNIEnv* env, 705ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jbyteArray array, 706ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jbyte* elems, 707ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jint mode); 708ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void ReleaseCharArrayElements(JNIEnv* env, 709ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jcharArray array, 710ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jchar* elems, 711ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jint mode); 712ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void ReleaseShortArrayElements(JNIEnv* env, 713ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jshortArray array, 714ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jshort* elems, 715ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jint mode); 716ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void ReleaseIntArrayElements(JNIEnv* env, 717ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jintArray array, 718ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jint* elems, 719ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jint mode); 720ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void ReleaseLongArrayElements(JNIEnv* env, 721ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jlongArray array, 722ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jlong* elems, 723ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jint mode); 724ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void ReleaseFloatArrayElements(JNIEnv* env, 725ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jfloatArray array, 726ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jfloat* elems, 727ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jint mode); 728ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void ReleaseDoubleArrayElements(JNIEnv* env, 729ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jdoubleArray array, 730ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jdouble* elems, 731ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jint mode); 732ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 733ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void GetBooleanArrayRegion(JNIEnv* env, 734ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jbooleanArray array, 735ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jsize start, 736ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jsize l, 737ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jboolean* buf); 738ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void GetByteArrayRegion(JNIEnv* env, 739ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jbyteArray array, 740ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jsize start, 741ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jsize len, 742ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jbyte* buf); 743ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void GetCharArrayRegion(JNIEnv* env, 744ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jcharArray array, 745ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jsize start, 746ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jsize len, 747ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jchar* buf); 748ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void GetShortArrayRegion(JNIEnv* env, 749ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jshortArray array, 750ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jsize start, 751ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jsize len, 752ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jshort* buf); 753ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void GetIntArrayRegion(JNIEnv* env, 754ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jintArray array, 755ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jsize start, 756ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jsize len, 757ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jint* buf); 758ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void GetLongArrayRegion(JNIEnv* env, 759ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jlongArray array, 760ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jsize start, 761ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jsize len, 762ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jlong* buf); 763ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void GetFloatArrayRegion(JNIEnv* env, 764ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jfloatArray array, 765ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jsize start, 766ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jsize len, 767ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jfloat* buf); 768ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void GetDoubleArrayRegion(JNIEnv* env, 769ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jdoubleArray array, 770ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jsize start, 771ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jsize len, 772ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jdouble* buf); 773ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 774ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void SetBooleanArrayRegion(JNIEnv* env, 775ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jbooleanArray array, 776ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jsize start, 777ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jsize l, 778ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro const jboolean* buf); 779ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void SetByteArrayRegion(JNIEnv* env, 780ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jbyteArray array, 781ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jsize start, 782ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jsize len, 783ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro const jbyte* buf); 784ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void SetCharArrayRegion(JNIEnv* env, 785ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jcharArray array, 786ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jsize start, 787ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jsize len, 788ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro const jchar* buf); 789ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void SetShortArrayRegion(JNIEnv* env, 790ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jshortArray array, 791ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jsize start, 792ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jsize len, 793ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro const jshort* buf); 794ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void SetIntArrayRegion(JNIEnv* env, 795ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jintArray array, 796ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jsize start, 797ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jsize len, 798ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro const jint* buf); 799ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void SetLongArrayRegion(JNIEnv* env, 800ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jlongArray array, 801ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jsize start, 802ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jsize len, 803ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro const jlong* buf); 804ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void SetFloatArrayRegion(JNIEnv* env, 805ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jfloatArray array, 806ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jsize start, 807ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jsize len, 808ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro const jfloat* buf); 809ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void SetDoubleArrayRegion(JNIEnv* env, 810ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jdoubleArray array, 811ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jsize start, 812ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jsize len, 813ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro const jdouble* buf); 814ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 815ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jint RegisterNatives(JNIEnv* env, 816ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jclass clazz, 817ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro const JNINativeMethod* methods, 818ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jint nMethods); 819ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jint UnregisterNatives(JNIEnv* env, jclass clazz); 820ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 821ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jint MonitorEnter(JNIEnv* env, jobject obj); 822ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jint MonitorExit(JNIEnv* env, jobject obj); 823ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 824ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jint GetJavaVM(JNIEnv* env, JavaVM* *vm); 825ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 826ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void GetStringRegion(JNIEnv* env, 827ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jstring str, 828ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jsize start, 829ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jsize len, 830ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jchar* buf); 831ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void GetStringUTFRegion(JNIEnv* env, 832ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jstring str, 833ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jsize start, 834ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jsize len, 835ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro char* buf); 836ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 837ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void* GetPrimitiveArrayCritical(JNIEnv* env, 838ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jarray array, 839ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jboolean* isCopy); 840ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void ReleasePrimitiveArrayCritical(JNIEnv* env, 841ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jarray array, 842ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro void* carray, 843ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jint mode); 844ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 845ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static const jchar* GetStringCritical(JNIEnv* env, 846ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jstring s, 847ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jboolean* isCopy); 848ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void ReleaseStringCritical(JNIEnv* env, jstring s, const jchar* cstr); 849ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 850ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jweak NewWeakGlobalRef(JNIEnv* env, jobject obj); 851ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void DeleteWeakGlobalRef(JNIEnv* env, jweak obj); 852ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 853ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jboolean ExceptionCheck(JNIEnv* env); 854ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 855ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jobject NewDirectByteBuffer(JNIEnv* env, 856ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro void* address, 857ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro jlong capacity); 858ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static void* GetDirectBufferAddress(JNIEnv* env, jobject buf); 859ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jlong GetDirectBufferCapacity(JNIEnv* env, jobject buf); 860ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 861ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jobjectRefType GetObjectRefType(JNIEnv* env, jobject obj); 862ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 863ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static struct JNINativeInterface native_interface_; 864ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro DISALLOW_IMPLICIT_CONSTRUCTORS(JniNativeInterface); 865ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro}; 866ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 867ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiroclass JniInvokeInterface { 868ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro public: 869ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static struct JNIInvokeInterface* GetInterface() { 870ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro return &invoke_interface_; 871ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro } 8722ed144c2b49ae1da6c464d7a1be0062870530802Carl Shapiro private: 873ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jint DestroyJavaVM(JavaVM* vm); 874ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jint AttachCurrentThread(JavaVM* vm, JNIEnv** penv, void* thr_args); 875ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jint DetachCurrentThread(JavaVM* vm); 876ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jint GetEnv(JavaVM* vm, void** penv, int version); 877ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static jint AttachCurrentThreadAsDaemon(JavaVM* vm, 878ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro JNIEnv** penv, 879ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro void* thr_args); 880ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro static struct JNIInvokeInterface invoke_interface_; 881ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro DISALLOW_IMPLICIT_CONSTRUCTORS(JniInvokeInterface); 882df20fe0c097073f75f22d16e72fd3636a31d3ca1Ian Rogers}; 883df20fe0c097073f75f22d16e72fd3636a31d3ca1Ian Rogers 884df20fe0c097073f75f22d16e72fd3636a31d3ca1Ian Rogers} // namespace art 885ea4dca856f8c19299a1858d2cc1f35b03ca0f694Carl Shapiro 886df20fe0c097073f75f22d16e72fd3636a31d3ca1Ian Rogers#endif // ART_SRC_JNI_INTERNAL_H_ 887