13a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount/*
23a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount * Copyright 2006 The Android Open Source Project
33a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount *
43a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount * JNI specification, as defined by Sun:
53a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount * http://java.sun.com/javase/6/docs/technotes/guides/jni/spec/jniTOC.html
63a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount *
73a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount * Everything here is expected to be VM-neutral.
83a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount */
93a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#ifndef _JNI_H
103a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define _JNI_H
113a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
123a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#include <stdarg.h>
133a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
143a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount/*
153a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount * Primitive types that match up with Java equivalents.
163a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount */
173a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#ifdef HAVE_INTTYPES_H
183a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount# include <inttypes.h>      /* C99 */
193a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef uint8_t         jboolean;       /* unsigned 8 bits */
203a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef int8_t          jbyte;          /* signed 8 bits */
213a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef uint16_t        jchar;          /* unsigned 16 bits */
223a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef int16_t         jshort;         /* signed 16 bits */
233a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef int32_t         jint;           /* signed 32 bits */
243a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef int64_t         jlong;          /* signed 64 bits */
253a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef float           jfloat;         /* 32-bit IEEE 754 */
263a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef double          jdouble;        /* 64-bit IEEE 754 */
273a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#else
283a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef unsigned char   jboolean;       /* unsigned 8 bits */
293a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef signed char     jbyte;          /* signed 8 bits */
303a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef unsigned short  jchar;          /* unsigned 16 bits */
313a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef short           jshort;         /* signed 16 bits */
323a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef int             jint;           /* signed 32 bits */
333a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef long long       jlong;          /* signed 64 bits */
343a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef float           jfloat;         /* 32-bit IEEE 754 */
353a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef double          jdouble;        /* 64-bit IEEE 754 */
363a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#endif
373a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
383a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount/* "cardinal indices and sizes" */
393a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef jint            jsize;
403a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
413a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#ifdef __cplusplus
423a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount/*
433a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount * Reference types, in C++
443a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount */
453a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccountclass _jobject {};
463a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccountclass _jclass : public _jobject {};
473a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccountclass _jstring : public _jobject {};
483a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccountclass _jarray : public _jobject {};
493a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccountclass _jobjectArray : public _jarray {};
503a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccountclass _jbooleanArray : public _jarray {};
513a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccountclass _jbyteArray : public _jarray {};
523a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccountclass _jcharArray : public _jarray {};
533a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccountclass _jshortArray : public _jarray {};
543a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccountclass _jintArray : public _jarray {};
553a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccountclass _jlongArray : public _jarray {};
563a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccountclass _jfloatArray : public _jarray {};
573a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccountclass _jdoubleArray : public _jarray {};
583a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccountclass _jthrowable : public _jobject {};
593a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
603a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef _jobject*       jobject;
613a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef _jclass*        jclass;
623a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef _jstring*       jstring;
633a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef _jarray*        jarray;
643a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef _jobjectArray*  jobjectArray;
653a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef _jbooleanArray* jbooleanArray;
663a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef _jbyteArray*    jbyteArray;
673a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef _jcharArray*    jcharArray;
683a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef _jshortArray*   jshortArray;
693a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef _jintArray*     jintArray;
703a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef _jlongArray*    jlongArray;
713a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef _jfloatArray*   jfloatArray;
723a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef _jdoubleArray*  jdoubleArray;
733a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef _jthrowable*    jthrowable;
743a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef _jobject*       jweak;
753a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
763a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
773a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#else /* not __cplusplus */
783a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
793a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount/*
803a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount * Reference types, in C.
813a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount */
823a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef void*           jobject;
833a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef jobject         jclass;
843a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef jobject         jstring;
853a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef jobject         jarray;
863a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef jarray          jobjectArray;
873a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef jarray          jbooleanArray;
883a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef jarray          jbyteArray;
893a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef jarray          jcharArray;
903a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef jarray          jshortArray;
913a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef jarray          jintArray;
923a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef jarray          jlongArray;
933a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef jarray          jfloatArray;
943a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef jarray          jdoubleArray;
953a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef jobject         jthrowable;
963a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef jobject         jweak;
973a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
983a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#endif /* not __cplusplus */
993a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
1003a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccountstruct _jfieldID;                       /* opaque structure */
1013a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef struct _jfieldID* jfieldID;     /* field IDs */
1023a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
1033a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccountstruct _jmethodID;                      /* opaque structure */
1043a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef struct _jmethodID* jmethodID;   /* method IDs */
1053a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
1063a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccountstruct JNIInvokeInterface;
1073a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
1083a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef union jvalue {
1093a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jboolean    z;
1103a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jbyte       b;
1113a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jchar       c;
1123a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jshort      s;
1133a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint        i;
1143a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jlong       j;
1153a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jfloat      f;
1163a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jdouble     d;
1173a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jobject     l;
1183a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount} jvalue;
1193a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
1203a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef enum jobjectRefType {
1213a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    JNIInvalidRefType = 0,
1223a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    JNILocalRefType = 1,
1233a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    JNIGlobalRefType = 2,
1243a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    JNIWeakGlobalRefType = 3
1253a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount} jobjectRefType;
1263a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
1273a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef struct {
1283a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    const char* name;
1293a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    const char* signature;
1303a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void*       fnPtr;
1313a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount} JNINativeMethod;
1323a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
1333a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccountstruct _JNIEnv;
1343a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccountstruct _JavaVM;
1353a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef const struct JNINativeInterface* C_JNIEnv;
1363a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
1373a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#if defined(__cplusplus)
1383a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef _JNIEnv JNIEnv;
1393a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef _JavaVM JavaVM;
1403a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#else
1413a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef const struct JNINativeInterface* JNIEnv;
1423a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef const struct JNIInvokeInterface* JavaVM;
1433a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#endif
1443a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
1453a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount/*
1463a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount * Table of interface function pointers.
1473a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount */
1483a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccountstruct JNINativeInterface {
1493a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void*       reserved0;
1503a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void*       reserved1;
1513a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void*       reserved2;
1523a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void*       reserved3;
1533a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
1543a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint        (*GetVersion)(JNIEnv *);
1553a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
1563a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jclass      (*DefineClass)(JNIEnv*, const char*, jobject, const jbyte*,
1573a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jsize);
1583a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jclass      (*FindClass)(JNIEnv*, const char*);
1593a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
1603a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jmethodID   (*FromReflectedMethod)(JNIEnv*, jobject);
1613a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jfieldID    (*FromReflectedField)(JNIEnv*, jobject);
1623a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    /* spec doesn't show jboolean parameter */
1633a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jobject     (*ToReflectedMethod)(JNIEnv*, jclass, jmethodID, jboolean);
1643a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
1653a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jclass      (*GetSuperclass)(JNIEnv*, jclass);
1663a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jboolean    (*IsAssignableFrom)(JNIEnv*, jclass, jclass);
1673a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
1683a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    /* spec doesn't show jboolean parameter */
1693a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jobject     (*ToReflectedField)(JNIEnv*, jclass, jfieldID, jboolean);
1703a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
1713a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint        (*Throw)(JNIEnv*, jthrowable);
1723a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint        (*ThrowNew)(JNIEnv *, jclass, const char *);
1733a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jthrowable  (*ExceptionOccurred)(JNIEnv*);
1743a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*ExceptionDescribe)(JNIEnv*);
1753a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*ExceptionClear)(JNIEnv*);
1763a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*FatalError)(JNIEnv*, const char*);
1773a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
1783a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint        (*PushLocalFrame)(JNIEnv*, jint);
1793a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jobject     (*PopLocalFrame)(JNIEnv*, jobject);
1803a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
1813a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jobject     (*NewGlobalRef)(JNIEnv*, jobject);
1823a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*DeleteGlobalRef)(JNIEnv*, jobject);
1833a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*DeleteLocalRef)(JNIEnv*, jobject);
1843a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jboolean    (*IsSameObject)(JNIEnv*, jobject, jobject);
1853a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
1863a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jobject     (*NewLocalRef)(JNIEnv*, jobject);
1873a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint        (*EnsureLocalCapacity)(JNIEnv*, jint);
1883a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
1893a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jobject     (*AllocObject)(JNIEnv*, jclass);
1903a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jobject     (*NewObject)(JNIEnv*, jclass, jmethodID, ...);
1913a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jobject     (*NewObjectV)(JNIEnv*, jclass, jmethodID, va_list);
1923a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jobject     (*NewObjectA)(JNIEnv*, jclass, jmethodID, jvalue*);
1933a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
1943a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jclass      (*GetObjectClass)(JNIEnv*, jobject);
1953a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jboolean    (*IsInstanceOf)(JNIEnv*, jobject, jclass);
1963a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jmethodID   (*GetMethodID)(JNIEnv*, jclass, const char*, const char*);
1973a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
1983a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jobject     (*CallObjectMethod)(JNIEnv*, jobject, jmethodID, ...);
1993a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jobject     (*CallObjectMethodV)(JNIEnv*, jobject, jmethodID, va_list);
2003a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jobject     (*CallObjectMethodA)(JNIEnv*, jobject, jmethodID, jvalue*);
2013a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jboolean    (*CallBooleanMethod)(JNIEnv*, jobject, jmethodID, ...);
2023a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jboolean    (*CallBooleanMethodV)(JNIEnv*, jobject, jmethodID, va_list);
2033a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jboolean    (*CallBooleanMethodA)(JNIEnv*, jobject, jmethodID, jvalue*);
2043a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jbyte       (*CallByteMethod)(JNIEnv*, jobject, jmethodID, ...);
2053a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jbyte       (*CallByteMethodV)(JNIEnv*, jobject, jmethodID, va_list);
2063a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jbyte       (*CallByteMethodA)(JNIEnv*, jobject, jmethodID, jvalue*);
2073a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jchar       (*CallCharMethod)(JNIEnv*, jobject, jmethodID, ...);
2083a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jchar       (*CallCharMethodV)(JNIEnv*, jobject, jmethodID, va_list);
2093a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jchar       (*CallCharMethodA)(JNIEnv*, jobject, jmethodID, jvalue*);
2103a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jshort      (*CallShortMethod)(JNIEnv*, jobject, jmethodID, ...);
2113a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jshort      (*CallShortMethodV)(JNIEnv*, jobject, jmethodID, va_list);
2123a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jshort      (*CallShortMethodA)(JNIEnv*, jobject, jmethodID, jvalue*);
2133a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint        (*CallIntMethod)(JNIEnv*, jobject, jmethodID, ...);
2143a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint        (*CallIntMethodV)(JNIEnv*, jobject, jmethodID, va_list);
2153a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint        (*CallIntMethodA)(JNIEnv*, jobject, jmethodID, jvalue*);
2163a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jlong       (*CallLongMethod)(JNIEnv*, jobject, jmethodID, ...);
2173a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jlong       (*CallLongMethodV)(JNIEnv*, jobject, jmethodID, va_list);
2183a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jlong       (*CallLongMethodA)(JNIEnv*, jobject, jmethodID, jvalue*);
2193a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jfloat      (*CallFloatMethod)(JNIEnv*, jobject, jmethodID, ...);
2203a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jfloat      (*CallFloatMethodV)(JNIEnv*, jobject, jmethodID, va_list);
2213a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jfloat      (*CallFloatMethodA)(JNIEnv*, jobject, jmethodID, jvalue*);
2223a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jdouble     (*CallDoubleMethod)(JNIEnv*, jobject, jmethodID, ...);
2233a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jdouble     (*CallDoubleMethodV)(JNIEnv*, jobject, jmethodID, va_list);
2243a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jdouble     (*CallDoubleMethodA)(JNIEnv*, jobject, jmethodID, jvalue*);
2253a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*CallVoidMethod)(JNIEnv*, jobject, jmethodID, ...);
2263a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*CallVoidMethodV)(JNIEnv*, jobject, jmethodID, va_list);
2273a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*CallVoidMethodA)(JNIEnv*, jobject, jmethodID, jvalue*);
2283a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
2293a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jobject     (*CallNonvirtualObjectMethod)(JNIEnv*, jobject, jclass,
2303a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jmethodID, ...);
2313a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jobject     (*CallNonvirtualObjectMethodV)(JNIEnv*, jobject, jclass,
2323a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jmethodID, va_list);
2333a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jobject     (*CallNonvirtualObjectMethodA)(JNIEnv*, jobject, jclass,
2343a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jmethodID, jvalue*);
2353a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jboolean    (*CallNonvirtualBooleanMethod)(JNIEnv*, jobject, jclass,
2363a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jmethodID, ...);
2373a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jboolean    (*CallNonvirtualBooleanMethodV)(JNIEnv*, jobject, jclass,
2383a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                         jmethodID, va_list);
2393a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jboolean    (*CallNonvirtualBooleanMethodA)(JNIEnv*, jobject, jclass,
2403a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                         jmethodID, jvalue*);
2413a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jbyte       (*CallNonvirtualByteMethod)(JNIEnv*, jobject, jclass,
2423a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jmethodID, ...);
2433a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jbyte       (*CallNonvirtualByteMethodV)(JNIEnv*, jobject, jclass,
2443a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jmethodID, va_list);
2453a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jbyte       (*CallNonvirtualByteMethodA)(JNIEnv*, jobject, jclass,
2463a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jmethodID, jvalue*);
2473a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jchar       (*CallNonvirtualCharMethod)(JNIEnv*, jobject, jclass,
2483a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jmethodID, ...);
2493a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jchar       (*CallNonvirtualCharMethodV)(JNIEnv*, jobject, jclass,
2503a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jmethodID, va_list);
2513a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jchar       (*CallNonvirtualCharMethodA)(JNIEnv*, jobject, jclass,
2523a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jmethodID, jvalue*);
2533a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jshort      (*CallNonvirtualShortMethod)(JNIEnv*, jobject, jclass,
2543a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jmethodID, ...);
2553a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jshort      (*CallNonvirtualShortMethodV)(JNIEnv*, jobject, jclass,
2563a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jmethodID, va_list);
2573a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jshort      (*CallNonvirtualShortMethodA)(JNIEnv*, jobject, jclass,
2583a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jmethodID, jvalue*);
2593a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint        (*CallNonvirtualIntMethod)(JNIEnv*, jobject, jclass,
2603a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jmethodID, ...);
2613a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint        (*CallNonvirtualIntMethodV)(JNIEnv*, jobject, jclass,
2623a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jmethodID, va_list);
2633a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint        (*CallNonvirtualIntMethodA)(JNIEnv*, jobject, jclass,
2643a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jmethodID, jvalue*);
2653a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jlong       (*CallNonvirtualLongMethod)(JNIEnv*, jobject, jclass,
2663a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jmethodID, ...);
2673a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jlong       (*CallNonvirtualLongMethodV)(JNIEnv*, jobject, jclass,
2683a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jmethodID, va_list);
2693a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jlong       (*CallNonvirtualLongMethodA)(JNIEnv*, jobject, jclass,
2703a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jmethodID, jvalue*);
2713a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jfloat      (*CallNonvirtualFloatMethod)(JNIEnv*, jobject, jclass,
2723a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jmethodID, ...);
2733a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jfloat      (*CallNonvirtualFloatMethodV)(JNIEnv*, jobject, jclass,
2743a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jmethodID, va_list);
2753a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jfloat      (*CallNonvirtualFloatMethodA)(JNIEnv*, jobject, jclass,
2763a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jmethodID, jvalue*);
2773a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jdouble     (*CallNonvirtualDoubleMethod)(JNIEnv*, jobject, jclass,
2783a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jmethodID, ...);
2793a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jdouble     (*CallNonvirtualDoubleMethodV)(JNIEnv*, jobject, jclass,
2803a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jmethodID, va_list);
2813a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jdouble     (*CallNonvirtualDoubleMethodA)(JNIEnv*, jobject, jclass,
2823a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jmethodID, jvalue*);
2833a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*CallNonvirtualVoidMethod)(JNIEnv*, jobject, jclass,
2843a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jmethodID, ...);
2853a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*CallNonvirtualVoidMethodV)(JNIEnv*, jobject, jclass,
2863a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jmethodID, va_list);
2873a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*CallNonvirtualVoidMethodA)(JNIEnv*, jobject, jclass,
2883a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jmethodID, jvalue*);
2893a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
2903a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jfieldID    (*GetFieldID)(JNIEnv*, jclass, const char*, const char*);
2913a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
2923a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jobject     (*GetObjectField)(JNIEnv*, jobject, jfieldID);
2933a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jboolean    (*GetBooleanField)(JNIEnv*, jobject, jfieldID);
2943a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jbyte       (*GetByteField)(JNIEnv*, jobject, jfieldID);
2953a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jchar       (*GetCharField)(JNIEnv*, jobject, jfieldID);
2963a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jshort      (*GetShortField)(JNIEnv*, jobject, jfieldID);
2973a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint        (*GetIntField)(JNIEnv*, jobject, jfieldID);
2983a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jlong       (*GetLongField)(JNIEnv*, jobject, jfieldID);
2993a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jfloat      (*GetFloatField)(JNIEnv*, jobject, jfieldID);
3003a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jdouble     (*GetDoubleField)(JNIEnv*, jobject, jfieldID);
3013a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
3023a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*SetObjectField)(JNIEnv*, jobject, jfieldID, jobject);
3033a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*SetBooleanField)(JNIEnv*, jobject, jfieldID, jboolean);
3043a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*SetByteField)(JNIEnv*, jobject, jfieldID, jbyte);
3053a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*SetCharField)(JNIEnv*, jobject, jfieldID, jchar);
3063a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*SetShortField)(JNIEnv*, jobject, jfieldID, jshort);
3073a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*SetIntField)(JNIEnv*, jobject, jfieldID, jint);
3083a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*SetLongField)(JNIEnv*, jobject, jfieldID, jlong);
3093a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*SetFloatField)(JNIEnv*, jobject, jfieldID, jfloat);
3103a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*SetDoubleField)(JNIEnv*, jobject, jfieldID, jdouble);
3113a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
3123a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jmethodID   (*GetStaticMethodID)(JNIEnv*, jclass, const char*, const char*);
3133a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
3143a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jobject     (*CallStaticObjectMethod)(JNIEnv*, jclass, jmethodID, ...);
3153a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jobject     (*CallStaticObjectMethodV)(JNIEnv*, jclass, jmethodID, va_list);
3163a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jobject     (*CallStaticObjectMethodA)(JNIEnv*, jclass, jmethodID, jvalue*);
3173a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jboolean    (*CallStaticBooleanMethod)(JNIEnv*, jclass, jmethodID, ...);
3183a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jboolean    (*CallStaticBooleanMethodV)(JNIEnv*, jclass, jmethodID,
3193a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        va_list);
3203a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jboolean    (*CallStaticBooleanMethodA)(JNIEnv*, jclass, jmethodID,
3213a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jvalue*);
3223a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jbyte       (*CallStaticByteMethod)(JNIEnv*, jclass, jmethodID, ...);
3233a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jbyte       (*CallStaticByteMethodV)(JNIEnv*, jclass, jmethodID, va_list);
3243a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jbyte       (*CallStaticByteMethodA)(JNIEnv*, jclass, jmethodID, jvalue*);
3253a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jchar       (*CallStaticCharMethod)(JNIEnv*, jclass, jmethodID, ...);
3263a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jchar       (*CallStaticCharMethodV)(JNIEnv*, jclass, jmethodID, va_list);
3273a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jchar       (*CallStaticCharMethodA)(JNIEnv*, jclass, jmethodID, jvalue*);
3283a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jshort      (*CallStaticShortMethod)(JNIEnv*, jclass, jmethodID, ...);
3293a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jshort      (*CallStaticShortMethodV)(JNIEnv*, jclass, jmethodID, va_list);
3303a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jshort      (*CallStaticShortMethodA)(JNIEnv*, jclass, jmethodID, jvalue*);
3313a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint        (*CallStaticIntMethod)(JNIEnv*, jclass, jmethodID, ...);
3323a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint        (*CallStaticIntMethodV)(JNIEnv*, jclass, jmethodID, va_list);
3333a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint        (*CallStaticIntMethodA)(JNIEnv*, jclass, jmethodID, jvalue*);
3343a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jlong       (*CallStaticLongMethod)(JNIEnv*, jclass, jmethodID, ...);
3353a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jlong       (*CallStaticLongMethodV)(JNIEnv*, jclass, jmethodID, va_list);
3363a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jlong       (*CallStaticLongMethodA)(JNIEnv*, jclass, jmethodID, jvalue*);
3373a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jfloat      (*CallStaticFloatMethod)(JNIEnv*, jclass, jmethodID, ...);
3383a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jfloat      (*CallStaticFloatMethodV)(JNIEnv*, jclass, jmethodID, va_list);
3393a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jfloat      (*CallStaticFloatMethodA)(JNIEnv*, jclass, jmethodID, jvalue*);
3403a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jdouble     (*CallStaticDoubleMethod)(JNIEnv*, jclass, jmethodID, ...);
3413a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jdouble     (*CallStaticDoubleMethodV)(JNIEnv*, jclass, jmethodID, va_list);
3423a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jdouble     (*CallStaticDoubleMethodA)(JNIEnv*, jclass, jmethodID, jvalue*);
3433a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*CallStaticVoidMethod)(JNIEnv*, jclass, jmethodID, ...);
3443a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*CallStaticVoidMethodV)(JNIEnv*, jclass, jmethodID, va_list);
3453a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*CallStaticVoidMethodA)(JNIEnv*, jclass, jmethodID, jvalue*);
3463a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
3473a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jfieldID    (*GetStaticFieldID)(JNIEnv*, jclass, const char*,
3483a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        const char*);
3493a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
3503a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jobject     (*GetStaticObjectField)(JNIEnv*, jclass, jfieldID);
3513a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jboolean    (*GetStaticBooleanField)(JNIEnv*, jclass, jfieldID);
3523a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jbyte       (*GetStaticByteField)(JNIEnv*, jclass, jfieldID);
3533a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jchar       (*GetStaticCharField)(JNIEnv*, jclass, jfieldID);
3543a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jshort      (*GetStaticShortField)(JNIEnv*, jclass, jfieldID);
3553a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint        (*GetStaticIntField)(JNIEnv*, jclass, jfieldID);
3563a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jlong       (*GetStaticLongField)(JNIEnv*, jclass, jfieldID);
3573a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jfloat      (*GetStaticFloatField)(JNIEnv*, jclass, jfieldID);
3583a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jdouble     (*GetStaticDoubleField)(JNIEnv*, jclass, jfieldID);
3593a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
3603a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*SetStaticObjectField)(JNIEnv*, jclass, jfieldID, jobject);
3613a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*SetStaticBooleanField)(JNIEnv*, jclass, jfieldID, jboolean);
3623a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*SetStaticByteField)(JNIEnv*, jclass, jfieldID, jbyte);
3633a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*SetStaticCharField)(JNIEnv*, jclass, jfieldID, jchar);
3643a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*SetStaticShortField)(JNIEnv*, jclass, jfieldID, jshort);
3653a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*SetStaticIntField)(JNIEnv*, jclass, jfieldID, jint);
3663a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*SetStaticLongField)(JNIEnv*, jclass, jfieldID, jlong);
3673a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*SetStaticFloatField)(JNIEnv*, jclass, jfieldID, jfloat);
3683a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*SetStaticDoubleField)(JNIEnv*, jclass, jfieldID, jdouble);
3693a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
3703a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jstring     (*NewString)(JNIEnv*, const jchar*, jsize);
3713a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jsize       (*GetStringLength)(JNIEnv*, jstring);
3723a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    const jchar* (*GetStringChars)(JNIEnv*, jstring, jboolean*);
3733a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*ReleaseStringChars)(JNIEnv*, jstring, const jchar*);
3743a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jstring     (*NewStringUTF)(JNIEnv*, const char*);
3753a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jsize       (*GetStringUTFLength)(JNIEnv*, jstring);
3763a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    /* JNI spec says this returns const jbyte*, but that's inconsistent */
3773a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    const char* (*GetStringUTFChars)(JNIEnv*, jstring, jboolean*);
3783a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*ReleaseStringUTFChars)(JNIEnv*, jstring, const char*);
3793a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jsize       (*GetArrayLength)(JNIEnv*, jarray);
3803a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jobjectArray (*NewObjectArray)(JNIEnv*, jsize, jclass, jobject);
3813a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jobject     (*GetObjectArrayElement)(JNIEnv*, jobjectArray, jsize);
3823a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*SetObjectArrayElement)(JNIEnv*, jobjectArray, jsize, jobject);
3833a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
3843a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jbooleanArray (*NewBooleanArray)(JNIEnv*, jsize);
3853a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jbyteArray    (*NewByteArray)(JNIEnv*, jsize);
3863a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jcharArray    (*NewCharArray)(JNIEnv*, jsize);
3873a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jshortArray   (*NewShortArray)(JNIEnv*, jsize);
3883a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jintArray     (*NewIntArray)(JNIEnv*, jsize);
3893a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jlongArray    (*NewLongArray)(JNIEnv*, jsize);
3903a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jfloatArray   (*NewFloatArray)(JNIEnv*, jsize);
3913a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jdoubleArray  (*NewDoubleArray)(JNIEnv*, jsize);
3923a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
3933a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jboolean*   (*GetBooleanArrayElements)(JNIEnv*, jbooleanArray, jboolean*);
3943a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jbyte*      (*GetByteArrayElements)(JNIEnv*, jbyteArray, jboolean*);
3953a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jchar*      (*GetCharArrayElements)(JNIEnv*, jcharArray, jboolean*);
3963a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jshort*     (*GetShortArrayElements)(JNIEnv*, jshortArray, jboolean*);
3973a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint*       (*GetIntArrayElements)(JNIEnv*, jintArray, jboolean*);
3983a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jlong*      (*GetLongArrayElements)(JNIEnv*, jlongArray, jboolean*);
3993a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jfloat*     (*GetFloatArrayElements)(JNIEnv*, jfloatArray, jboolean*);
4003a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jdouble*    (*GetDoubleArrayElements)(JNIEnv*, jdoubleArray, jboolean*);
4013a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
4023a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*ReleaseBooleanArrayElements)(JNIEnv*, jbooleanArray,
4033a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jboolean*, jint);
4043a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*ReleaseByteArrayElements)(JNIEnv*, jbyteArray,
4053a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jbyte*, jint);
4063a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*ReleaseCharArrayElements)(JNIEnv*, jcharArray,
4073a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jchar*, jint);
4083a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*ReleaseShortArrayElements)(JNIEnv*, jshortArray,
4093a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jshort*, jint);
4103a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*ReleaseIntArrayElements)(JNIEnv*, jintArray,
4113a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jint*, jint);
4123a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*ReleaseLongArrayElements)(JNIEnv*, jlongArray,
4133a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jlong*, jint);
4143a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*ReleaseFloatArrayElements)(JNIEnv*, jfloatArray,
4153a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jfloat*, jint);
4163a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*ReleaseDoubleArrayElements)(JNIEnv*, jdoubleArray,
4173a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jdouble*, jint);
4183a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
4193a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*GetBooleanArrayRegion)(JNIEnv*, jbooleanArray,
4203a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jsize, jsize, jboolean*);
4213a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*GetByteArrayRegion)(JNIEnv*, jbyteArray,
4223a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jsize, jsize, jbyte*);
4233a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*GetCharArrayRegion)(JNIEnv*, jcharArray,
4243a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jsize, jsize, jchar*);
4253a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*GetShortArrayRegion)(JNIEnv*, jshortArray,
4263a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jsize, jsize, jshort*);
4273a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*GetIntArrayRegion)(JNIEnv*, jintArray,
4283a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jsize, jsize, jint*);
4293a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*GetLongArrayRegion)(JNIEnv*, jlongArray,
4303a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jsize, jsize, jlong*);
4313a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*GetFloatArrayRegion)(JNIEnv*, jfloatArray,
4323a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jsize, jsize, jfloat*);
4333a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*GetDoubleArrayRegion)(JNIEnv*, jdoubleArray,
4343a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jsize, jsize, jdouble*);
4353a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
4363a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    /* spec shows these without const; some jni.h do, some don't */
4373a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*SetBooleanArrayRegion)(JNIEnv*, jbooleanArray,
4383a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jsize, jsize, const jboolean*);
4393a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*SetByteArrayRegion)(JNIEnv*, jbyteArray,
4403a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jsize, jsize, const jbyte*);
4413a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*SetCharArrayRegion)(JNIEnv*, jcharArray,
4423a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jsize, jsize, const jchar*);
4433a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*SetShortArrayRegion)(JNIEnv*, jshortArray,
4443a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jsize, jsize, const jshort*);
4453a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*SetIntArrayRegion)(JNIEnv*, jintArray,
4463a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jsize, jsize, const jint*);
4473a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*SetLongArrayRegion)(JNIEnv*, jlongArray,
4483a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jsize, jsize, const jlong*);
4493a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*SetFloatArrayRegion)(JNIEnv*, jfloatArray,
4503a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jsize, jsize, const jfloat*);
4513a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*SetDoubleArrayRegion)(JNIEnv*, jdoubleArray,
4523a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jsize, jsize, const jdouble*);
4533a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
4543a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint        (*RegisterNatives)(JNIEnv*, jclass, const JNINativeMethod*,
4553a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                        jint);
4563a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint        (*UnregisterNatives)(JNIEnv*, jclass);
4573a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint        (*MonitorEnter)(JNIEnv*, jobject);
4583a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint        (*MonitorExit)(JNIEnv*, jobject);
4593a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint        (*GetJavaVM)(JNIEnv*, JavaVM**);
4603a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
4613a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*GetStringRegion)(JNIEnv*, jstring, jsize, jsize, jchar*);
4623a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*GetStringUTFRegion)(JNIEnv*, jstring, jsize, jsize, char*);
4633a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
4643a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void*       (*GetPrimitiveArrayCritical)(JNIEnv*, jarray, jboolean*);
4653a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*ReleasePrimitiveArrayCritical)(JNIEnv*, jarray, void*, jint);
4663a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
4673a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    const jchar* (*GetStringCritical)(JNIEnv*, jstring, jboolean*);
4683a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*ReleaseStringCritical)(JNIEnv*, jstring, const jchar*);
4693a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
4703a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jweak       (*NewWeakGlobalRef)(JNIEnv*, jobject);
4713a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void        (*DeleteWeakGlobalRef)(JNIEnv*, jweak);
4723a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
4733a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jboolean    (*ExceptionCheck)(JNIEnv*);
4743a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
4753a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jobject     (*NewDirectByteBuffer)(JNIEnv*, void*, jlong);
4763a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void*       (*GetDirectBufferAddress)(JNIEnv*, jobject);
4773a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jlong       (*GetDirectBufferCapacity)(JNIEnv*, jobject);
4783a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
4793a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    /* added in JNI 1.6 */
4803a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jobjectRefType (*GetObjectRefType)(JNIEnv*, jobject);
4813a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount};
4823a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
4833a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount/*
4843a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount * C++ object wrapper.
4853a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount *
4863a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount * This is usually overlaid on a C struct whose first element is a
4873a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount * JNINativeInterface*.  We rely somewhat on compiler behavior.
4883a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount */
4893a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccountstruct _JNIEnv {
4903a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    /* do not rename this; it does not seem to be entirely opaque */
4913a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    const struct JNINativeInterface* functions;
4923a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
4933a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#if defined(__cplusplus)
4943a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
4953a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint GetVersion()
4963a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetVersion(this); }
4973a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
4983a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jclass DefineClass(const char *name, jobject loader, const jbyte* buf,
4993a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        jsize bufLen)
5003a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->DefineClass(this, name, loader, buf, bufLen); }
5013a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
5023a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jclass FindClass(const char* name)
5033a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->FindClass(this, name); }
5043a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
5053a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jmethodID FromReflectedMethod(jobject method)
5063a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->FromReflectedMethod(this, method); }
5073a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
5083a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jfieldID FromReflectedField(jobject field)
5093a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->FromReflectedField(this, field); }
5103a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
5113a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jobject ToReflectedMethod(jclass cls, jmethodID methodID, jboolean isStatic)
5123a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->ToReflectedMethod(this, cls, methodID, isStatic); }
5133a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
5143a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jclass GetSuperclass(jclass clazz)
5153a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetSuperclass(this, clazz); }
5163a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
5173a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jboolean IsAssignableFrom(jclass clazz1, jclass clazz2)
5183a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->IsAssignableFrom(this, clazz1, clazz2); }
5193a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
5203a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jobject ToReflectedField(jclass cls, jfieldID fieldID, jboolean isStatic)
5213a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->ToReflectedField(this, cls, fieldID, isStatic); }
5223a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
5233a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint Throw(jthrowable obj)
5243a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->Throw(this, obj); }
5253a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
5263a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint ThrowNew(jclass clazz, const char* message)
5273a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->ThrowNew(this, clazz, message); }
5283a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
5293a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jthrowable ExceptionOccurred()
5303a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->ExceptionOccurred(this); }
5313a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
5323a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void ExceptionDescribe()
5333a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->ExceptionDescribe(this); }
5343a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
5353a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void ExceptionClear()
5363a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->ExceptionClear(this); }
5373a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
5383a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void FatalError(const char* msg)
5393a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->FatalError(this, msg); }
5403a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
5413a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint PushLocalFrame(jint capacity)
5423a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->PushLocalFrame(this, capacity); }
5433a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
5443a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jobject PopLocalFrame(jobject result)
5453a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->PopLocalFrame(this, result); }
5463a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
5473a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jobject NewGlobalRef(jobject obj)
5483a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->NewGlobalRef(this, obj); }
5493a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
5503a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void DeleteGlobalRef(jobject globalRef)
5513a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->DeleteGlobalRef(this, globalRef); }
5523a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
5533a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void DeleteLocalRef(jobject localRef)
5543a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->DeleteLocalRef(this, localRef); }
5553a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
5563a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jboolean IsSameObject(jobject ref1, jobject ref2)
5573a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->IsSameObject(this, ref1, ref2); }
5583a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
5593a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jobject NewLocalRef(jobject ref)
5603a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->NewLocalRef(this, ref); }
5613a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
5623a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint EnsureLocalCapacity(jint capacity)
5633a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->EnsureLocalCapacity(this, capacity); }
5643a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
5653a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jobject AllocObject(jclass clazz)
5663a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->AllocObject(this, clazz); }
5673a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
5683a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jobject NewObject(jclass clazz, jmethodID methodID, ...)
5693a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    {
5703a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        va_list args;
5713a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        va_start(args, methodID);
5723a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        jobject result = functions->NewObjectV(this, clazz, methodID, args);
5733a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        va_end(args);
5743a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        return result;
5753a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    }
5763a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
5773a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jobject NewObjectV(jclass clazz, jmethodID methodID, va_list args)
5783a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->NewObjectV(this, clazz, methodID, args); }
5793a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
5803a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jobject NewObjectA(jclass clazz, jmethodID methodID, jvalue* args)
5813a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->NewObjectA(this, clazz, methodID, args); }
5823a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
5833a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jclass GetObjectClass(jobject obj)
5843a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetObjectClass(this, obj); }
5853a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
5863a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jboolean IsInstanceOf(jobject obj, jclass clazz)
5873a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->IsInstanceOf(this, obj, clazz); }
5883a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
5893a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jmethodID GetMethodID(jclass clazz, const char* name, const char* sig)
5903a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetMethodID(this, clazz, name, sig); }
5913a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
5923a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define CALL_TYPE_METHOD(_jtype, _jname)                                    \
5933a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    _jtype Call##_jname##Method(jobject obj, jmethodID methodID, ...)       \
5943a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    {                                                                       \
5953a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        _jtype result;                                                      \
5963a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        va_list args;                                                       \
5973a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        va_start(args, methodID);                                           \
5983a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        result = functions->Call##_jname##MethodV(this, obj, methodID,      \
5993a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                    args);                                                  \
6003a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        va_end(args);                                                       \
6013a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        return result;                                                      \
6023a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    }
6033a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define CALL_TYPE_METHODV(_jtype, _jname)                                   \
6043a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    _jtype Call##_jname##MethodV(jobject obj, jmethodID methodID,           \
6053a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        va_list args)                                                       \
6063a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->Call##_jname##MethodV(this, obj, methodID, args); }
6073a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define CALL_TYPE_METHODA(_jtype, _jname)                                   \
6083a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    _jtype Call##_jname##MethodA(jobject obj, jmethodID methodID,           \
6093a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        jvalue* args)                                                       \
6103a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->Call##_jname##MethodA(this, obj, methodID, args); }
6113a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
6123a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define CALL_TYPE(_jtype, _jname)                                           \
6133a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    CALL_TYPE_METHOD(_jtype, _jname)                                        \
6143a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    CALL_TYPE_METHODV(_jtype, _jname)                                       \
6153a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    CALL_TYPE_METHODA(_jtype, _jname)
6163a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
6173a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    CALL_TYPE(jobject, Object)
6183a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    CALL_TYPE(jboolean, Boolean)
6193a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    CALL_TYPE(jbyte, Byte)
6203a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    CALL_TYPE(jchar, Char)
6213a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    CALL_TYPE(jshort, Short)
6223a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    CALL_TYPE(jint, Int)
6233a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    CALL_TYPE(jlong, Long)
6243a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    CALL_TYPE(jfloat, Float)
6253a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    CALL_TYPE(jdouble, Double)
6263a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
6273a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void CallVoidMethod(jobject obj, jmethodID methodID, ...)
6283a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    {
6293a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        va_list args;
6303a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        va_start(args, methodID);
6313a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        functions->CallVoidMethodV(this, obj, methodID, args);
6323a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        va_end(args);
6333a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    }
6343a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void CallVoidMethodV(jobject obj, jmethodID methodID, va_list args)
6353a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->CallVoidMethodV(this, obj, methodID, args); }
6363a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void CallVoidMethodA(jobject obj, jmethodID methodID, jvalue* args)
6373a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->CallVoidMethodA(this, obj, methodID, args); }
6383a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
6393a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define CALL_NONVIRT_TYPE_METHOD(_jtype, _jname)                            \
6403a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    _jtype CallNonvirtual##_jname##Method(jobject obj, jclass clazz,        \
6413a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        jmethodID methodID, ...)                                            \
6423a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    {                                                                       \
6433a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        _jtype result;                                                      \
6443a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        va_list args;                                                       \
6453a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        va_start(args, methodID);                                           \
6463a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        result = functions->CallNonvirtual##_jname##MethodV(this, obj,      \
6473a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                    clazz, methodID, args);                                 \
6483a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        va_end(args);                                                       \
6493a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        return result;                                                      \
6503a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    }
6513a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define CALL_NONVIRT_TYPE_METHODV(_jtype, _jname)                           \
6523a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    _jtype CallNonvirtual##_jname##MethodV(jobject obj, jclass clazz,       \
6533a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        jmethodID methodID, va_list args)                                   \
6543a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->CallNonvirtual##_jname##MethodV(this, obj, clazz,   \
6553a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        methodID, args); }
6563a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define CALL_NONVIRT_TYPE_METHODA(_jtype, _jname)                           \
6573a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    _jtype CallNonvirtual##_jname##MethodA(jobject obj, jclass clazz,       \
6583a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        jmethodID methodID, jvalue* args)                                   \
6593a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->CallNonvirtual##_jname##MethodA(this, obj, clazz,   \
6603a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        methodID, args); }
6613a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
6623a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define CALL_NONVIRT_TYPE(_jtype, _jname)                                   \
6633a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    CALL_NONVIRT_TYPE_METHOD(_jtype, _jname)                                \
6643a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    CALL_NONVIRT_TYPE_METHODV(_jtype, _jname)                               \
6653a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    CALL_NONVIRT_TYPE_METHODA(_jtype, _jname)
6663a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
6673a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    CALL_NONVIRT_TYPE(jobject, Object)
6683a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    CALL_NONVIRT_TYPE(jboolean, Boolean)
6693a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    CALL_NONVIRT_TYPE(jbyte, Byte)
6703a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    CALL_NONVIRT_TYPE(jchar, Char)
6713a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    CALL_NONVIRT_TYPE(jshort, Short)
6723a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    CALL_NONVIRT_TYPE(jint, Int)
6733a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    CALL_NONVIRT_TYPE(jlong, Long)
6743a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    CALL_NONVIRT_TYPE(jfloat, Float)
6753a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    CALL_NONVIRT_TYPE(jdouble, Double)
6763a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
6773a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void CallNonvirtualVoidMethod(jobject obj, jclass clazz,
6783a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        jmethodID methodID, ...)
6793a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    {
6803a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        va_list args;
6813a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        va_start(args, methodID);
6823a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        functions->CallNonvirtualVoidMethodV(this, obj, clazz, methodID, args);
6833a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        va_end(args);
6843a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    }
6853a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void CallNonvirtualVoidMethodV(jobject obj, jclass clazz,
6863a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        jmethodID methodID, va_list args)
6873a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->CallNonvirtualVoidMethodV(this, obj, clazz, methodID, args); }
6883a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void CallNonvirtualVoidMethodA(jobject obj, jclass clazz,
6893a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        jmethodID methodID, jvalue* args)
6903a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->CallNonvirtualVoidMethodA(this, obj, clazz, methodID, args); }
6913a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
6923a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jfieldID GetFieldID(jclass clazz, const char* name, const char* sig)
6933a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetFieldID(this, clazz, name, sig); }
6943a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
6953a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jobject GetObjectField(jobject obj, jfieldID fieldID)
6963a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetObjectField(this, obj, fieldID); }
6973a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jboolean GetBooleanField(jobject obj, jfieldID fieldID)
6983a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetBooleanField(this, obj, fieldID); }
6993a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jbyte GetByteField(jobject obj, jfieldID fieldID)
7003a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetByteField(this, obj, fieldID); }
7013a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jchar GetCharField(jobject obj, jfieldID fieldID)
7023a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetCharField(this, obj, fieldID); }
7033a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jshort GetShortField(jobject obj, jfieldID fieldID)
7043a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetShortField(this, obj, fieldID); }
7053a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint GetIntField(jobject obj, jfieldID fieldID)
7063a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetIntField(this, obj, fieldID); }
7073a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jlong GetLongField(jobject obj, jfieldID fieldID)
7083a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetLongField(this, obj, fieldID); }
7093a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jfloat GetFloatField(jobject obj, jfieldID fieldID)
7103a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetFloatField(this, obj, fieldID); }
7113a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jdouble GetDoubleField(jobject obj, jfieldID fieldID)
7123a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetDoubleField(this, obj, fieldID); }
7133a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
7143a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void SetObjectField(jobject obj, jfieldID fieldID, jobject value)
7153a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->SetObjectField(this, obj, fieldID, value); }
7163a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void SetBooleanField(jobject obj, jfieldID fieldID, jboolean value)
7173a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->SetBooleanField(this, obj, fieldID, value); }
7183a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void SetByteField(jobject obj, jfieldID fieldID, jbyte value)
7193a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->SetByteField(this, obj, fieldID, value); }
7203a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void SetCharField(jobject obj, jfieldID fieldID, jchar value)
7213a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->SetCharField(this, obj, fieldID, value); }
7223a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void SetShortField(jobject obj, jfieldID fieldID, jshort value)
7233a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->SetShortField(this, obj, fieldID, value); }
7243a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void SetIntField(jobject obj, jfieldID fieldID, jint value)
7253a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->SetIntField(this, obj, fieldID, value); }
7263a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void SetLongField(jobject obj, jfieldID fieldID, jlong value)
7273a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->SetLongField(this, obj, fieldID, value); }
7283a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void SetFloatField(jobject obj, jfieldID fieldID, jfloat value)
7293a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->SetFloatField(this, obj, fieldID, value); }
7303a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void SetDoubleField(jobject obj, jfieldID fieldID, jdouble value)
7313a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->SetDoubleField(this, obj, fieldID, value); }
7323a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
7333a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jmethodID GetStaticMethodID(jclass clazz, const char* name, const char* sig)
7343a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetStaticMethodID(this, clazz, name, sig); }
7353a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
7363a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define CALL_STATIC_TYPE_METHOD(_jtype, _jname)                             \
7373a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    _jtype CallStatic##_jname##Method(jclass clazz, jmethodID methodID,     \
7383a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        ...)                                                                \
7393a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    {                                                                       \
7403a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        _jtype result;                                                      \
7413a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        va_list args;                                                       \
7423a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        va_start(args, methodID);                                           \
7433a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        result = functions->CallStatic##_jname##MethodV(this, clazz,        \
7443a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount                    methodID, args);                                        \
7453a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        va_end(args);                                                       \
7463a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        return result;                                                      \
7473a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    }
7483a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define CALL_STATIC_TYPE_METHODV(_jtype, _jname)                            \
7493a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    _jtype CallStatic##_jname##MethodV(jclass clazz, jmethodID methodID,    \
7503a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        va_list args)                                                       \
7513a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->CallStatic##_jname##MethodV(this, clazz, methodID,  \
7523a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        args); }
7533a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define CALL_STATIC_TYPE_METHODA(_jtype, _jname)                            \
7543a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    _jtype CallStatic##_jname##MethodA(jclass clazz, jmethodID methodID,    \
7553a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        jvalue* args)                                                       \
7563a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->CallStatic##_jname##MethodA(this, clazz, methodID,  \
7573a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        args); }
7583a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
7593a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define CALL_STATIC_TYPE(_jtype, _jname)                                    \
7603a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    CALL_STATIC_TYPE_METHOD(_jtype, _jname)                                 \
7613a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    CALL_STATIC_TYPE_METHODV(_jtype, _jname)                                \
7623a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    CALL_STATIC_TYPE_METHODA(_jtype, _jname)
7633a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
7643a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    CALL_STATIC_TYPE(jobject, Object)
7653a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    CALL_STATIC_TYPE(jboolean, Boolean)
7663a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    CALL_STATIC_TYPE(jbyte, Byte)
7673a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    CALL_STATIC_TYPE(jchar, Char)
7683a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    CALL_STATIC_TYPE(jshort, Short)
7693a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    CALL_STATIC_TYPE(jint, Int)
7703a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    CALL_STATIC_TYPE(jlong, Long)
7713a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    CALL_STATIC_TYPE(jfloat, Float)
7723a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    CALL_STATIC_TYPE(jdouble, Double)
7733a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
7743a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void CallStaticVoidMethod(jclass clazz, jmethodID methodID, ...)
7753a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    {
7763a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        va_list args;
7773a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        va_start(args, methodID);
7783a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        functions->CallStaticVoidMethodV(this, clazz, methodID, args);
7793a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        va_end(args);
7803a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    }
7813a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void CallStaticVoidMethodV(jclass clazz, jmethodID methodID, va_list args)
7823a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->CallStaticVoidMethodV(this, clazz, methodID, args); }
7833a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void CallStaticVoidMethodA(jclass clazz, jmethodID methodID, jvalue* args)
7843a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->CallStaticVoidMethodA(this, clazz, methodID, args); }
7853a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
7863a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jfieldID GetStaticFieldID(jclass clazz, const char* name, const char* sig)
7873a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetStaticFieldID(this, clazz, name, sig); }
7883a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
7893a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jobject GetStaticObjectField(jclass clazz, jfieldID fieldID)
7903a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetStaticObjectField(this, clazz, fieldID); }
7913a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jboolean GetStaticBooleanField(jclass clazz, jfieldID fieldID)
7923a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetStaticBooleanField(this, clazz, fieldID); }
7933a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jbyte GetStaticByteField(jclass clazz, jfieldID fieldID)
7943a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetStaticByteField(this, clazz, fieldID); }
7953a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jchar GetStaticCharField(jclass clazz, jfieldID fieldID)
7963a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetStaticCharField(this, clazz, fieldID); }
7973a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jshort GetStaticShortField(jclass clazz, jfieldID fieldID)
7983a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetStaticShortField(this, clazz, fieldID); }
7993a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint GetStaticIntField(jclass clazz, jfieldID fieldID)
8003a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetStaticIntField(this, clazz, fieldID); }
8013a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jlong GetStaticLongField(jclass clazz, jfieldID fieldID)
8023a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetStaticLongField(this, clazz, fieldID); }
8033a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jfloat GetStaticFloatField(jclass clazz, jfieldID fieldID)
8043a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetStaticFloatField(this, clazz, fieldID); }
8053a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jdouble GetStaticDoubleField(jclass clazz, jfieldID fieldID)
8063a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetStaticDoubleField(this, clazz, fieldID); }
8073a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
8083a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void SetStaticObjectField(jclass clazz, jfieldID fieldID, jobject value)
8093a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->SetStaticObjectField(this, clazz, fieldID, value); }
8103a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void SetStaticBooleanField(jclass clazz, jfieldID fieldID, jboolean value)
8113a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->SetStaticBooleanField(this, clazz, fieldID, value); }
8123a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void SetStaticByteField(jclass clazz, jfieldID fieldID, jbyte value)
8133a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->SetStaticByteField(this, clazz, fieldID, value); }
8143a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void SetStaticCharField(jclass clazz, jfieldID fieldID, jchar value)
8153a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->SetStaticCharField(this, clazz, fieldID, value); }
8163a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void SetStaticShortField(jclass clazz, jfieldID fieldID, jshort value)
8173a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->SetStaticShortField(this, clazz, fieldID, value); }
8183a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void SetStaticIntField(jclass clazz, jfieldID fieldID, jint value)
8193a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->SetStaticIntField(this, clazz, fieldID, value); }
8203a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void SetStaticLongField(jclass clazz, jfieldID fieldID, jlong value)
8213a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->SetStaticLongField(this, clazz, fieldID, value); }
8223a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void SetStaticFloatField(jclass clazz, jfieldID fieldID, jfloat value)
8233a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->SetStaticFloatField(this, clazz, fieldID, value); }
8243a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void SetStaticDoubleField(jclass clazz, jfieldID fieldID, jdouble value)
8253a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->SetStaticDoubleField(this, clazz, fieldID, value); }
8263a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
8273a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jstring NewString(const jchar* unicodeChars, jsize len)
8283a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->NewString(this, unicodeChars, len); }
8293a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
8303a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jsize GetStringLength(jstring string)
8313a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetStringLength(this, string); }
8323a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
8333a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    const jchar* GetStringChars(jstring string, jboolean* isCopy)
8343a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetStringChars(this, string, isCopy); }
8353a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
8363a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void ReleaseStringChars(jstring string, const jchar* chars)
8373a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->ReleaseStringChars(this, string, chars); }
8383a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
8393a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jstring NewStringUTF(const char* bytes)
8403a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->NewStringUTF(this, bytes); }
8413a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
8423a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jsize GetStringUTFLength(jstring string)
8433a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetStringUTFLength(this, string); }
8443a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
8453a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    const char* GetStringUTFChars(jstring string, jboolean* isCopy)
8463a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetStringUTFChars(this, string, isCopy); }
8473a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
8483a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void ReleaseStringUTFChars(jstring string, const char* utf)
8493a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->ReleaseStringUTFChars(this, string, utf); }
8503a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
8513a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jsize GetArrayLength(jarray array)
8523a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetArrayLength(this, array); }
8533a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
8543a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jobjectArray NewObjectArray(jsize length, jclass elementClass,
8553a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        jobject initialElement)
8563a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->NewObjectArray(this, length, elementClass,
8573a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        initialElement); }
8583a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
8593a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jobject GetObjectArrayElement(jobjectArray array, jsize index)
8603a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetObjectArrayElement(this, array, index); }
8613a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
8623a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void SetObjectArrayElement(jobjectArray array, jsize index, jobject value)
8633a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->SetObjectArrayElement(this, array, index, value); }
8643a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
8653a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jbooleanArray NewBooleanArray(jsize length)
8663a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->NewBooleanArray(this, length); }
8673a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jbyteArray NewByteArray(jsize length)
8683a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->NewByteArray(this, length); }
8693a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jcharArray NewCharArray(jsize length)
8703a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->NewCharArray(this, length); }
8713a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jshortArray NewShortArray(jsize length)
8723a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->NewShortArray(this, length); }
8733a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jintArray NewIntArray(jsize length)
8743a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->NewIntArray(this, length); }
8753a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jlongArray NewLongArray(jsize length)
8763a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->NewLongArray(this, length); }
8773a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jfloatArray NewFloatArray(jsize length)
8783a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->NewFloatArray(this, length); }
8793a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jdoubleArray NewDoubleArray(jsize length)
8803a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->NewDoubleArray(this, length); }
8813a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
8823a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jboolean* GetBooleanArrayElements(jbooleanArray array, jboolean* isCopy)
8833a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetBooleanArrayElements(this, array, isCopy); }
8843a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jbyte* GetByteArrayElements(jbyteArray array, jboolean* isCopy)
8853a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetByteArrayElements(this, array, isCopy); }
8863a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jchar* GetCharArrayElements(jcharArray array, jboolean* isCopy)
8873a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetCharArrayElements(this, array, isCopy); }
8883a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jshort* GetShortArrayElements(jshortArray array, jboolean* isCopy)
8893a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetShortArrayElements(this, array, isCopy); }
8903a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint* GetIntArrayElements(jintArray array, jboolean* isCopy)
8913a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetIntArrayElements(this, array, isCopy); }
8923a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jlong* GetLongArrayElements(jlongArray array, jboolean* isCopy)
8933a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetLongArrayElements(this, array, isCopy); }
8943a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jfloat* GetFloatArrayElements(jfloatArray array, jboolean* isCopy)
8953a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetFloatArrayElements(this, array, isCopy); }
8963a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jdouble* GetDoubleArrayElements(jdoubleArray array, jboolean* isCopy)
8973a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetDoubleArrayElements(this, array, isCopy); }
8983a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
8993a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void ReleaseBooleanArrayElements(jbooleanArray array, jboolean* elems,
9003a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        jint mode)
9013a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->ReleaseBooleanArrayElements(this, array, elems, mode); }
9023a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void ReleaseByteArrayElements(jbyteArray array, jbyte* elems,
9033a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        jint mode)
9043a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->ReleaseByteArrayElements(this, array, elems, mode); }
9053a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void ReleaseCharArrayElements(jcharArray array, jchar* elems,
9063a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        jint mode)
9073a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->ReleaseCharArrayElements(this, array, elems, mode); }
9083a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void ReleaseShortArrayElements(jshortArray array, jshort* elems,
9093a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        jint mode)
9103a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->ReleaseShortArrayElements(this, array, elems, mode); }
9113a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void ReleaseIntArrayElements(jintArray array, jint* elems,
9123a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        jint mode)
9133a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->ReleaseIntArrayElements(this, array, elems, mode); }
9143a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void ReleaseLongArrayElements(jlongArray array, jlong* elems,
9153a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        jint mode)
9163a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->ReleaseLongArrayElements(this, array, elems, mode); }
9173a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void ReleaseFloatArrayElements(jfloatArray array, jfloat* elems,
9183a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        jint mode)
9193a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->ReleaseFloatArrayElements(this, array, elems, mode); }
9203a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void ReleaseDoubleArrayElements(jdoubleArray array, jdouble* elems,
9213a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        jint mode)
9223a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->ReleaseDoubleArrayElements(this, array, elems, mode); }
9233a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
9243a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void GetBooleanArrayRegion(jbooleanArray array, jsize start, jsize len,
9253a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        jboolean* buf)
9263a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->GetBooleanArrayRegion(this, array, start, len, buf); }
9273a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void GetByteArrayRegion(jbyteArray array, jsize start, jsize len,
9283a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        jbyte* buf)
9293a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->GetByteArrayRegion(this, array, start, len, buf); }
9303a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void GetCharArrayRegion(jcharArray array, jsize start, jsize len,
9313a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        jchar* buf)
9323a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->GetCharArrayRegion(this, array, start, len, buf); }
9333a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void GetShortArrayRegion(jshortArray array, jsize start, jsize len,
9343a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        jshort* buf)
9353a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->GetShortArrayRegion(this, array, start, len, buf); }
9363a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void GetIntArrayRegion(jintArray array, jsize start, jsize len,
9373a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        jint* buf)
9383a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->GetIntArrayRegion(this, array, start, len, buf); }
9393a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void GetLongArrayRegion(jlongArray array, jsize start, jsize len,
9403a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        jlong* buf)
9413a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->GetLongArrayRegion(this, array, start, len, buf); }
9423a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void GetFloatArrayRegion(jfloatArray array, jsize start, jsize len,
9433a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        jfloat* buf)
9443a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->GetFloatArrayRegion(this, array, start, len, buf); }
9453a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void GetDoubleArrayRegion(jdoubleArray array, jsize start, jsize len,
9463a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        jdouble* buf)
9473a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->GetDoubleArrayRegion(this, array, start, len, buf); }
9483a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
9493a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void SetBooleanArrayRegion(jbooleanArray array, jsize start, jsize len,
9503a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        const jboolean* buf)
9513a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->SetBooleanArrayRegion(this, array, start, len, buf); }
9523a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void SetByteArrayRegion(jbyteArray array, jsize start, jsize len,
9533a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        const jbyte* buf)
9543a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->SetByteArrayRegion(this, array, start, len, buf); }
9553a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void SetCharArrayRegion(jcharArray array, jsize start, jsize len,
9563a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        const jchar* buf)
9573a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->SetCharArrayRegion(this, array, start, len, buf); }
9583a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void SetShortArrayRegion(jshortArray array, jsize start, jsize len,
9593a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        const jshort* buf)
9603a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->SetShortArrayRegion(this, array, start, len, buf); }
9613a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void SetIntArrayRegion(jintArray array, jsize start, jsize len,
9623a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        const jint* buf)
9633a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->SetIntArrayRegion(this, array, start, len, buf); }
9643a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void SetLongArrayRegion(jlongArray array, jsize start, jsize len,
9653a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        const jlong* buf)
9663a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->SetLongArrayRegion(this, array, start, len, buf); }
9673a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void SetFloatArrayRegion(jfloatArray array, jsize start, jsize len,
9683a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        const jfloat* buf)
9693a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->SetFloatArrayRegion(this, array, start, len, buf); }
9703a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void SetDoubleArrayRegion(jdoubleArray array, jsize start, jsize len,
9713a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        const jdouble* buf)
9723a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->SetDoubleArrayRegion(this, array, start, len, buf); }
9733a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
9743a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint RegisterNatives(jclass clazz, const JNINativeMethod* methods,
9753a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount        jint nMethods)
9763a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->RegisterNatives(this, clazz, methods, nMethods); }
9773a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
9783a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint UnregisterNatives(jclass clazz)
9793a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->UnregisterNatives(this, clazz); }
9803a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
9813a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint MonitorEnter(jobject obj)
9823a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->MonitorEnter(this, obj); }
9833a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
9843a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint MonitorExit(jobject obj)
9853a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->MonitorExit(this, obj); }
9863a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
9873a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint GetJavaVM(JavaVM** vm)
9883a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetJavaVM(this, vm); }
9893a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
9903a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void GetStringRegion(jstring str, jsize start, jsize len, jchar* buf)
9913a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->GetStringRegion(this, str, start, len, buf); }
9923a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
9933a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void GetStringUTFRegion(jstring str, jsize start, jsize len, char* buf)
9943a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetStringUTFRegion(this, str, start, len, buf); }
9953a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
9963a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void* GetPrimitiveArrayCritical(jarray array, jboolean* isCopy)
9973a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetPrimitiveArrayCritical(this, array, isCopy); }
9983a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
9993a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void ReleasePrimitiveArrayCritical(jarray array, void* carray, jint mode)
10003a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->ReleasePrimitiveArrayCritical(this, array, carray, mode); }
10013a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
10023a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    const jchar* GetStringCritical(jstring string, jboolean* isCopy)
10033a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetStringCritical(this, string, isCopy); }
10043a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
10053a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void ReleaseStringCritical(jstring string, const jchar* carray)
10063a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->ReleaseStringCritical(this, string, carray); }
10073a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
10083a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jweak NewWeakGlobalRef(jobject obj)
10093a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->NewWeakGlobalRef(this, obj); }
10103a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
10113a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void DeleteWeakGlobalRef(jweak obj)
10123a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { functions->DeleteWeakGlobalRef(this, obj); }
10133a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
10143a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jboolean ExceptionCheck()
10153a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->ExceptionCheck(this); }
10163a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
10173a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jobject NewDirectByteBuffer(void* address, jlong capacity)
10183a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->NewDirectByteBuffer(this, address, capacity); }
10193a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
10203a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void* GetDirectBufferAddress(jobject buf)
10213a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetDirectBufferAddress(this, buf); }
10223a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
10233a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jlong GetDirectBufferCapacity(jobject buf)
10243a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetDirectBufferCapacity(this, buf); }
10253a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
10263a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    /* added in JNI 1.6 */
10273a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jobjectRefType GetObjectRefType(jobject obj)
10283a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetObjectRefType(this, obj); }
10293a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#endif /*__cplusplus*/
10303a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount};
10313a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
10323a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
10333a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount/*
10343a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount * JNI invocation interface.
10353a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount */
10363a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccountstruct JNIInvokeInterface {
10373a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void*       reserved0;
10383a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void*       reserved1;
10393a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void*       reserved2;
10403a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
10413a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint        (*DestroyJavaVM)(JavaVM*);
10423a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint        (*AttachCurrentThread)(JavaVM*, JNIEnv**, void*);
10433a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint        (*DetachCurrentThread)(JavaVM*);
10443a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint        (*GetEnv)(JavaVM*, void**, jint);
10453a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint        (*AttachCurrentThreadAsDaemon)(JavaVM*, JNIEnv**, void*);
10463a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount};
10473a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
10483a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount/*
10493a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount * C++ version.
10503a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount */
10513a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccountstruct _JavaVM {
10523a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    const struct JNIInvokeInterface* functions;
10533a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
10543a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#if defined(__cplusplus)
10553a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint DestroyJavaVM()
10563a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->DestroyJavaVM(this); }
10573a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint AttachCurrentThread(JNIEnv** p_env, void* thr_args)
10583a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->AttachCurrentThread(this, p_env, thr_args); }
10593a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint DetachCurrentThread()
10603a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->DetachCurrentThread(this); }
10613a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint GetEnv(void** env, jint version)
10623a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->GetEnv(this, env, version); }
10633a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint AttachCurrentThreadAsDaemon(JNIEnv** p_env, void* thr_args)
10643a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    { return functions->AttachCurrentThreadAsDaemon(this, p_env, thr_args); }
10653a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#endif /*__cplusplus*/
10663a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount};
10673a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
10683a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccountstruct JavaVMAttachArgs {
10693a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint        version;    /* must be >= JNI_VERSION_1_2 */
10703a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    const char* name;       /* NULL or name of thread as modified UTF-8 str */
10713a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jobject     group;      /* global ref of a ThreadGroup object, or NULL */
10723a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount};
10733a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef struct JavaVMAttachArgs JavaVMAttachArgs;
10743a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
10753a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount/*
10763a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount * JNI 1.2+ initialization.  (As of 1.6, the pre-1.2 structures are no
10773a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount * longer supported.)
10783a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount */
10793a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef struct JavaVMOption {
10803a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    const char* optionString;
10813a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    void*       extraInfo;
10823a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount} JavaVMOption;
10833a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
10843a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccounttypedef struct JavaVMInitArgs {
10853a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint        version;    /* use JNI_VERSION_1_2 or later */
10863a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
10873a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jint        nOptions;
10883a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    JavaVMOption* options;
10893a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount    jboolean    ignoreUnrecognized;
10903a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount} JavaVMInitArgs;
10913a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
10923a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#ifdef __cplusplus
10933a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccountextern "C" {
10943a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#endif
10953a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount/*
10963a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount * VM initialization functions.
10973a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount *
10983a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount * Note these are the only symbols exported for JNI by the VM.
10993a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount */
11003a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccountjint JNI_GetDefaultJavaVMInitArgs(void*);
11013a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccountjint JNI_CreateJavaVM(JavaVM**, JNIEnv**, void*);
11023a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccountjint JNI_GetCreatedJavaVMs(JavaVM**, jsize, jsize*);
11033a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
11043a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount/*
11053a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount * Prototypes for functions exported by loadable shared libs.  These are
11063a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount * called by JNI, not provided by JNI.
11073a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount */
11083a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccountjint JNI_OnLoad(JavaVM* vm, void* reserved);
11093a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccountvoid JNI_OnUnload(JavaVM* vm, void* reserved);
11103a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
11113a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#ifdef __cplusplus
11123a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount}
11133a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#endif
11143a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
11153a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
11163a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount/*
11173a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount * Manifest constants.
11183a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount */
11193a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define JNI_FALSE   0
11203a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define JNI_TRUE    1
11213a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
11223a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define JNI_VERSION_1_1 0x00010001
11233a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define JNI_VERSION_1_2 0x00010002
11243a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define JNI_VERSION_1_4 0x00010004
11253a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define JNI_VERSION_1_6 0x00010006
11263a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
11273a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define JNI_OK          (0)         /* no error */
11283a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define JNI_ERR         (-1)        /* generic error */
11293a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define JNI_EDETACHED   (-2)        /* thread detached from the VM */
11303a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define JNI_EVERSION    (-3)        /* JNI version error */
11313a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
11323a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define JNI_COMMIT      1           /* copy content, do not free buffer */
11333a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define JNI_ABORT       2           /* free buffer w/o copying back */
11343a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
11353a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount/* need these for Windows-aware headers */
11363a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define JNIIMPORT
11373a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define JNIEXPORT
11383a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#define JNICALL
11393a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount
11403a5dffc441568676ce19c6d3154a8c8a17afa323android-build SharedAccount#endif /*_JNI_H*/
1141