jni.h revision 5821806d5e7f356e8fa4b058a389a808ea183019
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* ***** BEGIN LICENSE BLOCK *****
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Version: MPL 1.1/GPL 2.0/LGPL 2.1
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * The contents of this file are subject to the Mozilla Public License Version
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 1.1 (the "License"); you may not use this file except in compliance with
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * the License. You may obtain a copy of the License at
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * http://www.mozilla.org/MPL/
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Software distributed under the License is distributed on an "AS IS" basis,
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * for the specific language governing rights and limitations under the
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * License.
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * The Original Code is the Java Runtime Interface.
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * The Initial Developer of the Original Code is
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Netscape Communications Corporation and Sun Microsystems, Inc.
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Portions created by the Initial Developer are Copyright (C) 1993-1996
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * the Initial Developer. All Rights Reserved.
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Contributor(s):
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Alternatively, the contents of this file may be used under the terms of
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * either the GNU General Public License Version 2 or later (the "GPL"), or
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * in which case the provisions of the GPL or the LGPL are applicable instead
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * of those above. If you wish to allow use of your version of this file only
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * under the terms of either the GPL or the LGPL, and not to allow others to
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * use your version of this file under the terms of the MPL, indicate your
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * decision by deleting the provisions above and replace them with the notice
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * and other provisions required by the GPL or the LGPL. If you do not delete
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * the provisions above, a recipient may use your version of this file under
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * the terms of any one of the MPL, the GPL or the LGPL.
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * ***** END LICENSE BLOCK ***** */
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef JNI_H
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define JNI_H
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <stdio.h>
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <stdarg.h>
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* jni_md.h contains the machine-dependent typedefs for jbyte, jint
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   and jlong */
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "jni_md.h"
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __cplusplus
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern "C" {
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * JNI Types
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef unsigned char	jboolean;
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef unsigned short	jchar;
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef short		jshort;
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef float		jfloat;
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef double		jdouble;
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef jint            jsize;
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __cplusplus
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class _jobject {};
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class _jclass : public _jobject {};
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class _jthrowable : public _jobject {};
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class _jstring : public _jobject {};
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class _jarray : public _jobject {};
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class _jbooleanArray : public _jarray {};
725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class _jbyteArray : public _jarray {};
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class _jcharArray : public _jarray {};
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class _jshortArray : public _jarray {};
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class _jintArray : public _jarray {};
765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class _jlongArray : public _jarray {};
775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class _jfloatArray : public _jarray {};
785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class _jdoubleArray : public _jarray {};
795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class _jobjectArray : public _jarray {};
805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef _jobject *jobject;
825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef _jclass *jclass;
835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef _jthrowable *jthrowable;
845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef _jstring *jstring;
855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef _jarray *jarray;
865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef _jbooleanArray *jbooleanArray;
875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef _jbyteArray *jbyteArray;
885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef _jcharArray *jcharArray;
895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef _jshortArray *jshortArray;
905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef _jintArray *jintArray;
915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef _jlongArray *jlongArray;
925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef _jfloatArray *jfloatArray;
935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef _jdoubleArray *jdoubleArray;
945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef _jobjectArray *jobjectArray;
955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct _jobject;
995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _jobject *jobject;
1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef jobject jclass;
1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef jobject jthrowable;
1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef jobject jstring;
1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef jobject jarray;
1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef jarray jbooleanArray;
1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef jarray jbyteArray;
1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef jarray jcharArray;
1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef jarray jshortArray;
1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef jarray jintArray;
1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef jarray jlongArray;
1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef jarray jfloatArray;
1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef jarray jdoubleArray;
1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef jarray jobjectArray;
1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if 0	/* moved to jri_md.h */
1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef jobject jref; /* For transition---not meant to be part of public
1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			 API anymore.*/
1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef union jvalue {
1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean z;
1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbyte    b;
1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jchar    c;
1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jshort   s;
1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint     i;
1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jlong    j;
1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfloat   f;
1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jdouble  d;
1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject  l;
1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} jvalue;
1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct _jfieldID;
1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _jfieldID *jfieldID;
1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct _jmethodID;
1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _jmethodID *jmethodID;
1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * jboolean constants
1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define JNI_FALSE 0
1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define JNI_TRUE 1
1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * possible return values for JNI functions.
1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define JNI_OK 0
1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define JNI_ERR (-1)
1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * used in ReleaseScalarArrayElements
1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define JNI_COMMIT 1
1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define JNI_ABORT 2
1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * used in RegisterNatives to describe native method name, signature,
1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * and function pointer.
1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct {
1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    char *name;
1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    char *signature;
1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void *fnPtr;
1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} JNINativeMethod;
1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * JNI Native Method Interface.
1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct JNINativeInterface_;
1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct JNIEnv_;
1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __cplusplus
1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef JNIEnv_ JNIEnv;
1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef const struct JNINativeInterface_ *JNIEnv;
1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * JNI Invocation Interface.
1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct JNIInvokeInterface_;
1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct JavaVM_;
1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __cplusplus
1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef JavaVM_ JavaVM;
1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef const struct JNIInvokeInterface_ *JavaVM;
1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct JNINativeInterface_ {
2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void *reserved0;
2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void *reserved1;
2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void *reserved2;
2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void *reserved3;
2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint (JNICALL *GetVersion)(JNIEnv *env);
2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jclass (JNICALL *DefineClass)
2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, const char *name, jobject loader, const jbyte *buf,
2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       jsize len);
2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jclass (JNICALL *FindClass)
2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, const char *name);
2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void *reserved4;
2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void *reserved5;
2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void *reserved6;
2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jclass (JNICALL *GetSuperclass)
2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass sub);
2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean (JNICALL *IsAssignableFrom)
2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass sub, jclass sup);
2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void *reserved7;
2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint (JNICALL *Throw)
2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jthrowable obj);
2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint (JNICALL *ThrowNew)
2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, const char *msg);
2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jthrowable (JNICALL *ExceptionOccurred)
2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env);
2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *ExceptionDescribe)
2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env);
2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *ExceptionClear)
2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env);
2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *FatalError)
2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, const char *msg);
2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void *reserved8;
2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void *reserved9;
2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject (JNICALL *NewGlobalRef)
2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject lobj);
2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *DeleteGlobalRef)
2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject gref);
2445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *DeleteLocalRef)
2455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj);
2465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean (JNICALL *IsSameObject)
2475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj1, jobject obj2);
2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void *reserved10;
2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void *reserved11;
2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject (JNICALL *AllocObject)
2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz);
2535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject (JNICALL *NewObject)
2545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
2555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject (JNICALL *NewObjectV)
2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
2575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject (JNICALL *NewObjectA)
2585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
2595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jclass (JNICALL *GetObjectClass)
2615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj);
2625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean (JNICALL *IsInstanceOf)
2635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz);
2645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jmethodID (JNICALL *GetMethodID)
2665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, const char *name, const char *sig);
2675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject (JNICALL *CallObjectMethod)
2695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, ...);
2705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject (JNICALL *CallObjectMethodV)
2715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
2725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject (JNICALL *CallObjectMethodA)
2735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, jvalue * args);
2745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean (JNICALL *CallBooleanMethod)
2765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, ...);
2775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean (JNICALL *CallBooleanMethodV)
2785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
2795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean (JNICALL *CallBooleanMethodA)
2805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, jvalue * args);
2815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbyte (JNICALL *CallByteMethod)
2835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, ...);
2845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbyte (JNICALL *CallByteMethodV)
2855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
2865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbyte (JNICALL *CallByteMethodA)
2875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, jvalue *args);
2885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jchar (JNICALL *CallCharMethod)
2905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, ...);
2915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jchar (JNICALL *CallCharMethodV)
2925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
2935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jchar (JNICALL *CallCharMethodA)
2945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, jvalue *args);
2955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jshort (JNICALL *CallShortMethod)
2975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, ...);
2985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jshort (JNICALL *CallShortMethodV)
2995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
3005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jshort (JNICALL *CallShortMethodA)
3015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, jvalue *args);
3025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint (JNICALL *CallIntMethod)
3045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, ...);
3055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint (JNICALL *CallIntMethodV)
3065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
3075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint (JNICALL *CallIntMethodA)
3085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, jvalue *args);
3095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jlong (JNICALL *CallLongMethod)
3115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, ...);
3125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jlong (JNICALL *CallLongMethodV)
3135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
3145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jlong (JNICALL *CallLongMethodA)
3155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, jvalue *args);
3165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfloat (JNICALL *CallFloatMethod)
3185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, ...);
3195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfloat (JNICALL *CallFloatMethodV)
3205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
3215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfloat (JNICALL *CallFloatMethodA)
3225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, jvalue *args);
3235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jdouble (JNICALL *CallDoubleMethod)
3255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, ...);
3265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jdouble (JNICALL *CallDoubleMethodV)
3275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
3285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jdouble (JNICALL *CallDoubleMethodA)
3295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, jvalue *args);
3305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *CallVoidMethod)
3325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, ...);
3335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *CallVoidMethodV)
3345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
3355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *CallVoidMethodA)
3365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jmethodID methodID, jvalue * args);
3375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject (JNICALL *CallNonvirtualObjectMethod)
3395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
3405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject (JNICALL *CallNonvirtualObjectMethodV)
3415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
3425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       va_list args);
3435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject (JNICALL *CallNonvirtualObjectMethodA)
3445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
3455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       jvalue * args);
3465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean (JNICALL *CallNonvirtualBooleanMethod)
3485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
3495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean (JNICALL *CallNonvirtualBooleanMethodV)
3505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
3515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       va_list args);
3525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean (JNICALL *CallNonvirtualBooleanMethodA)
3535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
3545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       jvalue * args);
3555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbyte (JNICALL *CallNonvirtualByteMethod)
3575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
3585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbyte (JNICALL *CallNonvirtualByteMethodV)
3595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
3605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       va_list args);
3615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbyte (JNICALL *CallNonvirtualByteMethodA)
3625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
3635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       jvalue *args);
3645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jchar (JNICALL *CallNonvirtualCharMethod)
3665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
3675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jchar (JNICALL *CallNonvirtualCharMethodV)
3685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
3695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       va_list args);
3705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jchar (JNICALL *CallNonvirtualCharMethodA)
3715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
3725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       jvalue *args);
3735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jshort (JNICALL *CallNonvirtualShortMethod)
3755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
3765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jshort (JNICALL *CallNonvirtualShortMethodV)
3775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
3785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       va_list args);
3795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jshort (JNICALL *CallNonvirtualShortMethodA)
3805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
3815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       jvalue *args);
3825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint (JNICALL *CallNonvirtualIntMethod)
3845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
3855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint (JNICALL *CallNonvirtualIntMethodV)
3865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
3875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       va_list args);
3885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint (JNICALL *CallNonvirtualIntMethodA)
3895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
3905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       jvalue *args);
3915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jlong (JNICALL *CallNonvirtualLongMethod)
3935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
3945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jlong (JNICALL *CallNonvirtualLongMethodV)
3955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
3965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       va_list args);
3975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jlong (JNICALL *CallNonvirtualLongMethodA)
3985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
3995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       jvalue *args);
4005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfloat (JNICALL *CallNonvirtualFloatMethod)
4025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
4035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfloat (JNICALL *CallNonvirtualFloatMethodV)
4045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
4055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       va_list args);
4065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfloat (JNICALL *CallNonvirtualFloatMethodA)
4075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
4085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       jvalue *args);
4095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jdouble (JNICALL *CallNonvirtualDoubleMethod)
4115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
4125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jdouble (JNICALL *CallNonvirtualDoubleMethodV)
4135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
4145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       va_list args);
4155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jdouble (JNICALL *CallNonvirtualDoubleMethodA)
4165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
4175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       jvalue *args);
4185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *CallNonvirtualVoidMethod)
4205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
4215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *CallNonvirtualVoidMethodV)
4225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
4235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       va_list args);
4245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *CallNonvirtualVoidMethodA)
4255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
4265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       jvalue * args);
4275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfieldID (JNICALL *GetFieldID)
4295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, const char *name, const char *sig);
4305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject (JNICALL *GetObjectField)
4325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jfieldID fieldID);
4335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean (JNICALL *GetBooleanField)
4345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jfieldID fieldID);
4355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbyte (JNICALL *GetByteField)
4365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jfieldID fieldID);
4375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jchar (JNICALL *GetCharField)
4385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jfieldID fieldID);
4395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jshort (JNICALL *GetShortField)
4405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jfieldID fieldID);
4415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint (JNICALL *GetIntField)
4425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jfieldID fieldID);
4435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jlong (JNICALL *GetLongField)
4445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jfieldID fieldID);
4455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfloat (JNICALL *GetFloatField)
4465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jfieldID fieldID);
4475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jdouble (JNICALL *GetDoubleField)
4485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jfieldID fieldID);
4495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetObjectField)
4515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jfieldID fieldID, jobject val);
4525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetBooleanField)
4535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jfieldID fieldID, jboolean val);
4545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetByteField)
4555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jfieldID fieldID, jbyte val);
4565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetCharField)
4575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jfieldID fieldID, jchar val);
4585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetShortField)
4595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jfieldID fieldID, jshort val);
4605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetIntField)
4615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jfieldID fieldID, jint val);
4625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetLongField)
4635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jfieldID fieldID, jlong val);
4645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetFloatField)
4655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jfieldID fieldID, jfloat val);
4665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetDoubleField)
4675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj, jfieldID fieldID, jdouble val);
4685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jmethodID (JNICALL *GetStaticMethodID)
4705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, const char *name, const char *sig);
4715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject (JNICALL *CallStaticObjectMethod)
4735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
4745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject (JNICALL *CallStaticObjectMethodV)
4755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
4765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject (JNICALL *CallStaticObjectMethodA)
4775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
4785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean (JNICALL *CallStaticBooleanMethod)
4805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
4815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean (JNICALL *CallStaticBooleanMethodV)
4825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
4835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean (JNICALL *CallStaticBooleanMethodA)
4845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
4855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbyte (JNICALL *CallStaticByteMethod)
4875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
4885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbyte (JNICALL *CallStaticByteMethodV)
4895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
4905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbyte (JNICALL *CallStaticByteMethodA)
4915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
4925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jchar (JNICALL *CallStaticCharMethod)
4945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
4955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jchar (JNICALL *CallStaticCharMethodV)
4965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
4975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jchar (JNICALL *CallStaticCharMethodA)
4985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
4995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jshort (JNICALL *CallStaticShortMethod)
5015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
5025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jshort (JNICALL *CallStaticShortMethodV)
5035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
5045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jshort (JNICALL *CallStaticShortMethodA)
5055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
5065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint (JNICALL *CallStaticIntMethod)
5085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
5095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint (JNICALL *CallStaticIntMethodV)
5105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
5115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint (JNICALL *CallStaticIntMethodA)
5125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
5135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jlong (JNICALL *CallStaticLongMethod)
5155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
5165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jlong (JNICALL *CallStaticLongMethodV)
5175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
5185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jlong (JNICALL *CallStaticLongMethodA)
5195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
5205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfloat (JNICALL *CallStaticFloatMethod)
5225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
5235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfloat (JNICALL *CallStaticFloatMethodV)
5245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
5255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfloat (JNICALL *CallStaticFloatMethodA)
5265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
5275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jdouble (JNICALL *CallStaticDoubleMethod)
5295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
5305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jdouble (JNICALL *CallStaticDoubleMethodV)
5315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
5325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jdouble (JNICALL *CallStaticDoubleMethodA)
5335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
5345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *CallStaticVoidMethod)
5365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass cls, jmethodID methodID, ...);
5375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *CallStaticVoidMethodV)
5385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass cls, jmethodID methodID, va_list args);
5395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *CallStaticVoidMethodA)
5405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass cls, jmethodID methodID, jvalue * args);
5415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfieldID (JNICALL *GetStaticFieldID)
5435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, const char *name, const char *sig);
5445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject (JNICALL *GetStaticObjectField)
5455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jfieldID fieldID);
5465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean (JNICALL *GetStaticBooleanField)
5475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jfieldID fieldID);
5485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbyte (JNICALL *GetStaticByteField)
5495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jfieldID fieldID);
5505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jchar (JNICALL *GetStaticCharField)
5515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jfieldID fieldID);
5525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jshort (JNICALL *GetStaticShortField)
5535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jfieldID fieldID);
5545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint (JNICALL *GetStaticIntField)
5555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jfieldID fieldID);
5565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jlong (JNICALL *GetStaticLongField)
5575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jfieldID fieldID);
5585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfloat (JNICALL *GetStaticFloatField)
5595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jfieldID fieldID);
5605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jdouble (JNICALL *GetStaticDoubleField)
5615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jfieldID fieldID);
5625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetStaticObjectField)
5645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jfieldID fieldID, jobject value);
5655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetStaticBooleanField)
5665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jfieldID fieldID, jboolean value);
5675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetStaticByteField)
5685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jfieldID fieldID, jbyte value);
5695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetStaticCharField)
5705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jfieldID fieldID, jchar value);
5715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetStaticShortField)
5725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jfieldID fieldID, jshort value);
5735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetStaticIntField)
5745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jfieldID fieldID, jint value);
5755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetStaticLongField)
5765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jfieldID fieldID, jlong value);
5775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetStaticFloatField)
5785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jfieldID fieldID, jfloat value);
5795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetStaticDoubleField)
5805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, jfieldID fieldID, jdouble value);
5815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jstring (JNICALL *NewString)
5835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, const jchar *unicode, jsize len);
5845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jsize (JNICALL *GetStringLength)
5855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jstring str);
5865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const jchar *(JNICALL *GetStringChars)
5875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jstring str, jboolean *isCopy);
5885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *ReleaseStringChars)
5895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jstring str, const jchar *chars);
5905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jstring (JNICALL *NewStringUTF)
5925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, const char *utf);
5935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jsize (JNICALL *GetStringUTFLength)
5945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jstring str);
5955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const char* (JNICALL *GetStringUTFChars)
5965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jstring str, jboolean *isCopy);
5975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *ReleaseStringUTFChars)
5985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jstring str, const char* chars);
5995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jsize (JNICALL *GetArrayLength)
6025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jarray array);
6035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobjectArray (JNICALL *NewObjectArray)
6055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jsize len, jclass clazz, jobject init);
6065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject (JNICALL *GetObjectArrayElement)
6075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobjectArray array, jsize index);
6085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetObjectArrayElement)
6095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobjectArray array, jsize index, jobject val);
6105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbooleanArray (JNICALL *NewBooleanArray)
6125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jsize len);
6135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbyteArray (JNICALL *NewByteArray)
6145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jsize len);
6155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jcharArray (JNICALL *NewCharArray)
6165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jsize len);
6175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jshortArray (JNICALL *NewShortArray)
6185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jsize len);
6195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jintArray (JNICALL *NewIntArray)
6205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jsize len);
6215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jlongArray (JNICALL *NewLongArray)
6225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jsize len);
6235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfloatArray (JNICALL *NewFloatArray)
6245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jsize len);
6255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jdoubleArray (JNICALL *NewDoubleArray)
6265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jsize len);
6275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean * (JNICALL *GetBooleanArrayElements)
6295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jbooleanArray array, jboolean *isCopy);
6305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbyte * (JNICALL *GetByteArrayElements)
6315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jbyteArray array, jboolean *isCopy);
6325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jchar * (JNICALL *GetCharArrayElements)
6335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jcharArray array, jboolean *isCopy);
6345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jshort * (JNICALL *GetShortArrayElements)
6355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jshortArray array, jboolean *isCopy);
6365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint * (JNICALL *GetIntArrayElements)
6375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jintArray array, jboolean *isCopy);
6385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jlong * (JNICALL *GetLongArrayElements)
6395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jlongArray array, jboolean *isCopy);
6405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfloat * (JNICALL *GetFloatArrayElements)
6415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jfloatArray array, jboolean *isCopy);
6425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jdouble * (JNICALL *GetDoubleArrayElements)
6435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jdoubleArray array, jboolean *isCopy);
6445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *ReleaseBooleanArrayElements)
6465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jbooleanArray array, jboolean *elems, jint mode);
6475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *ReleaseByteArrayElements)
6485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jbyteArray array, jbyte *elems, jint mode);
6495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *ReleaseCharArrayElements)
6505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jcharArray array, jchar *elems, jint mode);
6515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *ReleaseShortArrayElements)
6525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jshortArray array, jshort *elems, jint mode);
6535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *ReleaseIntArrayElements)
6545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jintArray array, jint *elems, jint mode);
6555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *ReleaseLongArrayElements)
6565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jlongArray array, jlong *elems, jint mode);
6575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *ReleaseFloatArrayElements)
6585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jfloatArray array, jfloat *elems, jint mode);
6595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *ReleaseDoubleArrayElements)
6605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jdoubleArray array, jdouble *elems, jint mode);
6615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *GetBooleanArrayRegion)
6635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jbooleanArray array, jsize start, jsize l, jboolean *buf);
6645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *GetByteArrayRegion)
6655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jbyteArray array, jsize start, jsize len, jbyte *buf);
6665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *GetCharArrayRegion)
6675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jcharArray array, jsize start, jsize len, jchar *buf);
6685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *GetShortArrayRegion)
6695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jshortArray array, jsize start, jsize len, jshort *buf);
6705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *GetIntArrayRegion)
6715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jintArray array, jsize start, jsize len, jint *buf);
6725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *GetLongArrayRegion)
6735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jlongArray array, jsize start, jsize len, jlong *buf);
6745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *GetFloatArrayRegion)
6755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jfloatArray array, jsize start, jsize len, jfloat *buf);
6765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *GetDoubleArrayRegion)
6775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jdoubleArray array, jsize start, jsize len, jdouble *buf);
6785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetBooleanArrayRegion)
6805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jbooleanArray array, jsize start, jsize l, jboolean *buf);
6815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetByteArrayRegion)
6825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jbyteArray array, jsize start, jsize len, jbyte *buf);
6835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetCharArrayRegion)
6845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jcharArray array, jsize start, jsize len, jchar *buf);
6855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetShortArrayRegion)
6865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jshortArray array, jsize start, jsize len, jshort *buf);
6875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetIntArrayRegion)
6885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jintArray array, jsize start, jsize len, jint *buf);
6895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetLongArrayRegion)
6905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jlongArray array, jsize start, jsize len, jlong *buf);
6915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetFloatArrayRegion)
6925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jfloatArray array, jsize start, jsize len, jfloat *buf);
6935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *SetDoubleArrayRegion)
6945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jdoubleArray array, jsize start, jsize len, jdouble *buf);
6955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint (JNICALL *RegisterNatives)
6975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz, const JNINativeMethod *methods,
6985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       jint nMethods);
6995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint (JNICALL *UnregisterNatives)
7005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jclass clazz);
7015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint (JNICALL *MonitorEnter)
7035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj);
7045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint (JNICALL *MonitorExit)
7055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, jobject obj);
7065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint (JNICALL *GetJavaVM)
7085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JNIEnv *env, JavaVM **vm);
7095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
7105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
7125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * We use inlined functions for C++ so that programmers can write:
7135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
7145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *    env->FindClass("java/lang/String")
7155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
7165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * in C++ rather than:
7175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
7185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *    (*env)->FindClass(env, "java/lang/String")
7195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
7205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * in C.
7215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
7225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct JNIEnv_ {
7245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const struct JNINativeInterface_ *functions;
7255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void *reserved0;
7265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void *reserved1[6];
7275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __cplusplus
7285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint GetVersion() {
7305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->GetVersion(this);
7315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
7325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jclass DefineClass(const char *name, jobject loader, const jbyte *buf,
7335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		       jsize len) {
7345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->DefineClass(this, name, loader, buf, len);
7355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
7365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jclass FindClass(const char *name) {
7375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->FindClass(this, name);
7385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
7395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jclass GetSuperclass(jclass sub) {
7405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->GetSuperclass(this, sub);
7415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
7425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean IsAssignableFrom(jclass sub, jclass sup) {
7435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->IsAssignableFrom(this, sub, sup);
7445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
7455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint Throw(jthrowable obj) {
7475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->Throw(this, obj);
7485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
7495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint ThrowNew(jclass clazz, const char *msg) {
7505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->ThrowNew(this, clazz, msg);
7515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
7525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jthrowable ExceptionOccurred() {
7535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->ExceptionOccurred(this);
7545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
7555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void ExceptionDescribe() {
7565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->ExceptionDescribe(this);
7575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
7585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void ExceptionClear() {
7595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->ExceptionClear(this);
7605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
7615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void FatalError(const char *msg) {
7625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->FatalError(this, msg);
7635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
7645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject NewGlobalRef(jobject lobj) {
7665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->NewGlobalRef(this,lobj);
7675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
7685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void DeleteGlobalRef(jobject gref) {
7695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->DeleteGlobalRef(this,gref);
7705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
7715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void DeleteLocalRef(jobject obj) {
7725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->DeleteLocalRef(this, obj);
7735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
7745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean IsSameObject(jobject obj1, jobject obj2) {
7765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->IsSameObject(this,obj1,obj2);
7775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
7785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject AllocObject(jclass clazz) {
7805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->AllocObject(this,clazz);
7815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
7825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject NewObject(jclass clazz, jmethodID methodID, ...) {
7835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        va_list args;
7845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	jobject result;
7855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_start(args, methodID);
7865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        result = functions->NewObjectV(this,clazz,methodID,args);
7875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_end(args);
7885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	return result;
7895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
7905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject NewObjectV(jclass clazz, jmethodID methodID,
7915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		       va_list args) {
7925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->NewObjectV(this,clazz,methodID,args);
7935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
7945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject NewObjectA(jclass clazz, jmethodID methodID,
7955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		       jvalue *args) {
7965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->NewObjectA(this,clazz,methodID,args);
7975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
7985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jclass GetObjectClass(jobject obj) {
8005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->GetObjectClass(this,obj);
8015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
8025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean IsInstanceOf(jobject obj, jclass clazz) {
8035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->IsInstanceOf(this,obj,clazz);
8045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
8055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jmethodID GetMethodID(jclass clazz, const char *name,
8075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			  const char *sig) {
8085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->GetMethodID(this,clazz,name,sig);
8095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
8105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject CallObjectMethod(jobject obj, jmethodID methodID, ...) {
8125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        va_list args;
8135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	jobject result;
8145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_start(args,methodID);
8155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	result = functions->CallObjectMethodV(this,obj,methodID,args);
8165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_end(args);
8175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	return result;
8185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
8195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject CallObjectMethodV(jobject obj, jmethodID methodID,
8205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			va_list args) {
8215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallObjectMethodV(this,obj,methodID,args);
8225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
8235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject CallObjectMethodA(jobject obj, jmethodID methodID,
8245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			jvalue * args) {
8255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallObjectMethodA(this,obj,methodID,args);
8265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
8275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean CallBooleanMethod(jobject obj,
8295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			       jmethodID methodID, ...) {
8305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        va_list args;
8315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	jboolean result;
8325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_start(args,methodID);
8335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	result = functions->CallBooleanMethodV(this,obj,methodID,args);
8345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_end(args);
8355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	return result;
8365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
8375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean CallBooleanMethodV(jobject obj, jmethodID methodID,
8385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				va_list args) {
8395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallBooleanMethodV(this,obj,methodID,args);
8405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
8415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean CallBooleanMethodA(jobject obj, jmethodID methodID,
8425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				jvalue * args) {
8435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallBooleanMethodA(this,obj,methodID, args);
8445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
8455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbyte CallByteMethod(jobject obj, jmethodID methodID, ...) {
8475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        va_list args;
8485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	jbyte result;
8495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_start(args,methodID);
8505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	result = functions->CallByteMethodV(this,obj,methodID,args);
8515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_end(args);
8525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	return result;
8535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
8545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbyte CallByteMethodV(jobject obj, jmethodID methodID,
8555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			  va_list args) {
8565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallByteMethodV(this,obj,methodID,args);
8575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
8585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbyte CallByteMethodA(jobject obj, jmethodID methodID,
8595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			  jvalue * args) {
8605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallByteMethodA(this,obj,methodID,args);
8615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
8625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jchar CallCharMethod(jobject obj, jmethodID methodID, ...) {
8645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        va_list args;
8655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	jchar result;
8665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_start(args,methodID);
8675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	result = functions->CallCharMethodV(this,obj,methodID,args);
8685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_end(args);
8695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	return result;
8705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
8715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jchar CallCharMethodV(jobject obj, jmethodID methodID,
8725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			  va_list args) {
8735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallCharMethodV(this,obj,methodID,args);
8745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
8755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jchar CallCharMethodA(jobject obj, jmethodID methodID,
8765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			  jvalue * args) {
8775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallCharMethodA(this,obj,methodID,args);
8785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
8795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jshort CallShortMethod(jobject obj, jmethodID methodID, ...) {
8815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        va_list args;
8825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	jshort result;
8835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_start(args,methodID);
8845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	result = functions->CallShortMethodV(this,obj,methodID,args);
8855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_end(args);
8865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	return result;
8875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
8885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jshort CallShortMethodV(jobject obj, jmethodID methodID,
8895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			    va_list args) {
8905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallShortMethodV(this,obj,methodID,args);
8915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
8925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jshort CallShortMethodA(jobject obj, jmethodID methodID,
8935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			    jvalue * args) {
8945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallShortMethodA(this,obj,methodID,args);
8955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
8965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint CallIntMethod(jobject obj, jmethodID methodID, ...) {
8985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        va_list args;
8995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	jint result;
9005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_start(args,methodID);
9015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	result = functions->CallIntMethodV(this,obj,methodID,args);
9025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_end(args);
9035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	return result;
9045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
9055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint CallIntMethodV(jobject obj, jmethodID methodID,
9065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			va_list args) {
9075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallIntMethodV(this,obj,methodID,args);
9085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
9095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint CallIntMethodA(jobject obj, jmethodID methodID,
9105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			jvalue * args) {
9115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallIntMethodA(this,obj,methodID,args);
9125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
9135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
9145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jlong CallLongMethod(jobject obj, jmethodID methodID, ...) {
9155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        va_list args;
9165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	jlong result;
9175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_start(args,methodID);
9185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	result = functions->CallLongMethodV(this,obj,methodID,args);
9195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_end(args);
9205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	return result;
9215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
9225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jlong CallLongMethodV(jobject obj, jmethodID methodID,
9235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			  va_list args) {
9245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallLongMethodV(this,obj,methodID,args);
9255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
9265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jlong CallLongMethodA(jobject obj, jmethodID methodID,
9275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			  jvalue * args) {
9285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallLongMethodA(this,obj,methodID,args);
9295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
9305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
9315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfloat CallFloatMethod(jobject obj, jmethodID methodID, ...) {
9325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        va_list args;
9335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	jfloat result;
9345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_start(args,methodID);
9355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	result = functions->CallFloatMethodV(this,obj,methodID,args);
9365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_end(args);
9375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	return result;
9385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
9395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfloat CallFloatMethodV(jobject obj, jmethodID methodID,
9405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			    va_list args) {
9415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallFloatMethodV(this,obj,methodID,args);
9425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
9435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfloat CallFloatMethodA(jobject obj, jmethodID methodID,
9445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			    jvalue * args) {
9455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallFloatMethodA(this,obj,methodID,args);
9465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
9475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
9485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jdouble CallDoubleMethod(jobject obj, jmethodID methodID, ...) {
9495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        va_list args;
9505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	jdouble result;
9515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_start(args,methodID);
9525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	result = functions->CallDoubleMethodV(this,obj,methodID,args);
9535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_end(args);
9545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	return result;
9555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
9565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jdouble CallDoubleMethodV(jobject obj, jmethodID methodID,
9575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			va_list args) {
9585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallDoubleMethodV(this,obj,methodID,args);
9595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
9605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jdouble CallDoubleMethodA(jobject obj, jmethodID methodID,
9615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			jvalue * args) {
9625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallDoubleMethodA(this,obj,methodID,args);
9635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
9645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
9655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void CallVoidMethod(jobject obj, jmethodID methodID, ...) {
9665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        va_list args;
9675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_start(args,methodID);
9685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	functions->CallVoidMethodV(this,obj,methodID,args);
9695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_end(args);
9705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
9715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void CallVoidMethodV(jobject obj, jmethodID methodID,
9725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			 va_list args) {
9735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->CallVoidMethodV(this,obj,methodID,args);
9745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
9755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void CallVoidMethodA(jobject obj, jmethodID methodID,
9765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			 jvalue * args) {
9775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->CallVoidMethodA(this,obj,methodID,args);
9785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
9795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
9805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject CallNonvirtualObjectMethod(jobject obj, jclass clazz,
9815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				       jmethodID methodID, ...) {
9825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        va_list args;
9835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	jobject result;
9845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_start(args,methodID);
9855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	result = functions->CallNonvirtualObjectMethodV(this,obj,clazz,
9865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)							methodID,args);
9875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_end(args);
9885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	return result;
9895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
9905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject CallNonvirtualObjectMethodV(jobject obj, jclass clazz,
9915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)					jmethodID methodID, va_list args) {
9925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallNonvirtualObjectMethodV(this,obj,clazz,
9935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						      methodID,args);
9945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
9955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject CallNonvirtualObjectMethodA(jobject obj, jclass clazz,
9965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)					jmethodID methodID, jvalue * args) {
9975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallNonvirtualObjectMethodA(this,obj,clazz,
9985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						      methodID,args);
9995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
10005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
10015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean CallNonvirtualBooleanMethod(jobject obj, jclass clazz,
10025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)					 jmethodID methodID, ...) {
10035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        va_list args;
10045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	jboolean result;
10055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_start(args,methodID);
10065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	result = functions->CallNonvirtualBooleanMethodV(this,obj,clazz,
10075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)							 methodID,args);
10085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_end(args);
10095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	return result;
10105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
10115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean CallNonvirtualBooleanMethodV(jobject obj, jclass clazz,
10125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)					  jmethodID methodID, va_list args) {
10135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallNonvirtualBooleanMethodV(this,obj,clazz,
10145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						       methodID,args);
10155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
10165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean CallNonvirtualBooleanMethodA(jobject obj, jclass clazz,
10175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)					  jmethodID methodID, jvalue * args) {
10185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallNonvirtualBooleanMethodA(this,obj,clazz,
10195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						       methodID, args);
10205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
10215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
10225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbyte CallNonvirtualByteMethod(jobject obj, jclass clazz,
10235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				   jmethodID methodID, ...) {
10245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        va_list args;
10255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	jbyte result;
10265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_start(args,methodID);
10275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	result = functions->CallNonvirtualByteMethodV(this,obj,clazz,
10285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						      methodID,args);
10295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_end(args);
10305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	return result;
10315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
10325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbyte CallNonvirtualByteMethodV(jobject obj, jclass clazz,
10335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				    jmethodID methodID, va_list args) {
10345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallNonvirtualByteMethodV(this,obj,clazz,
10355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						    methodID,args);
10365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
10375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbyte CallNonvirtualByteMethodA(jobject obj, jclass clazz,
10385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				    jmethodID methodID, jvalue * args) {
10395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallNonvirtualByteMethodA(this,obj,clazz,
10405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						    methodID,args);
10415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
10425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
10435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jchar CallNonvirtualCharMethod(jobject obj, jclass clazz,
10445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				   jmethodID methodID, ...) {
10455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        va_list args;
10465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	jchar result;
10475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_start(args,methodID);
10485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	result = functions->CallNonvirtualCharMethodV(this,obj,clazz,
10495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						      methodID,args);
10505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_end(args);
10515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	return result;
10525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
10535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jchar CallNonvirtualCharMethodV(jobject obj, jclass clazz,
10545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				    jmethodID methodID, va_list args) {
10555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallNonvirtualCharMethodV(this,obj,clazz,
10565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						    methodID,args);
10575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
10585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jchar CallNonvirtualCharMethodA(jobject obj, jclass clazz,
10595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				    jmethodID methodID, jvalue * args) {
10605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallNonvirtualCharMethodA(this,obj,clazz,
10615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						    methodID,args);
10625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
10635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
10645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jshort CallNonvirtualShortMethod(jobject obj, jclass clazz,
10655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				     jmethodID methodID, ...) {
10665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        va_list args;
10675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	jshort result;
10685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_start(args,methodID);
10695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	result = functions->CallNonvirtualShortMethodV(this,obj,clazz,
10705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						       methodID,args);
10715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_end(args);
10725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	return result;
10735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
10745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jshort CallNonvirtualShortMethodV(jobject obj, jclass clazz,
10755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				      jmethodID methodID, va_list args) {
10765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallNonvirtualShortMethodV(this,obj,clazz,
10775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						     methodID,args);
10785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
10795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jshort CallNonvirtualShortMethodA(jobject obj, jclass clazz,
10805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				      jmethodID methodID, jvalue * args) {
10815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallNonvirtualShortMethodA(this,obj,clazz,
10825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						     methodID,args);
10835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
10845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
10855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint CallNonvirtualIntMethod(jobject obj, jclass clazz,
10865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				 jmethodID methodID, ...) {
10875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        va_list args;
10885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	jint result;
10895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_start(args,methodID);
10905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	result = functions->CallNonvirtualIntMethodV(this,obj,clazz,
10915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						     methodID,args);
10925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_end(args);
10935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	return result;
10945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
10955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint CallNonvirtualIntMethodV(jobject obj, jclass clazz,
10965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				  jmethodID methodID, va_list args) {
10975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallNonvirtualIntMethodV(this,obj,clazz,
10985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						   methodID,args);
10995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
11005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint CallNonvirtualIntMethodA(jobject obj, jclass clazz,
11015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				  jmethodID methodID, jvalue * args) {
11025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallNonvirtualIntMethodA(this,obj,clazz,
11035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						   methodID,args);
11045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
11055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
11065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jlong CallNonvirtualLongMethod(jobject obj, jclass clazz,
11075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				   jmethodID methodID, ...) {
11085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        va_list args;
11095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	jlong result;
11105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_start(args,methodID);
11115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	result = functions->CallNonvirtualLongMethodV(this,obj,clazz,
11125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						      methodID,args);
11135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_end(args);
11145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	return result;
11155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
11165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jlong CallNonvirtualLongMethodV(jobject obj, jclass clazz,
11175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				    jmethodID methodID, va_list args) {
11185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallNonvirtualLongMethodV(this,obj,clazz,
11195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						    methodID,args);
11205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
11215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jlong CallNonvirtualLongMethodA(jobject obj, jclass clazz,
11225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				    jmethodID methodID, jvalue * args) {
11235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallNonvirtualLongMethodA(this,obj,clazz,
11245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						    methodID,args);
11255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
11265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
11275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfloat CallNonvirtualFloatMethod(jobject obj, jclass clazz,
11285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				     jmethodID methodID, ...) {
11295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        va_list args;
11305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	jfloat result;
11315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_start(args,methodID);
11325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	result = functions->CallNonvirtualFloatMethodV(this,obj,clazz,
11335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						       methodID,args);
11345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_end(args);
11355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	return result;
11365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
11375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfloat CallNonvirtualFloatMethodV(jobject obj, jclass clazz,
11385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				      jmethodID methodID,
11395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				      va_list args) {
11405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallNonvirtualFloatMethodV(this,obj,clazz,
11415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						     methodID,args);
11425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
11435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfloat CallNonvirtualFloatMethodA(jobject obj, jclass clazz,
11445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				      jmethodID methodID,
11455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				      jvalue * args) {
11465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallNonvirtualFloatMethodA(this,obj,clazz,
11475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						     methodID,args);
11485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
11495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
11505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jdouble CallNonvirtualDoubleMethod(jobject obj, jclass clazz,
11515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				       jmethodID methodID, ...) {
11525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        va_list args;
11535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	jdouble result;
11545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_start(args,methodID);
11555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	result = functions->CallNonvirtualDoubleMethodV(this,obj,clazz,
11565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)							methodID,args);
11575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_end(args);
11585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	return result;
11595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
11605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jdouble CallNonvirtualDoubleMethodV(jobject obj, jclass clazz,
11615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)					jmethodID methodID,
11625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)					va_list args) {
11635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallNonvirtualDoubleMethodV(this,obj,clazz,
11645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						      methodID,args);
11655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
11665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jdouble CallNonvirtualDoubleMethodA(jobject obj, jclass clazz,
11675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)					jmethodID methodID,
11685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)					jvalue * args) {
11695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallNonvirtualDoubleMethodA(this,obj,clazz,
11705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						      methodID,args);
11715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
11725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
11735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void CallNonvirtualVoidMethod(jobject obj, jclass clazz,
11745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				  jmethodID methodID, ...) {
11755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        va_list args;
11765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_start(args,methodID);
11775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	functions->CallNonvirtualVoidMethodV(this,obj,clazz,methodID,args);
11785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_end(args);
11795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
11805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void CallNonvirtualVoidMethodV(jobject obj, jclass clazz,
11815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				   jmethodID methodID,
11825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				   va_list args) {
11835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->CallNonvirtualVoidMethodV(this,obj,clazz,methodID,args);
11845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
11855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void CallNonvirtualVoidMethodA(jobject obj, jclass clazz,
11865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				   jmethodID methodID,
11875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				   jvalue * args) {
11885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->CallNonvirtualVoidMethodA(this,obj,clazz,methodID,args);
11895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
11905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
11915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfieldID GetFieldID(jclass clazz, const char *name,
11925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			const char *sig) {
11935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->GetFieldID(this,clazz,name,sig);
11945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
11955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
11965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject GetObjectField(jobject obj, jfieldID fieldID) {
11975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->GetObjectField(this,obj,fieldID);
11985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
11995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean GetBooleanField(jobject obj, jfieldID fieldID) {
12005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->GetBooleanField(this,obj,fieldID);
12015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
12025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbyte GetByteField(jobject obj, jfieldID fieldID) {
12035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->GetByteField(this,obj,fieldID);
12045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
12055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jchar GetCharField(jobject obj, jfieldID fieldID) {
12065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->GetCharField(this,obj,fieldID);
12075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
12085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jshort GetShortField(jobject obj, jfieldID fieldID) {
12095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->GetShortField(this,obj,fieldID);
12105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
12115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint GetIntField(jobject obj, jfieldID fieldID) {
12125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->GetIntField(this,obj,fieldID);
12135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
12145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jlong GetLongField(jobject obj, jfieldID fieldID) {
12155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->GetLongField(this,obj,fieldID);
12165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
12175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfloat GetFloatField(jobject obj, jfieldID fieldID) {
12185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->GetFloatField(this,obj,fieldID);
12195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
12205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jdouble GetDoubleField(jobject obj, jfieldID fieldID) {
12215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->GetDoubleField(this,obj,fieldID);
12225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
12235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
12245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void SetObjectField(jobject obj, jfieldID fieldID, jobject val) {
12255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->SetObjectField(this,obj,fieldID,val);
12265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
12275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void SetBooleanField(jobject obj, jfieldID fieldID,
12285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			 jboolean val) {
12295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->SetBooleanField(this,obj,fieldID,val);
12305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
12315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void SetByteField(jobject obj, jfieldID fieldID,
12325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      jbyte val) {
12335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->SetByteField(this,obj,fieldID,val);
12345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
12355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void SetCharField(jobject obj, jfieldID fieldID,
12365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      jchar val) {
12375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->SetCharField(this,obj,fieldID,val);
12385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
12395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void SetShortField(jobject obj, jfieldID fieldID,
12405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		       jshort val) {
12415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->SetShortField(this,obj,fieldID,val);
12425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
12435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void SetIntField(jobject obj, jfieldID fieldID,
12445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		     jint val) {
12455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->SetIntField(this,obj,fieldID,val);
12465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
12475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void SetLongField(jobject obj, jfieldID fieldID,
12485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      jlong val) {
12495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->SetLongField(this,obj,fieldID,val);
12505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
12515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void SetFloatField(jobject obj, jfieldID fieldID,
12525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		       jfloat val) {
12535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->SetFloatField(this,obj,fieldID,val);
12545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
12555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void SetDoubleField(jobject obj, jfieldID fieldID,
12565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			jdouble val) {
12575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->SetDoubleField(this,obj,fieldID,val);
12585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
12595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
12605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jmethodID GetStaticMethodID(jclass clazz, const char *name,
12615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				const char *sig) {
12625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->GetStaticMethodID(this,clazz,name,sig);
12635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
12645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
12655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject CallStaticObjectMethod(jclass clazz, jmethodID methodID,
12665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			     ...) {
12675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        va_list args;
12685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	jobject result;
12695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_start(args,methodID);
12705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	result = functions->CallStaticObjectMethodV(this,clazz,methodID,args);
12715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_end(args);
12725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	return result;
12735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
12745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject CallStaticObjectMethodV(jclass clazz, jmethodID methodID,
12755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			      va_list args) {
12765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallStaticObjectMethodV(this,clazz,methodID,args);
12775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
12785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject CallStaticObjectMethodA(jclass clazz, jmethodID methodID,
12795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			      jvalue *args) {
12805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallStaticObjectMethodA(this,clazz,methodID,args);
12815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
12825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
12835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean CallStaticBooleanMethod(jclass clazz,
12845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				     jmethodID methodID, ...) {
12855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        va_list args;
12865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	jboolean result;
12875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_start(args,methodID);
12885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	result = functions->CallStaticBooleanMethodV(this,clazz,methodID,args);
12895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_end(args);
12905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	return result;
12915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
12925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean CallStaticBooleanMethodV(jclass clazz,
12935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				      jmethodID methodID, va_list args) {
12945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallStaticBooleanMethodV(this,clazz,methodID,args);
12955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
12965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean CallStaticBooleanMethodA(jclass clazz,
12975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				      jmethodID methodID, jvalue *args) {
12985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallStaticBooleanMethodA(this,clazz,methodID,args);
12995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
13005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
13015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbyte CallStaticByteMethod(jclass clazz,
13025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			       jmethodID methodID, ...) {
13035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        va_list args;
13045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	jbyte result;
13055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_start(args,methodID);
13065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	result = functions->CallStaticByteMethodV(this,clazz,methodID,args);
13075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_end(args);
13085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	return result;
13095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
13105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbyte CallStaticByteMethodV(jclass clazz,
13115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				jmethodID methodID, va_list args) {
13125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallStaticByteMethodV(this,clazz,methodID,args);
13135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
13145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbyte CallStaticByteMethodA(jclass clazz,
13155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				jmethodID methodID, jvalue *args) {
13165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallStaticByteMethodA(this,clazz,methodID,args);
13175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
13185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
13195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jchar CallStaticCharMethod(jclass clazz,
13205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			       jmethodID methodID, ...) {
13215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        va_list args;
13225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	jchar result;
13235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_start(args,methodID);
13245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	result = functions->CallStaticCharMethodV(this,clazz,methodID,args);
13255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_end(args);
13265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	return result;
13275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
13285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jchar CallStaticCharMethodV(jclass clazz,
13295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				jmethodID methodID, va_list args) {
13305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallStaticCharMethodV(this,clazz,methodID,args);
13315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
13325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jchar CallStaticCharMethodA(jclass clazz,
13335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				jmethodID methodID, jvalue *args) {
13345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallStaticCharMethodA(this,clazz,methodID,args);
13355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
13365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
13375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jshort CallStaticShortMethod(jclass clazz,
13385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				 jmethodID methodID, ...) {
13395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        va_list args;
13405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	jshort result;
13415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_start(args,methodID);
13425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	result = functions->CallStaticShortMethodV(this,clazz,methodID,args);
13435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_end(args);
13445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	return result;
13455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
13465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jshort CallStaticShortMethodV(jclass clazz,
13475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				  jmethodID methodID, va_list args) {
13485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallStaticShortMethodV(this,clazz,methodID,args);
13495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
13505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jshort CallStaticShortMethodA(jclass clazz,
13515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				  jmethodID methodID, jvalue *args) {
13525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallStaticShortMethodA(this,clazz,methodID,args);
13535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
13545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
13555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint CallStaticIntMethod(jclass clazz,
13565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			     jmethodID methodID, ...) {
13575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        va_list args;
13585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	jint result;
13595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_start(args,methodID);
13605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	result = functions->CallStaticIntMethodV(this,clazz,methodID,args);
13615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_end(args);
13625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	return result;
13635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
13645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint CallStaticIntMethodV(jclass clazz,
13655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			      jmethodID methodID, va_list args) {
13665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallStaticIntMethodV(this,clazz,methodID,args);
13675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
13685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint CallStaticIntMethodA(jclass clazz,
13695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			      jmethodID methodID, jvalue *args) {
13705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallStaticIntMethodA(this,clazz,methodID,args);
13715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
13725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
13735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jlong CallStaticLongMethod(jclass clazz,
13745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			       jmethodID methodID, ...) {
13755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        va_list args;
13765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	jlong result;
13775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_start(args,methodID);
13785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	result = functions->CallStaticLongMethodV(this,clazz,methodID,args);
13795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_end(args);
13805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	return result;
13815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
13825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jlong CallStaticLongMethodV(jclass clazz,
13835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				jmethodID methodID, va_list args) {
13845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallStaticLongMethodV(this,clazz,methodID,args);
13855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
13865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jlong CallStaticLongMethodA(jclass clazz,
13875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				jmethodID methodID, jvalue *args) {
13885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallStaticLongMethodA(this,clazz,methodID,args);
13895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
13905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
13915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfloat CallStaticFloatMethod(jclass clazz,
13925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				 jmethodID methodID, ...) {
13935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        va_list args;
13945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	jfloat result;
13955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_start(args,methodID);
13965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	result = functions->CallStaticFloatMethodV(this,clazz,methodID,args);
13975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_end(args);
13985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	return result;
13995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
14005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfloat CallStaticFloatMethodV(jclass clazz,
14015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				  jmethodID methodID, va_list args) {
14025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallStaticFloatMethodV(this,clazz,methodID,args);
14035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
14045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfloat CallStaticFloatMethodA(jclass clazz,
14055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				  jmethodID methodID, jvalue *args) {
14065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallStaticFloatMethodA(this,clazz,methodID,args);
14075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
14085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
14095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jdouble CallStaticDoubleMethod(jclass clazz,
14105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				   jmethodID methodID, ...) {
14115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        va_list args;
14125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	jdouble result;
14135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_start(args,methodID);
14145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	result = functions->CallStaticDoubleMethodV(this,clazz,methodID,args);
14155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_end(args);
14165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	return result;
14175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
14185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jdouble CallStaticDoubleMethodV(jclass clazz,
14195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				    jmethodID methodID, va_list args) {
14205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallStaticDoubleMethodV(this,clazz,methodID,args);
14215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
14225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jdouble CallStaticDoubleMethodA(jclass clazz,
14235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				    jmethodID methodID, jvalue *args) {
14245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->CallStaticDoubleMethodA(this,clazz,methodID,args);
14255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
14265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
14275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void CallStaticVoidMethod(jclass cls, jmethodID methodID, ...) {
14285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        va_list args;
14295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_start(args,methodID);
14305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	functions->CallStaticVoidMethodV(this,cls,methodID,args);
14315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	va_end(args);
14325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
14335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void CallStaticVoidMethodV(jclass cls, jmethodID methodID,
14345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			       va_list args) {
14355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->CallStaticVoidMethodV(this,cls,methodID,args);
14365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
14375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void CallStaticVoidMethodA(jclass cls, jmethodID methodID,
14385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			       jvalue * args) {
14395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->CallStaticVoidMethodA(this,cls,methodID,args);
14405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
14415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
14425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfieldID GetStaticFieldID(jclass clazz, const char *name,
14435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			      const char *sig) {
14445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->GetStaticFieldID(this,clazz,name,sig);
14455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
14465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject GetStaticObjectField(jclass clazz, jfieldID fieldID) {
14475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->GetStaticObjectField(this,clazz,fieldID);
14485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
14495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean GetStaticBooleanField(jclass clazz, jfieldID fieldID) {
14505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->GetStaticBooleanField(this,clazz,fieldID);
14515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
14525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbyte GetStaticByteField(jclass clazz, jfieldID fieldID) {
14535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->GetStaticByteField(this,clazz,fieldID);
14545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
14555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jchar GetStaticCharField(jclass clazz, jfieldID fieldID) {
14565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->GetStaticCharField(this,clazz,fieldID);
14575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
14585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jshort GetStaticShortField(jclass clazz, jfieldID fieldID) {
14595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->GetStaticShortField(this,clazz,fieldID);
14605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
14615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint GetStaticIntField(jclass clazz, jfieldID fieldID) {
14625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->GetStaticIntField(this,clazz,fieldID);
14635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
14645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jlong GetStaticLongField(jclass clazz, jfieldID fieldID) {
14655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->GetStaticLongField(this,clazz,fieldID);
14665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
14675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfloat GetStaticFloatField(jclass clazz, jfieldID fieldID) {
14685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->GetStaticFloatField(this,clazz,fieldID);
14695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
14705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jdouble GetStaticDoubleField(jclass clazz, jfieldID fieldID) {
14715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->GetStaticDoubleField(this,clazz,fieldID);
14725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
14735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
14745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void SetStaticObjectField(jclass clazz, jfieldID fieldID,
14755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			jobject value) {
14765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      functions->SetStaticObjectField(this,clazz,fieldID,value);
14775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
14785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void SetStaticBooleanField(jclass clazz, jfieldID fieldID,
14795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			jboolean value) {
14805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      functions->SetStaticBooleanField(this,clazz,fieldID,value);
14815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
14825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void SetStaticByteField(jclass clazz, jfieldID fieldID,
14835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			jbyte value) {
14845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      functions->SetStaticByteField(this,clazz,fieldID,value);
14855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
14865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void SetStaticCharField(jclass clazz, jfieldID fieldID,
14875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			jchar value) {
14885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      functions->SetStaticCharField(this,clazz,fieldID,value);
14895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
14905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void SetStaticShortField(jclass clazz, jfieldID fieldID,
14915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			jshort value) {
14925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      functions->SetStaticShortField(this,clazz,fieldID,value);
14935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
14945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void SetStaticIntField(jclass clazz, jfieldID fieldID,
14955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			jint value) {
14965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      functions->SetStaticIntField(this,clazz,fieldID,value);
14975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
14985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void SetStaticLongField(jclass clazz, jfieldID fieldID,
14995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			jlong value) {
15005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      functions->SetStaticLongField(this,clazz,fieldID,value);
15015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
15025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void SetStaticFloatField(jclass clazz, jfieldID fieldID,
15035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			jfloat value) {
15045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      functions->SetStaticFloatField(this,clazz,fieldID,value);
15055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
15065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void SetStaticDoubleField(jclass clazz, jfieldID fieldID,
15075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			jdouble value) {
15085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      functions->SetStaticDoubleField(this,clazz,fieldID,value);
15095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
15105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
15115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jstring NewString(const jchar *unicode, jsize len) {
15125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->NewString(this,unicode,len);
15135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
15145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jsize GetStringLength(jstring str) {
15155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->GetStringLength(this,str);
15165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
15175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const jchar *GetStringChars(jstring str, jboolean *isCopy) {
15185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->GetStringChars(this,str,isCopy);
15195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
15205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void ReleaseStringChars(jstring str, const jchar *chars) {
15215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->ReleaseStringChars(this,str,chars);
15225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
15235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
15245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jstring NewStringUTF(const char *utf) {
15255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->NewStringUTF(this,utf);
15265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
15275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jsize GetStringUTFLength(jstring str) {
15285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->GetStringUTFLength(this,str);
15295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
15305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const char* GetStringUTFChars(jstring str, jboolean *isCopy) {
15315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->GetStringUTFChars(this,str,isCopy);
15325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
15335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void ReleaseStringUTFChars(jstring str, const char* chars) {
15345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->ReleaseStringUTFChars(this,str,chars);
15355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
15365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
15375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jsize GetArrayLength(jarray array) {
15385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->GetArrayLength(this,array);
15395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
15405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
15415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobjectArray NewObjectArray(jsize len, jclass clazz,
15425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				jobject init) {
15435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->NewObjectArray(this,len,clazz,init);
15445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
15455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jobject GetObjectArrayElement(jobjectArray array, jsize index) {
15465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->GetObjectArrayElement(this,array,index);
15475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
15485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void SetObjectArrayElement(jobjectArray array, jsize index,
15495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			       jobject val) {
15505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->SetObjectArrayElement(this,array,index,val);
15515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
15525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
15535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbooleanArray NewBooleanArray(jsize len) {
15545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->NewBooleanArray(this,len);
15555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
15565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbyteArray NewByteArray(jsize len) {
15575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->NewByteArray(this,len);
15585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
15595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jcharArray NewCharArray(jsize len) {
15605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->NewCharArray(this,len);
15615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
15625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jshortArray NewShortArray(jsize len) {
15635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->NewShortArray(this,len);
15645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
15655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jintArray NewIntArray(jsize len) {
15665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->NewIntArray(this,len);
15675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
15685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jlongArray NewLongArray(jsize len) {
15695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->NewLongArray(this,len);
15705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
15715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfloatArray NewFloatArray(jsize len) {
15725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->NewFloatArray(this,len);
15735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
15745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jdoubleArray NewDoubleArray(jsize len) {
15755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->NewDoubleArray(this,len);
15765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
15775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
15785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean * GetBooleanArrayElements(jbooleanArray array, jboolean *isCopy) {
15795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->GetBooleanArrayElements(this,array,isCopy);
15805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
15815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jbyte * GetByteArrayElements(jbyteArray array, jboolean *isCopy) {
15825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->GetByteArrayElements(this,array,isCopy);
15835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
15845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jchar * GetCharArrayElements(jcharArray array, jboolean *isCopy) {
15855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->GetCharArrayElements(this,array,isCopy);
15865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
15875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jshort * GetShortArrayElements(jshortArray array, jboolean *isCopy) {
15885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->GetShortArrayElements(this,array,isCopy);
15895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
15905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint * GetIntArrayElements(jintArray array, jboolean *isCopy) {
15915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->GetIntArrayElements(this,array,isCopy);
15925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
15935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jlong * GetLongArrayElements(jlongArray array, jboolean *isCopy) {
15945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->GetLongArrayElements(this,array,isCopy);
15955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
15965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jfloat * GetFloatArrayElements(jfloatArray array, jboolean *isCopy) {
15975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->GetFloatArrayElements(this,array,isCopy);
15985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
15995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jdouble * GetDoubleArrayElements(jdoubleArray array, jboolean *isCopy) {
16005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->GetDoubleArrayElements(this,array,isCopy);
16015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
16025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
16035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void ReleaseBooleanArrayElements(jbooleanArray array,
16045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				     jboolean *elems,
16055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				     jint mode) {
16065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->ReleaseBooleanArrayElements(this,array,elems,mode);
16075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
16085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void ReleaseByteArrayElements(jbyteArray array,
16095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				  jbyte *elems,
16105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				  jint mode) {
16115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->ReleaseByteArrayElements(this,array,elems,mode);
16125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
16135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void ReleaseCharArrayElements(jcharArray array,
16145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				  jchar *elems,
16155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				  jint mode) {
16165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->ReleaseCharArrayElements(this,array,elems,mode);
16175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
16185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void ReleaseShortArrayElements(jshortArray array,
16195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				   jshort *elems,
16205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				   jint mode) {
16215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->ReleaseShortArrayElements(this,array,elems,mode);
16225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
16235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void ReleaseIntArrayElements(jintArray array,
16245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				 jint *elems,
16255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				 jint mode) {
16265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->ReleaseIntArrayElements(this,array,elems,mode);
16275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
16285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void ReleaseLongArrayElements(jlongArray array,
16295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				  jlong *elems,
16305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				  jint mode) {
16315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->ReleaseLongArrayElements(this,array,elems,mode);
16325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
16335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void ReleaseFloatArrayElements(jfloatArray array,
16345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				   jfloat *elems,
16355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				   jint mode) {
16365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->ReleaseFloatArrayElements(this,array,elems,mode);
16375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
16385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void ReleaseDoubleArrayElements(jdoubleArray array,
16395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				    jdouble *elems,
16405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)				    jint mode) {
16415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->ReleaseDoubleArrayElements(this,array,elems,mode);
16425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
16435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
16445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void GetBooleanArrayRegion(jbooleanArray array,
16455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			       jsize start, jsize len, jboolean *buf) {
16465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->GetBooleanArrayRegion(this,array,start,len,buf);
16475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
16485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void GetByteArrayRegion(jbyteArray array,
16495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			    jsize start, jsize len, jbyte *buf) {
16505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->GetByteArrayRegion(this,array,start,len,buf);
16515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
16525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void GetCharArrayRegion(jcharArray array,
16535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			    jsize start, jsize len, jchar *buf) {
16545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->GetCharArrayRegion(this,array,start,len,buf);
16555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
16565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void GetShortArrayRegion(jshortArray array,
16575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			     jsize start, jsize len, jshort *buf) {
16585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->GetShortArrayRegion(this,array,start,len,buf);
16595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
16605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void GetIntArrayRegion(jintArray array,
16615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			   jsize start, jsize len, jint *buf) {
16625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->GetIntArrayRegion(this,array,start,len,buf);
16635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
16645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void GetLongArrayRegion(jlongArray array,
16655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			    jsize start, jsize len, jlong *buf) {
16665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->GetLongArrayRegion(this,array,start,len,buf);
16675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
16685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void GetFloatArrayRegion(jfloatArray array,
16695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			     jsize start, jsize len, jfloat *buf) {
16705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->GetFloatArrayRegion(this,array,start,len,buf);
16715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
16725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void GetDoubleArrayRegion(jdoubleArray array,
16735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			      jsize start, jsize len, jdouble *buf) {
16745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->GetDoubleArrayRegion(this,array,start,len,buf);
16755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
16765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
16775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void SetBooleanArrayRegion(jbooleanArray array, jsize start, jsize len,
16785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			       jboolean *buf) {
16795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->SetBooleanArrayRegion(this,array,start,len,buf);
16805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
16815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void SetByteArrayRegion(jbyteArray array, jsize start, jsize len,
16825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			    jbyte *buf) {
16835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->SetByteArrayRegion(this,array,start,len,buf);
16845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
16855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void SetCharArrayRegion(jcharArray array, jsize start, jsize len,
16865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			    jchar *buf) {
16875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->SetCharArrayRegion(this,array,start,len,buf);
16885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
16895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void SetShortArrayRegion(jshortArray array, jsize start, jsize len,
16905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			     jshort *buf) {
16915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->SetShortArrayRegion(this,array,start,len,buf);
16925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
16935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void SetIntArrayRegion(jintArray array, jsize start, jsize len,
16945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			   jint *buf) {
16955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->SetIntArrayRegion(this,array,start,len,buf);
16965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
16975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void SetLongArrayRegion(jlongArray array, jsize start, jsize len,
16985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			    jlong *buf) {
16995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->SetLongArrayRegion(this,array,start,len,buf);
17005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
17015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void SetFloatArrayRegion(jfloatArray array, jsize start, jsize len,
17025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			     jfloat *buf) {
17035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->SetFloatArrayRegion(this,array,start,len,buf);
17045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
17055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void SetDoubleArrayRegion(jdoubleArray array, jsize start, jsize len,
17065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			      jdouble *buf) {
17075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        functions->SetDoubleArrayRegion(this,array,start,len,buf);
17085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
17095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint RegisterNatives(jclass clazz, const JNINativeMethod *methods,
17115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			 jint nMethods) {
17125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->RegisterNatives(this,clazz,methods,nMethods);
17135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
17145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint UnregisterNatives(jclass clazz) {
17155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->UnregisterNatives(this,clazz);
17165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
17175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint MonitorEnter(jobject obj) {
17195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->MonitorEnter(this,obj);
17205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
17215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint MonitorExit(jobject obj) {
17225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->MonitorExit(this,obj);
17235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
17245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint GetJavaVM(JavaVM **vm) {
17265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->GetJavaVM(this,vm);
17275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
17285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* __cplusplus */
17305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
17315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* These structures will be VM-specific. */
17335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct JDK1_1InitArgs {
17355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint version;
17365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    char **properties;
17385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint checkSource;
17395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint nativeStackSize;
17405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint javaStackSize;
17415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint minHeapSize;
17425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint maxHeapSize;
17435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint verifyMode;
17445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    char *classpath;
17455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint (JNICALL *vfprintf)(FILE *fp, const char *format, va_list args);
17475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *exit)(jint code);
17485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void (JNICALL *abort)();
17495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint enableClassGC;
17515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint enableVerboseGC;
17525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint disableAsyncGC;
17535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint verbose;
17545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jboolean debugging;
17555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint debugPort;
17565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} JDK1_1InitArgs;
17575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct JDK1_1AttachArgs {
17595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void * __padding; /* C compilers don't allow empty structures. */
17605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} JDK1_1AttachArgs;
17615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* End VM-specific. */
17635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct JNIInvokeInterface_ {
17655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void *reserved0;
17665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void *reserved1;
17675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void *reserved2;
17685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint (JNICALL *DestroyJavaVM)(JavaVM *vm);
17705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint (JNICALL *AttachCurrentThread)
17725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (JavaVM *vm, JNIEnv **penv, void *args);
17735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint (JNICALL *DetachCurrentThread)(JavaVM *vm);
17755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
17765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct JavaVM_ {
17785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const struct JNIInvokeInterface_ *functions;
17795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void *reserved0;
17805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void *reserved1;
17815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void *reserved2;
17825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __cplusplus
17835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint DestroyJavaVM() {
17855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->DestroyJavaVM(this);
17865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
17875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint AttachCurrentThread(JNIEnv **penv, void *args) {
17885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->AttachCurrentThread(this, penv, args);
17895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
17905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    jint DetachCurrentThread() {
17915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return functions->DetachCurrentThread(this);
17925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
17935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
17955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
17965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)JNI_PUBLIC_API(void) JNI_GetDefaultJavaVMInitArgs(void *);
17985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)JNI_PUBLIC_API(jint) JNI_CreateJavaVM(JavaVM **, JNIEnv **, void *);
18005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
18015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)JNI_PUBLIC_API(jint) JNI_GetCreatedJavaVMs(JavaVM **, jsize, jsize *);
18025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)JNI_PUBLIC_API(jref) JNI_MakeLocalRef(JNIEnv *pJNIEnv, void *pHObject);
18035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
18045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __cplusplus
18055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} /* extern "C" */
18065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* __cplusplus */
18075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
18085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* JNI_H */
18095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
18105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1811