/[classpath]/classpath/include/jni.h
ViewVC logotype

Diff of /classpath/include/jni.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.3.2.1 by gnu_andrew, Sun Jan 16 02:14:46 2005 UTC revision 1.3.2.2 by gnu_andrew, Thu Apr 28 23:00:12 2005 UTC
# Line 1  Line 1 
1  /* jni.h  /* jni.h
2     Copyright (C) 2001, 2004  Free Software Foundation, Inc.     Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005  Free Software Foundation
3    
4  This file is part of GNU Classpath.  This file is part of GNU Classpath.
5    
# Line 35  this exception to your version of the li Line 35  this exception to your version of the li
35  obligated to do so.  If you do not wish to do so, delete this  obligated to do so.  If you do not wish to do so, delete this
36  exception statement from your version. */  exception statement from your version. */
37    
 /* This file is based on jni.h from libgcj */  
38    
39  #ifndef __CLASSPATH_JNI_H__  /* Note: this file must be compilable by the C compiler (for now,
40  #define __CLASSPATH_JNI_H__     assuming GNU C is ok).  This means you must never use `//'
41       comments, and all C++-specific code must be conditional on
42       __cplusplus.  */
43    
44    #ifndef _CLASSPATH_JNI_H
45    #define _CLASSPATH_JNI_H
46    
47    /* We include <stdio.h> for compatibility with Sun's <jni.h>.  */
48    #include <stdio.h>
49    
50  #include <stdarg.h>  #include <stdarg.h>
51    
52  #ifdef __cplusplus  #include "jni_md.h"
 extern "C"  
 {  
 #endif /* __cplusplus */  
     
 #include "jni_md.h"  
53    
54  typedef jint jsize;  /* The VM might define jobject and friends.  */
55      #ifndef _CLASSPATH_VM_JNI_TYPES_DEFINED
 #ifdef __cplusplus  
 }  
 #endif  
56    
57  /*  # ifdef __cplusplus
58   * Before jni.h is #included within a typical JVM, the source code should  
59   * #define _JNI_VM_INTERNAL_TYPES_DEFINED and provide the real declarations  /* Define dummy classes and then define the JNI types as pointers.  */
60   * for 'jobject', 'jfieldID', 'jMethodID' and other implementation types.  struct __jobject {};
61   * If _JNI_VM_INTERNAL_TYPES_DEFINED is not defined, the following  struct __jclass : __jobject {};
62   * declares the old versions of the types.  struct __jstring : __jobject {};
63   */  struct __jthrowable : __jobject {};
64  #ifndef _JNI_VM_INTERNAL_TYPES_DEFINED  struct __jweak : __jobject {};
65  /*  struct __jarray : __jobject {};
66  typedef void *jobject;  struct __jobjectArray : __jarray {};
67  typedef void *jfieldID;  struct __jbyteArray : __jarray {};
68  typedef void *jmethodID;  struct __jshortArray : __jarray {};
69  */  struct __jintArray : __jarray {};
70  struct _jfieldID;  struct __jlongArray : __jarray {};
71  struct _jmethodID;  struct __jbooleanArray : __jarray {};
72  typedef struct _jfieldID *jfieldID;  struct __jcharArray : __jarray {};
73  typedef struct _jmethodID *jmethodID;  struct __jfloatArray : __jarray {};
74  #endif  struct __jdoubleArray : __jarray {};
75      
76  #ifdef __cplusplus  typedef __jobject *jobject;
77      typedef __jclass *jclass;
78  class _jobject {};  typedef __jstring *jstring;
79  class _jclass : public _jobject {};  typedef __jthrowable *jthrowable;
80  class _jthrowable : public _jobject {};  typedef __jweak *jweak;
81  class _jstring : public _jobject {};  typedef __jarray *jarray;
82  class _jarray : public _jobject {};  typedef __jobjectArray *jobjectArray;
83  class _jbooleanArray : public _jarray {};  typedef __jbyteArray *jbyteArray;
84  class _jbyteArray : public _jarray {};  typedef __jshortArray *jshortArray;
85  class _jcharArray : public _jarray {};  typedef __jintArray *jintArray;
86  class _jshortArray : public _jarray {};  typedef __jlongArray *jlongArray;
87  class _jintArray : public _jarray {};  typedef __jbooleanArray *jbooleanArray;
88  class _jlongArray : public _jarray {};  typedef __jcharArray *jcharArray;
89  class _jfloatArray : public _jarray {};  typedef __jfloatArray *jfloatArray;
90  class _jdoubleArray : public _jarray {};  typedef __jdoubleArray *jdoubleArray;
91  class _jobjectArray : public _jarray {};  
92    #define JNI_TRUE true
93  typedef _jobject *jobject;  #define JNI_FALSE false
 typedef _jclass *jclass;  
 typedef _jthrowable *jthrowable;  
 typedef _jstring *jstring;  
 typedef _jarray *jarray;  
 typedef _jbooleanArray *jbooleanArray;  
 typedef _jbyteArray *jbyteArray;  
 typedef _jcharArray *jcharArray;  
 typedef _jshortArray *jshortArray;  
 typedef _jintArray *jintArray;  
 typedef _jlongArray *jlongArray;  
 typedef _jfloatArray *jfloatArray;  
 typedef _jdoubleArray *jdoubleArray;  
 typedef _jobjectArray *jobjectArray;  
94    
95  typedef struct _Jv_JNIEnv JNIEnv;  typedef struct _Jv_JNIEnv JNIEnv;
96  typedef struct _Jv_JavaVM JavaVM;  typedef struct _Jv_JavaVM JavaVM;
97    
98  #else /* __cplusplus */  # else /* __cplusplus */
99    
100    /* For C, simply define the class types as generic pointers.  */
101  typedef void *jobject;  typedef void *jobject;
102  typedef jobject jclass;  typedef jobject jclass;
103  typedef jobject jstring;  typedef jobject jstring;
 typedef jobject jarray;  
104  typedef jobject jthrowable;  typedef jobject jthrowable;
105    typedef jobject jweak;
106    typedef jobject jarray;
107  typedef jobject jobjectArray;  typedef jobject jobjectArray;
108  typedef jobject jbyteArray;  typedef jobject jbyteArray;
109  typedef jobject jshortArray;  typedef jobject jshortArray;
# Line 126  typedef jobject jbooleanArray; Line 113  typedef jobject jbooleanArray;
113  typedef jobject jcharArray;  typedef jobject jcharArray;
114  typedef jobject jfloatArray;  typedef jobject jfloatArray;
115  typedef jobject jdoubleArray;  typedef jobject jdoubleArray;
116      
117  /* Dummy defines.  */  #define JNI_TRUE  1
118    #define JNI_FALSE 0
119    
120  typedef const struct JNINativeInterface *JNIEnv;  typedef const struct JNINativeInterface *JNIEnv;
121  typedef const struct JNIInvokeInterface *JavaVM;  typedef const struct JNIInvokeInterface *JavaVM;
122    
123  #endif /* __cplusplus */  # endif /* __cplusplus */
124    
125    #endif /* _CLASSPATH_VM_JNI_TYPES_DEFINED */
126    
127    /*
128     * Before jni.h is #included within a typical JVM, the source code should
129     * #define _JNI_VM_INTERNAL_TYPES_DEFINED and provide the real declarations
130     * for 'jobject', 'jfieldID', 'jmethodID' and other implementation types.
131     * If _JNI_VM_INTERNAL_TYPES_DEFINED is not defined, the following
132     * declares the old versions of the types.
133     */
134    #ifndef _CLASSPATH_VM_INTERNAL_TYPES_DEFINED
135    struct _jfieldID;
136    struct _jmethodID;
137    typedef struct _jfieldID *jfieldID;
138    typedef struct _jmethodID *jmethodID;
139    #endif
140    
141    /* Version numbers.  */
142    #define JNI_VERSION_1_1 0x00010001
143    #define JNI_VERSION_1_2 0x00010002
144    #define JNI_VERSION_1_4 0x00010004
145    
146    /* Used when releasing array elements.  */
147    #define JNI_COMMIT 1
148    #define JNI_ABORT  2
149    
150    /* Error codes */
151    #define JNI_OK            0
152    #define JNI_ERR          (-1)
153    #define JNI_EDETACHED    (-2)
154    #define JNI_EVERSION     (-3)
155    
 #define _Jv_va_list va_list  
156    
157  #ifdef __cplusplus  #ifdef __cplusplus
158  extern "C"  extern "C"
159  {  {
160  #endif /* __cplusplus */  #endif /* __cplusplus */
161    
162    /* These functions might be defined in libraries which we load; the
163       JNI implementation calls them at the appropriate times.  */
164    extern JNIEXPORT jint JNICALL JNI_OnLoad (JavaVM *, void *);
165    extern JNIEXPORT void JNICALL JNI_OnUnload (JavaVM *, void *);
166    
167    /* This can be defined as JNIIMPORT or JNIEXPORT by the md file,
168       depending on whether this is the implementation or a user.  */
169    #ifndef _CLASSPATH_JNIIMPEXP
170    #define _CLASSPATH_JNIIMPEXP JNIIMPORT
171    #endif
172    
173    /* These functions are called by user code to start using the
174       invocation API.  */
175    extern _CLASSPATH_JNIIMPEXP jint JNICALL
176    JNI_GetDefaultJavaVMInitArgs (void *);
177    
178    extern _CLASSPATH_JNIIMPEXP jint JNICALL
179    JNI_CreateJavaVM (JavaVM **, void **, void *);
180    
181    extern _CLASSPATH_JNIIMPEXP jint JNICALL
182    JNI_GetCreatedJavaVMs (JavaVM **, jsize, jsize *);
183    
184    #ifdef __cplusplus
185    }
186    #endif /* __cplusplus */
187    
188  typedef union jvalue  typedef union jvalue
189  {  {
190    jboolean z;    jboolean z;
# Line 152  typedef union jvalue Line 197  typedef union jvalue
197    jdouble  d;    jdouble  d;
198    jobject  l;    jobject  l;
199  } jvalue;  } jvalue;
         
 /* Used for jboolean type  */  
 #define JNI_TRUE  1  
 #define JNI_FALSE 0  
   
 /* Used when releasing array elements.  */  
 #define JNI_COMMIT 1  
 #define JNI_ABORT  2  
   
 /* FIXME: Could be wrong */  
 typedef jobject jweak;    
   
 /* Version numbers.  */  
 #define JNI_VERSION_1_1 0x00010001 /* JNI version 1.1 */  
 #define JNI_VERSION_1_2 0x00010002 /* JNI version 1.2 */  
 #define JNI_VERSION_1_4 0x00010004 /* JNI version 1.4 */  
       
 /* Error codes */  
 #define JNI_OK            0  
 #define JNI_ERR          (-1)  
 #define JNI_EDETACHED    (-2)  
 #define JNI_EVERSION     (-3)  
     
 /* These functions might be defined in libraries which we load; the  
    JNI implementation calls them at the appropriate times.  */  
 JNIEXPORT jint JNICALL JNI_OnLoad (JavaVM *, void *);  
 JNIEXPORT void JNICALL JNI_OnUnload (JavaVM *, void *);  
       
 /* These functions are called by user code to start using the  
    invocation API.  */  
 JNIEXPORT jint JNICALL JNI_GetDefaultJavaVMInitArgs (void *);  
 JNIEXPORT jint JNICALL JNI_CreateJavaVM (JavaVM **, void **, void *);  
 JNIEXPORT jint JNICALL JNI_GetCreatedJavaVMs(JavaVM **, jsize, jsize *);  
   
200    
201  /* This structure is used when registering native methods.  */  /* This structure is used when registering native methods.  */
202  typedef struct  typedef struct
203  {  {
204    char *name;    char *name;
205    char *signature;    char *signature;
206    void *fnPtr;    void *fnPtr;                  /* Sigh.  */
207  } JNINativeMethod;  } JNINativeMethod;
208    
209  struct JNINativeInterface  struct JNINativeInterface
210  {  {
211    void *reserved0;                                             /* 0 */    void *reserved0;
212    void *reserved1;                                             /* 1 */    void *reserved1;
213    void *reserved2;                                             /* 2 */    void *reserved2;
214    void *reserved3;                                             /* 3 */    void *reserved3;
   
   jint     (JNICALL *GetVersion)                   (JNIEnv *);                               /* 4 */  
   jclass   (JNICALL *DefineClass)                  (JNIEnv *, const char *, jobject, const jbyte *, jsize); /* 5 */  
   jclass   (JNICALL *FindClass)                    (JNIEnv *, const char *);                 /* 6 */  
   
   jmethodID (JNICALL *FromReflectedMethod)         (JNIEnv *, jobject);                      /* 7 */  
   jfieldID  (JNICALL *FromReflectedField)          (JNIEnv *, jobject);                      /* 8 */  
   jobject   (JNICALL *ToReflectedMethod)           (JNIEnv *, jclass, jmethodID, jboolean);  /* 9 */  
   
   jclass   (JNICALL *GetSuperclass)                (JNIEnv *, jclass);                       /* 10 */  
   jboolean (JNICALL *IsAssignableFrom)             (JNIEnv *, jclass, jclass);               /* 11 */  
   
   jobject  (JNICALL *ToReflectedField)             (JNIEnv *, jclass, jfieldID, jboolean);   /* 12 */  
   
   jint     (JNICALL *Throw)                        (JNIEnv *, jthrowable);                   /* 13 */  
   jint     (JNICALL *ThrowNew)                     (JNIEnv *, jclass, const char *);         /* 14 */  
   jthrowable (JNICALL *ExceptionOccurred)          (JNIEnv *);                               /* 15 */  
   void     (JNICALL *ExceptionDescribe)            (JNIEnv *);                               /* 16 */  
   void     (JNICALL *ExceptionClear)               (JNIEnv *);                               /* 17 */  
   void     (JNICALL *FatalError)                   (JNIEnv *, const char *);                 /* 18 */  
   
   jint     (JNICALL *PushLocalFrame)               (JNIEnv *, jint);                         /* 19 */  
   jobject  (JNICALL *PopLocalFrame)                (JNIEnv *, jobject);                      /* 20 */  
   
   jobject  (JNICALL *NewGlobalRef)                 (JNIEnv *, jobject);                      /* 21 */  
   void     (JNICALL *DeleteGlobalRef)              (JNIEnv *, jobject);                      /* 22 */  
   void     (JNICALL *DeleteLocalRef)               (JNIEnv *, jobject);                      /* 23 */  
   jboolean (JNICALL *IsSameObject)                 (JNIEnv *, jobject, jobject);             /* 24 */  
   
   jobject  (JNICALL *NewLocalRef)                  (JNIEnv *, jobject);                      /* 25 */  
   jint     (JNICALL *EnsureLocalCapacity)          (JNIEnv *, jint);                         /* 26 */  
   
   jobject  (JNICALL *AllocObject)                  (JNIEnv *, jclass);                       /* 27 */  
   jobject (JNICALL *NewObject)                     (JNIEnv *, jclass, jmethodID, ...);       /* 28 */  
   jobject (JNICALL *NewObjectV)                    (JNIEnv *, jclass, jmethodID, _Jv_va_list); /* 29 */  
   jobject (JNICALL *NewObjectA)                    (JNIEnv *, jclass, jmethodID, jvalue *);  /* 30 */  
   
   jclass   (JNICALL *GetObjectClass)               (JNIEnv *, jobject);                      /* 31 */  
   jboolean (JNICALL *IsInstanceOf)                 (JNIEnv *, jobject, jclass);              /* 32 */  
   jmethodID (JNICALL *GetMethodID)                 (JNIEnv *, jclass, const char *, const char *); /* 33 */  
   
   jobject       (JNICALL *CallObjectMethod)        (JNIEnv *, jobject, jmethodID, ...);         /* 34 */  
   jobject       (JNICALL *CallObjectMethodV)       (JNIEnv *, jobject, jmethodID, _Jv_va_list); /* 35 */  
   jobject       (JNICALL *CallObjectMethodA)       (JNIEnv *, jobject, jmethodID, jvalue *);    /* 36 */  
   jboolean      (JNICALL *CallBooleanMethod)       (JNIEnv *, jobject, jmethodID, ...);         /* 37 */  
   jboolean      (JNICALL *CallBooleanMethodV)      (JNIEnv *, jobject, jmethodID, _Jv_va_list); /* 38 */  
   jboolean      (JNICALL *CallBooleanMethodA)      (JNIEnv *, jobject, jmethodID, jvalue *);    /* 39 */  
   jbyte         (JNICALL *CallByteMethod)          (JNIEnv *, jobject, jmethodID, ...);         /* 40 */  
   jbyte         (JNICALL *CallByteMethodV)         (JNIEnv *, jobject, jmethodID, _Jv_va_list); /* 41 */  
   jbyte         (JNICALL *CallByteMethodA)         (JNIEnv *, jobject, jmethodID, jvalue *);    /* 42 */  
   jchar         (JNICALL *CallCharMethod)          (JNIEnv *, jobject, jmethodID, ...);         /* 43 */  
   jchar         (JNICALL *CallCharMethodV)         (JNIEnv *, jobject, jmethodID, _Jv_va_list); /* 44 */  
   jchar         (JNICALL *CallCharMethodA)         (JNIEnv *, jobject, jmethodID, jvalue *);    /* 45 */  
   jshort        (JNICALL *CallShortMethod)         (JNIEnv *, jobject, jmethodID, ...);         /* 46 */  
   jshort        (JNICALL *CallShortMethodV)        (JNIEnv *, jobject, jmethodID, _Jv_va_list); /* 47 */  
   jshort        (JNICALL *CallShortMethodA)        (JNIEnv *, jobject, jmethodID, jvalue *);    /* 48 */  
   jint          (JNICALL *CallIntMethod)           (JNIEnv *, jobject, jmethodID, ...);         /* 49 */  
   jint          (JNICALL *CallIntMethodV)          (JNIEnv *, jobject, jmethodID, _Jv_va_list); /* 50 */  
   jint          (JNICALL *CallIntMethodA)          (JNIEnv *, jobject, jmethodID, jvalue *);    /* 51 */  
   jlong         (JNICALL *CallLongMethod)          (JNIEnv *, jobject, jmethodID, ...);         /* 52 */  
   jlong         (JNICALL *CallLongMethodV)         (JNIEnv *, jobject, jmethodID, _Jv_va_list); /* 53 */  
   jlong         (JNICALL *CallLongMethodA)         (JNIEnv *, jobject, jmethodID, jvalue *);    /* 54 */  
   jfloat        (JNICALL *CallFloatMethod)         (JNIEnv *, jobject, jmethodID, ...);         /* 55 */  
   jfloat        (JNICALL *CallFloatMethodV)        (JNIEnv *, jobject, jmethodID, _Jv_va_list); /* 56 */  
   jfloat        (JNICALL *CallFloatMethodA)        (JNIEnv *, jobject, jmethodID, jvalue *);    /* 57 */  
   jdouble       (JNICALL *CallDoubleMethod)        (JNIEnv *, jobject, jmethodID, ...);         /* 58 */  
   jdouble       (JNICALL *CallDoubleMethodV)       (JNIEnv *, jobject, jmethodID, _Jv_va_list); /* 59 */  
   jdouble       (JNICALL *CallDoubleMethodA)       (JNIEnv *, jobject, jmethodID, jvalue *);    /* 60 */  
   void          (JNICALL *CallVoidMethod)          (JNIEnv *, jobject, jmethodID, ...);         /* 61 */  
   void          (JNICALL *CallVoidMethodV)         (JNIEnv *, jobject, jmethodID, _Jv_va_list); /* 62 */  
   void          (JNICALL *CallVoidMethodA)         (JNIEnv *, jobject, jmethodID, jvalue *);    /* 63 */  
   
   jobject   (JNICALL *CallNonvirtualObjectMethod)  (JNIEnv *, jobject, jclass, jmethodID, ...);          /* 64 */  
   jobject   (JNICALL *CallNonvirtualObjectMethodV) (JNIEnv *, jobject, jclass, jmethodID, _Jv_va_list);  /* 65 */  
   jobject   (JNICALL *CallNonvirtualObjectMethodA) (JNIEnv *, jobject, jclass, jmethodID, jvalue *);     /* 66 */  
   jboolean  (JNICALL *CallNonvirtualBooleanMethod) (JNIEnv *, jobject, jclass, jmethodID, ...);          /* 67 */  
   jboolean  (JNICALL *CallNonvirtualBooleanMethodV) (JNIEnv *, jobject, jclass, jmethodID, _Jv_va_list); /* 68 */  
   jboolean  (JNICALL *CallNonvirtualBooleanMethodA) (JNIEnv *, jobject, jclass, jmethodID, jvalue *);    /* 69 */  
   jbyte     (JNICALL *CallNonvirtualByteMethod)    (JNIEnv *, jobject, jclass, jmethodID, ...);          /* 70 */  
   jbyte     (JNICALL *CallNonvirtualByteMethodV)   (JNIEnv *, jobject, jclass, jmethodID, _Jv_va_list);  /* 71 */  
   jbyte     (JNICALL *CallNonvirtualByteMethodA)   (JNIEnv *, jobject, jclass, jmethodID, jvalue *);     /* 72 */  
   jchar     (JNICALL *CallNonvirtualCharMethod)    (JNIEnv *, jobject, jclass, jmethodID, ...);          /* 73 */  
   jchar     (JNICALL *CallNonvirtualCharMethodV)   (JNIEnv *, jobject, jclass, jmethodID, _Jv_va_list);  /* 74 */  
   jchar     (JNICALL *CallNonvirtualCharMethodA)   (JNIEnv *, jobject, jclass, jmethodID, jvalue *);     /* 75 */  
   jshort    (JNICALL *CallNonvirtualShortMethod)   (JNIEnv *, jobject, jclass, jmethodID, ...);          /* 76 */  
   jshort    (JNICALL *CallNonvirtualShortMethodV)  (JNIEnv *, jobject, jclass, jmethodID, _Jv_va_list);  /* 77 */  
   jshort    (JNICALL *CallNonvirtualShortMethodA)  (JNIEnv *, jobject, jclass, jmethodID, jvalue *);     /* 78 */  
   jint      (JNICALL *CallNonvirtualIntMethod)     (JNIEnv *, jobject, jclass, jmethodID, ...);          /* 79 */  
   jint      (JNICALL *CallNonvirtualIntMethodV)    (JNIEnv *, jobject, jclass, jmethodID, _Jv_va_list);  /* 80 */  
   jint      (JNICALL *CallNonvirtualIntMethodA)    (JNIEnv *, jobject, jclass, jmethodID, jvalue *);     /* 81 */  
   jlong     (JNICALL *CallNonvirtualLongMethod)    (JNIEnv *, jobject, jclass, jmethodID, ...);          /* 82 */  
   jlong     (JNICALL *CallNonvirtualLongMethodV)   (JNIEnv *, jobject, jclass, jmethodID, _Jv_va_list);  /* 83 */  
   jlong     (JNICALL *CallNonvirtualLongMethodA)   (JNIEnv *, jobject, jclass, jmethodID, jvalue *);     /* 84 */  
   jfloat    (JNICALL *CallNonvirtualFloatMethod)   (JNIEnv *, jobject, jclass, jmethodID, ...);          /* 85 */  
   jfloat    (JNICALL *CallNonvirtualFloatMethodV)  (JNIEnv *, jobject, jclass, jmethodID, _Jv_va_list);  /* 86 */  
   jfloat    (JNICALL *CallNonvirtualFloatMethodA)  (JNIEnv *, jobject, jclass, jmethodID, jvalue *);     /* 87 */  
   jdouble   (JNICALL *CallNonvirtualDoubleMethod)  (JNIEnv *, jobject, jclass, jmethodID, ...);          /* 88 */  
   jdouble   (JNICALL *CallNonvirtualDoubleMethodV) (JNIEnv *, jobject, jclass, jmethodID, _Jv_va_list);  /* 89 */  
   jdouble   (JNICALL *CallNonvirtualDoubleMethodA) (JNIEnv *, jobject, jclass, jmethodID, jvalue *);     /* 90 */  
   void      (JNICALL *CallNonvirtualVoidMethod)    (JNIEnv *, jobject, jclass, jmethodID, ...);          /* 91 */  
   void      (JNICALL *CallNonvirtualVoidMethodV)   (JNIEnv *, jobject, jclass, jmethodID, _Jv_va_list);  /* 92 */  
   void      (JNICALL *CallNonvirtualVoidMethodA)   (JNIEnv *, jobject, jclass, jmethodID, jvalue *);     /* 93 */  
   
   jfieldID      (JNICALL *GetFieldID)              (JNIEnv *, jclass, const char *, const char *);  /* 94 */  
   
   jobject  (JNICALL *GetObjectField)               (JNIEnv *, jobject, jfieldID);                   /* 95 */  
   jboolean (JNICALL *GetBooleanField)              (JNIEnv *, jobject, jfieldID);                   /* 96 */  
   jbyte    (JNICALL *GetByteField)                 (JNIEnv *, jobject, jfieldID);                   /* 97 */  
   jchar    (JNICALL *GetCharField)                 (JNIEnv *, jobject, jfieldID);                   /* 98 */  
   jshort   (JNICALL *GetShortField)                (JNIEnv *, jobject, jfieldID);                   /* 99 */  
   jint     (JNICALL *GetIntField)                  (JNIEnv *, jobject, jfieldID);                   /* 100 */  
   jlong    (JNICALL *GetLongField)                 (JNIEnv *, jobject, jfieldID);                   /* 101 */  
   jfloat   (JNICALL *GetFloatField)                (JNIEnv *, jobject, jfieldID);                   /* 102 */  
   jdouble  (JNICALL *GetDoubleField)               (JNIEnv *, jobject, jfieldID);                   /* 103 */  
   
   void          (JNICALL *SetObjectField)          (JNIEnv *, jobject, jfieldID, jobject);          /* 104 */  
   void          (JNICALL *SetBooleanField)         (JNIEnv *, jobject, jfieldID, jboolean);         /* 105 */  
   void          (JNICALL *SetByteField)            (JNIEnv *, jobject, jfieldID, jbyte);            /* 106 */  
   void          (JNICALL *SetCharField)            (JNIEnv *, jobject, jfieldID, jchar);            /* 107 */  
   void          (JNICALL *SetShortField)           (JNIEnv *, jobject, jfieldID, jshort);           /* 108 */  
   void          (JNICALL *SetIntField)             (JNIEnv *, jobject, jfieldID, jint);             /* 109 */  
   void          (JNICALL *SetLongField)            (JNIEnv *, jobject, jfieldID, jlong);            /* 110 */  
   void          (JNICALL *SetFloatField)           (JNIEnv *, jobject, jfieldID, jfloat);           /* 111 */  
   void          (JNICALL *SetDoubleField)          (JNIEnv *, jobject, jfieldID, jdouble);          /* 112 */  
   
   jmethodID (JNICALL *GetStaticMethodID)           (JNIEnv *, jclass, const char *, const char *);  /* 113 */  
   
   jobject       (JNICALL *CallStaticObjectMethod)  (JNIEnv *, jclass, jmethodID, ...);              /* 114 */  
   jobject       (JNICALL *CallStaticObjectMethodV) (JNIEnv *, jclass, jmethodID, _Jv_va_list);      /* 115 */  
   jobject       (JNICALL *CallStaticObjectMethodA) (JNIEnv *, jclass, jmethodID, jvalue *);         /* 116 */  
   jboolean      (JNICALL *CallStaticBooleanMethod) (JNIEnv *, jclass, jmethodID, ...);              /* 117 */  
   jboolean      (JNICALL *CallStaticBooleanMethodV) (JNIEnv *, jclass, jmethodID, _Jv_va_list);     /* 118 */  
   jboolean      (JNICALL *CallStaticBooleanMethodA) (JNIEnv *, jclass, jmethodID, jvalue *);        /* 119 */  
   jbyte         (JNICALL *CallStaticByteMethod)    (JNIEnv *, jclass, jmethodID, ...);              /* 120 */  
   jbyte         (JNICALL *CallStaticByteMethodV)   (JNIEnv *, jclass, jmethodID, _Jv_va_list);      /* 121 */  
   jbyte         (JNICALL *CallStaticByteMethodA)   (JNIEnv *, jclass, jmethodID, jvalue *);         /* 122 */  
   jchar         (JNICALL *CallStaticCharMethod)    (JNIEnv *, jclass, jmethodID, ...);              /* 123 */  
   jchar         (JNICALL *CallStaticCharMethodV)   (JNIEnv *, jclass, jmethodID, _Jv_va_list);      /* 124 */  
   jchar         (JNICALL *CallStaticCharMethodA)   (JNIEnv *, jclass, jmethodID, jvalue *);         /* 125 */  
   jshort        (JNICALL *CallStaticShortMethod)   (JNIEnv *, jclass, jmethodID, ...);              /* 126 */  
   jshort        (JNICALL *CallStaticShortMethodV)  (JNIEnv *, jclass, jmethodID, _Jv_va_list);      /* 127 */  
   jshort        (JNICALL *CallStaticShortMethodA)  (JNIEnv *, jclass, jmethodID, jvalue *);         /* 128 */  
   jint          (JNICALL *CallStaticIntMethod)     (JNIEnv *, jclass, jmethodID, ...);              /* 129 */  
   jint          (JNICALL *CallStaticIntMethodV)    (JNIEnv *, jclass, jmethodID, _Jv_va_list);      /* 130 */  
   jint          (JNICALL *CallStaticIntMethodA)    (JNIEnv *, jclass, jmethodID, jvalue *);         /* 131 */  
   jlong         (JNICALL *CallStaticLongMethod)    (JNIEnv *, jclass, jmethodID, ...);              /* 132 */  
   jlong         (JNICALL *CallStaticLongMethodV)   (JNIEnv *, jclass, jmethodID, _Jv_va_list);      /* 133 */  
   jlong         (JNICALL *CallStaticLongMethodA)   (JNIEnv *, jclass, jmethodID, jvalue *);         /* 134 */  
   jfloat        (JNICALL *CallStaticFloatMethod)   (JNIEnv *, jclass, jmethodID, ...);              /* 135 */  
   jfloat        (JNICALL *CallStaticFloatMethodV)  (JNIEnv *, jclass, jmethodID, _Jv_va_list);      /* 136 */  
   jfloat        (JNICALL *CallStaticFloatMethodA)  (JNIEnv *, jclass, jmethodID, jvalue *);         /* 137 */  
   jdouble       (JNICALL *CallStaticDoubleMethod)  (JNIEnv *, jclass, jmethodID, ...);              /* 138 */  
   jdouble       (JNICALL *CallStaticDoubleMethodV) (JNIEnv *, jclass, jmethodID, _Jv_va_list);      /* 139 */  
   jdouble       (JNICALL *CallStaticDoubleMethodA) (JNIEnv *, jclass, jmethodID, jvalue *);         /* 140 */  
   void          (JNICALL *CallStaticVoidMethod)    (JNIEnv *, jclass, jmethodID, ...);              /* 141 */  
   void          (JNICALL *CallStaticVoidMethodV)   (JNIEnv *, jclass, jmethodID, _Jv_va_list);      /* 142 */  
   void          (JNICALL *CallStaticVoidMethodA)   (JNIEnv *, jclass, jmethodID, jvalue *);         /* 143 */  
   
   jfieldID      (JNICALL *GetStaticFieldID)        (JNIEnv *, jclass, const char *, const char *);  /* 144 */  
   
   jobject       (JNICALL *GetStaticObjectField)    (JNIEnv *, jclass, jfieldID);                    /* 145 */  
   jboolean      (JNICALL *GetStaticBooleanField)   (JNIEnv *, jclass, jfieldID);                    /* 146 */  
   jbyte         (JNICALL *GetStaticByteField)      (JNIEnv *, jclass, jfieldID);                    /* 147 */  
   jchar         (JNICALL *GetStaticCharField)      (JNIEnv *, jclass, jfieldID);                    /* 148 */  
   jshort        (JNICALL *GetStaticShortField)     (JNIEnv *, jclass, jfieldID);                    /* 149 */  
   jint          (JNICALL *GetStaticIntField)       (JNIEnv *, jclass, jfieldID);                    /* 150 */  
   jlong         (JNICALL *GetStaticLongField)      (JNIEnv *, jclass, jfieldID);                    /* 151 */  
   jfloat        (JNICALL *GetStaticFloatField)     (JNIEnv *, jclass, jfieldID);                    /* 152 */  
   jdouble       (JNICALL *GetStaticDoubleField)    (JNIEnv *, jclass, jfieldID);                    /* 153 */  
   
   void          (JNICALL *SetStaticObjectField)    (JNIEnv *, jclass, jfieldID, jobject);           /* 154 */  
   void          (JNICALL *SetStaticBooleanField)   (JNIEnv *, jclass, jfieldID, jboolean);          /* 155 */  
   void          (JNICALL *SetStaticByteField)      (JNIEnv *, jclass, jfieldID, jbyte);             /* 156 */  
   void          (JNICALL *SetStaticCharField)      (JNIEnv *, jclass, jfieldID, jchar);             /* 157 */  
   void          (JNICALL *SetStaticShortField)     (JNIEnv *, jclass, jfieldID, jshort);            /* 158 */  
   void          (JNICALL *SetStaticIntField)       (JNIEnv *, jclass, jfieldID, jint);              /* 159 */  
   void          (JNICALL *SetStaticLongField)      (JNIEnv *, jclass, jfieldID, jlong);             /* 160 */  
   void          (JNICALL *SetStaticFloatField)     (JNIEnv *, jclass, jfieldID, jfloat);            /* 161 */  
   void          (JNICALL *SetStaticDoubleField)    (JNIEnv *, jclass, jfieldID, jdouble);           /* 162 */  
   
   jstring  (JNICALL *NewString)                    (JNIEnv *, const jchar *, jsize);                /* 163 */  
   jsize    (JNICALL *GetStringLength)              (JNIEnv *, jstring);                             /* 164 */  
   const jchar * (JNICALL *GetStringChars)          (JNIEnv *, jstring, jboolean *);                 /* 165 */  
   void     (JNICALL *ReleaseStringChars)           (JNIEnv *, jstring, const jchar *);              /* 166 */  
   jstring  (JNICALL *NewStringUTF)                 (JNIEnv *, const char *);                        /* 167 */  
   jsize    (JNICALL *GetStringUTFLength)           (JNIEnv *, jstring);                             /* 168 */  
   const char * (JNICALL *GetStringUTFChars)       (JNIEnv *, jstring, jboolean *);                 /* 169 */  
   void     (JNICALL *ReleaseStringUTFChars)        (JNIEnv *, jstring, const char *);               /* 170 */  
   jsize    (JNICALL *GetArrayLength)               (JNIEnv *, jarray);                              /* 171 */  
   jobjectArray   (JNICALL *NewObjectArray)         (JNIEnv *, jsize, jclass, jobject);              /* 172 */  
   jobject  (JNICALL *GetObjectArrayElement)        (JNIEnv *, jobjectArray, jsize);                 /* 173 */  
   void     (JNICALL *SetObjectArrayElement)        (JNIEnv *, jobjectArray, jsize, jobject);        /* 174 */  
   
   jbooleanArray (JNICALL *NewBooleanArray)         (JNIEnv *, jsize);                               /* 175 */  
   jbyteArray    (JNICALL *NewByteArray)            (JNIEnv *, jsize);                               /* 176 */  
   jcharArray    (JNICALL *NewCharArray)            (JNIEnv *, jsize);                               /* 177 */  
   jshortArray   (JNICALL *NewShortArray)           (JNIEnv *, jsize);                               /* 178 */  
   jintArray     (JNICALL *NewIntArray)             (JNIEnv *, jsize);                               /* 179 */  
   jlongArray    (JNICALL *NewLongArray)            (JNIEnv *, jsize);                               /* 180 */  
   jfloatArray   (JNICALL *NewFloatArray)           (JNIEnv *, jsize);                               /* 181 */  
   jdoubleArray  (JNICALL *NewDoubleArray)          (JNIEnv *, jsize);                               /* 182 */  
   
   jboolean *    (JNICALL *GetBooleanArrayElements) (JNIEnv *, jbooleanArray, jboolean *);           /* 183 */  
   jbyte *       (JNICALL *GetByteArrayElements)    (JNIEnv *, jbyteArray, jboolean *);              /* 184 */  
   jchar *       (JNICALL *GetCharArrayElements)    (JNIEnv *, jcharArray, jboolean *);              /* 185 */  
   jshort *      (JNICALL *GetShortArrayElements)   (JNIEnv *, jshortArray, jboolean *);             /* 186 */  
   jint *        (JNICALL *GetIntArrayElements)     (JNIEnv *, jintArray, jboolean *);               /* 187 */  
   jlong *       (JNICALL *GetLongArrayElements)    (JNIEnv *, jlongArray, jboolean *);              /* 188 */  
   jfloat *      (JNICALL *GetFloatArrayElements)   (JNIEnv *, jfloatArray, jboolean *);             /* 189 */  
   jdouble *     (JNICALL *GetDoubleArrayElements)  (JNIEnv *, jdoubleArray, jboolean *);            /* 190 */  
   
   void          (JNICALL *ReleaseBooleanArrayElements) (JNIEnv *, jbooleanArray, jboolean *, jint); /* 191 */  
   void          (JNICALL *ReleaseByteArrayElements)    (JNIEnv *, jbyteArray, jbyte *, jint);       /* 192 */  
   void          (JNICALL *ReleaseCharArrayElements)    (JNIEnv *, jcharArray, jchar *, jint);       /* 193 */  
   void          (JNICALL *ReleaseShortArrayElements)   (JNIEnv *, jshortArray, jshort *, jint);     /* 194 */  
   void          (JNICALL *ReleaseIntArrayElements)     (JNIEnv *, jintArray, jint *, jint);         /* 195 */  
   void          (JNICALL *ReleaseLongArrayElements)    (JNIEnv *, jlongArray, jlong *, jint);       /* 196 */  
   void          (JNICALL *ReleaseFloatArrayElements)   (JNIEnv *, jfloatArray, jfloat *, jint);     /* 197 */  
   void          (JNICALL *ReleaseDoubleArrayElements)  (JNIEnv *, jdoubleArray, jdouble *, jint);   /* 198 */  
   
   void          (JNICALL *GetBooleanArrayRegion)   (JNIEnv *, jbooleanArray,jsize, jsize, jboolean *);  /* 199 */  
   void          (JNICALL *GetByteArrayRegion)      (JNIEnv *, jbyteArray, jsize, jsize, jbyte *);       /* 200 */  
   void          (JNICALL *GetCharArrayRegion)      (JNIEnv *, jcharArray, jsize, jsize, jchar *);       /* 201 */  
   void          (JNICALL *GetShortArrayRegion)     (JNIEnv *, jshortArray, jsize, jsize, jshort *);     /* 202 */  
   void          (JNICALL *GetIntArrayRegion)       (JNIEnv *, jintArray, jsize, jsize, jint *);         /* 203 */  
   void          (JNICALL *GetLongArrayRegion)      (JNIEnv *, jlongArray, jsize, jsize, jlong *);       /* 204 */  
   void          (JNICALL *GetFloatArrayRegion)     (JNIEnv *, jfloatArray, jsize, jsize, jfloat *);     /* 205 */  
   void          (JNICALL *GetDoubleArrayRegion)    (JNIEnv *, jdoubleArray, jsize, jsize, jdouble *);   /* 206 */  
   
   void          (JNICALL *SetBooleanArrayRegion)   (JNIEnv *, jbooleanArray, jsize, jsize, jboolean *); /* 207 */  
   void          (JNICALL *SetByteArrayRegion)      (JNIEnv *, jbyteArray, jsize, jsize, jbyte *);       /* 208 */  
   void          (JNICALL *SetCharArrayRegion)      (JNIEnv *, jcharArray, jsize, jsize, jchar *);       /* 209 */  
   void          (JNICALL *SetShortArrayRegion)     (JNIEnv *, jshortArray, jsize, jsize, jshort *);     /* 210 */  
   void          (JNICALL *SetIntArrayRegion)       (JNIEnv *, jintArray, jsize, jsize, jint *);         /* 211 */  
   void          (JNICALL *SetLongArrayRegion)      (JNIEnv *, jlongArray, jsize, jsize, jlong *);       /* 212 */  
   void          (JNICALL *SetFloatArrayRegion)     (JNIEnv *, jfloatArray, jsize, jsize, jfloat *);     /* 213 */  
   void          (JNICALL *SetDoubleArrayRegion)    (JNIEnv *, jdoubleArray, jsize, jsize, jdouble *);   /* 214 */  
   
   jint     (JNICALL *RegisterNatives)              (JNIEnv *, jclass, const JNINativeMethod *, jint);   /* 215 */  
   jint     (JNICALL *UnregisterNatives)            (JNIEnv *, jclass);                                  /* 216 */  
   jint     (JNICALL *MonitorEnter)                 (JNIEnv *, jobject);                                 /* 217 */  
   jint     (JNICALL *MonitorExit)                  (JNIEnv *, jobject);                                 /* 218 */  
   jint     (JNICALL *GetJavaVM)                    (JNIEnv *, JavaVM **);                               /* 219 */  
   
   /* ---- JNI 1.2 functions ---- */  
   void     (JNICALL *GetStringRegion)              (JNIEnv *, jstring, jsize, jsize, jchar *);          /* 220 */  
   void     (JNICALL *GetStringUTFRegion)           (JNIEnv *, jstring, jsize, jsize, char *);           /* 221 */  
215    
216    void * (JNICALL *GetPrimitiveArrayCritical)      (JNIEnv *, jarray, jboolean *);                      /* 222 */    jint     (JNICALL *GetVersion)                   (JNIEnv *);
217    void   (JNICALL *ReleasePrimitiveArrayCritical)  (JNIEnv *, jarray, void *, jint);                    /* 223 */    jclass   (JNICALL *DefineClass)                  (JNIEnv *, const char *,
218                                                        jobject, const jbyte *,
219                                                        jsize);
220      jclass   (JNICALL *FindClass)                    (JNIEnv *, const char *);
221    
222      jmethodID (JNICALL *FromReflectedMethod)         (JNIEnv *, jobject);
223      jfieldID  (JNICALL *FromReflectedField)          (JNIEnv *, jobject);
224      jobject   (JNICALL *ToReflectedMethod)           (JNIEnv *, jclass,
225                                                        jmethodID, jboolean);
226    
227      jclass   (JNICALL *GetSuperclass)                (JNIEnv *, jclass);
228      jboolean (JNICALL *IsAssignableFrom)             (JNIEnv *, jclass, jclass);
229    
230      jobject  (JNICALL *ToReflectedField)             (JNIEnv *, jclass, jfieldID,
231                                                        jboolean);
232    
233      jint     (JNICALL *Throw)                        (JNIEnv *, jthrowable);
234      jint     (JNICALL *ThrowNew)                     (JNIEnv *, jclass,
235                                                        const char *);
236      jthrowable (JNICALL *ExceptionOccurred)          (JNIEnv *);
237      void     (JNICALL *ExceptionDescribe)            (JNIEnv *);
238      void     (JNICALL *ExceptionClear)               (JNIEnv *);
239      void     (JNICALL *FatalError)                   (JNIEnv *, const char *);
240    
241      jint     (JNICALL *PushLocalFrame)               (JNIEnv *, jint);
242      jobject  (JNICALL *PopLocalFrame)                (JNIEnv *, jobject);
243    
244      jobject  (JNICALL *NewGlobalRef)                 (JNIEnv *, jobject);
245      void     (JNICALL *DeleteGlobalRef)              (JNIEnv *, jobject);
246      void     (JNICALL *DeleteLocalRef)               (JNIEnv *, jobject);
247      jboolean (JNICALL *IsSameObject)                 (JNIEnv *, jobject,
248                                                        jobject);
249    
250      jobject  (JNICALL *NewLocalRef)                  (JNIEnv *, jobject);
251      jint     (JNICALL *EnsureLocalCapacity)          (JNIEnv *, jint);
252    
253      jobject  (JNICALL *AllocObject)                  (JNIEnv *, jclass);
254      jobject (JNICALL *NewObject)                     (JNIEnv *, jclass,
255                                                        jmethodID, ...);
256      jobject (JNICALL *NewObjectV)                    (JNIEnv *, jclass,
257                                                        jmethodID, va_list);
258      jobject (JNICALL *NewObjectA)                    (JNIEnv *, jclass,
259                                                        jmethodID, jvalue *);
260    
261      jclass   (JNICALL *GetObjectClass)               (JNIEnv *, jobject);
262      jboolean (JNICALL *IsInstanceOf)                 (JNIEnv *, jobject, jclass);
263      jmethodID (JNICALL *GetMethodID)                 (JNIEnv *, jclass,
264                                                        const char *, const char *);
265    
266      jobject (JNICALL *CallObjectMethod)      (JNIEnv *, jobject, jmethodID, ...);
267      jobject (JNICALL *CallObjectMethodV)     (JNIEnv *, jobject, jmethodID,
268                                                va_list);
269      jobject (JNICALL *CallObjectMethodA)     (JNIEnv *, jobject, jmethodID,
270                                                jvalue *);
271      jboolean (JNICALL *CallBooleanMethod)    (JNIEnv *, jobject, jmethodID,
272                                                ...);
273      jboolean (JNICALL *CallBooleanMethodV)   (JNIEnv *, jobject, jmethodID,
274                                                va_list);
275      jboolean (JNICALL *CallBooleanMethodA)   (JNIEnv *, jobject, jmethodID,
276                                                jvalue *);
277      jbyte (JNICALL *CallByteMethod)   (JNIEnv *, jobject, jmethodID, ...);
278      jbyte (JNICALL *CallByteMethodV)         (JNIEnv *, jobject, jmethodID,
279                                                va_list);
280      jbyte (JNICALL *CallByteMethodA)         (JNIEnv *, jobject, jmethodID,
281                                                jvalue *);
282      jchar (JNICALL *CallCharMethod)          (JNIEnv *, jobject, jmethodID, ...);
283      jchar (JNICALL *CallCharMethodV)         (JNIEnv *, jobject, jmethodID,
284                                                va_list);
285      jchar (JNICALL *CallCharMethodA)         (JNIEnv *, jobject, jmethodID,
286                                                jvalue *);
287      jshort (JNICALL *CallShortMethod)        (JNIEnv *, jobject, jmethodID, ...);
288      jshort (JNICALL *CallShortMethodV)       (JNIEnv *, jobject, jmethodID,
289                                                va_list);
290      jshort (JNICALL *CallShortMethodA)       (JNIEnv *, jobject, jmethodID,
291                                                jvalue *);
292      jint  (JNICALL *CallIntMethod)           (JNIEnv *, jobject, jmethodID, ...);
293      jint  (JNICALL *CallIntMethodV)          (JNIEnv *, jobject, jmethodID,
294                                                va_list);
295      jint  (JNICALL *CallIntMethodA)          (JNIEnv *, jobject, jmethodID,
296                                                jvalue *);
297      jlong (JNICALL *CallLongMethod)          (JNIEnv *, jobject, jmethodID, ...);
298      jlong (JNICALL *CallLongMethodV)         (JNIEnv *, jobject, jmethodID,
299                                                va_list);
300      jlong (JNICALL *CallLongMethodA)         (JNIEnv *, jobject, jmethodID,
301                                                jvalue *);
302      jfloat (JNICALL *CallFloatMethod)        (JNIEnv *, jobject, jmethodID, ...);
303      jfloat (JNICALL *CallFloatMethodV)       (JNIEnv *, jobject, jmethodID,
304                                                va_list);
305      jfloat (JNICALL *CallFloatMethodA)       (JNIEnv *, jobject, jmethodID,
306                                                jvalue *);
307      jdouble (JNICALL *CallDoubleMethod)      (JNIEnv *, jobject, jmethodID, ...);
308      jdouble (JNICALL *CallDoubleMethodV)     (JNIEnv *, jobject, jmethodID,
309                                                va_list);
310      jdouble (JNICALL *CallDoubleMethodA)     (JNIEnv *, jobject, jmethodID,
311                                                jvalue *);
312      void  (JNICALL *CallVoidMethod)          (JNIEnv *, jobject, jmethodID, ...);
313      void  (JNICALL *CallVoidMethodV)         (JNIEnv *, jobject, jmethodID,
314                                                va_list);
315      void  (JNICALL *CallVoidMethodA)         (JNIEnv *, jobject, jmethodID,
316                                                jvalue *);
317    
318      jobject   (JNICALL *CallNonvirtualObjectMethod)  (JNIEnv *, jobject, jclass,
319                                                        jmethodID, ...);
320      jobject   (JNICALL *CallNonvirtualObjectMethodV) (JNIEnv *, jobject, jclass,
321                                                        jmethodID, va_list);
322      jobject   (JNICALL *CallNonvirtualObjectMethodA) (JNIEnv *, jobject, jclass,
323                                                        jmethodID, jvalue *);
324      jboolean  (JNICALL *CallNonvirtualBooleanMethod) (JNIEnv *, jobject, jclass,
325                                                        jmethodID, ...);
326      jboolean  (JNICALL *CallNonvirtualBooleanMethodV) (JNIEnv *, jobject, jclass,
327                                                         jmethodID, va_list);
328      jboolean  (JNICALL *CallNonvirtualBooleanMethodA) (JNIEnv *, jobject, jclass,
329                                                         jmethodID, jvalue *);
330      jbyte     (JNICALL *CallNonvirtualByteMethod)    (JNIEnv *, jobject, jclass,
331                                                        jmethodID, ...);
332      jbyte     (JNICALL *CallNonvirtualByteMethodV)   (JNIEnv *, jobject, jclass,
333                                                        jmethodID, va_list);
334      jbyte     (JNICALL *CallNonvirtualByteMethodA)   (JNIEnv *, jobject, jclass,
335                                                        jmethodID, jvalue *);
336      jchar     (JNICALL *CallNonvirtualCharMethod)    (JNIEnv *, jobject, jclass,
337                                                        jmethodID, ...);
338      jchar     (JNICALL *CallNonvirtualCharMethodV)   (JNIEnv *, jobject, jclass,
339                                                        jmethodID, va_list);
340      jchar     (JNICALL *CallNonvirtualCharMethodA)   (JNIEnv *, jobject, jclass,
341                                                        jmethodID, jvalue *);
342      jshort    (JNICALL *CallNonvirtualShortMethod)   (JNIEnv *, jobject, jclass,
343                                                        jmethodID, ...);
344      jshort    (JNICALL *CallNonvirtualShortMethodV)  (JNIEnv *, jobject, jclass,
345                                                        jmethodID, va_list);
346      jshort    (JNICALL *CallNonvirtualShortMethodA)  (JNIEnv *, jobject, jclass,
347                                                        jmethodID, jvalue *);
348      jint      (JNICALL *CallNonvirtualIntMethod)     (JNIEnv *, jobject, jclass,
349                                                        jmethodID, ...);
350      jint      (JNICALL *CallNonvirtualIntMethodV)    (JNIEnv *, jobject, jclass,
351                                                        jmethodID, va_list);
352      jint      (JNICALL *CallNonvirtualIntMethodA)    (JNIEnv *, jobject, jclass,
353                                                        jmethodID, jvalue *);
354      jlong     (JNICALL *CallNonvirtualLongMethod)    (JNIEnv *, jobject, jclass,
355                                                        jmethodID, ...);
356      jlong     (JNICALL *CallNonvirtualLongMethodV)   (JNIEnv *, jobject, jclass,
357                                                        jmethodID, va_list);
358      jlong     (JNICALL *CallNonvirtualLongMethodA)   (JNIEnv *, jobject, jclass,
359                                                        jmethodID, jvalue *);
360      jfloat    (JNICALL *CallNonvirtualFloatMethod)   (JNIEnv *, jobject, jclass,
361                                                        jmethodID, ...);
362      jfloat    (JNICALL *CallNonvirtualFloatMethodV)  (JNIEnv *, jobject, jclass,
363                                                        jmethodID, va_list);
364      jfloat    (JNICALL *CallNonvirtualFloatMethodA)  (JNIEnv *, jobject, jclass,
365                                                        jmethodID, jvalue *);
366      jdouble   (JNICALL *CallNonvirtualDoubleMethod)  (JNIEnv *, jobject, jclass,
367                                                        jmethodID, ...);
368      jdouble   (JNICALL *CallNonvirtualDoubleMethodV) (JNIEnv *, jobject, jclass,
369                                                        jmethodID, va_list);
370      jdouble   (JNICALL *CallNonvirtualDoubleMethodA) (JNIEnv *, jobject, jclass,
371                                                        jmethodID, jvalue *);
372      void      (JNICALL *CallNonvirtualVoidMethod)    (JNIEnv *, jobject, jclass,
373                                                        jmethodID, ...);
374      void      (JNICALL *CallNonvirtualVoidMethodV)   (JNIEnv *, jobject, jclass,
375                                                        jmethodID, va_list);
376      void      (JNICALL *CallNonvirtualVoidMethodA)   (JNIEnv *, jobject, jclass,
377                                                        jmethodID, jvalue *);
378    
379      jfieldID  (JNICALL *GetFieldID)          (JNIEnv *, jclass, const char *,
380                                                const char *);
381    
382      jobject  (JNICALL *GetObjectField)       (JNIEnv *, jobject, jfieldID);
383      jboolean (JNICALL *GetBooleanField)      (JNIEnv *, jobject, jfieldID);
384      jbyte    (JNICALL *GetByteField)         (JNIEnv *, jobject, jfieldID);
385      jchar    (JNICALL *GetCharField)         (JNIEnv *, jobject, jfieldID);
386      jshort   (JNICALL *GetShortField)        (JNIEnv *, jobject, jfieldID);
387      jint     (JNICALL *GetIntField)          (JNIEnv *, jobject, jfieldID);
388      jlong    (JNICALL *GetLongField)         (JNIEnv *, jobject, jfieldID);
389      jfloat   (JNICALL *GetFloatField)        (JNIEnv *, jobject, jfieldID);
390      jdouble  (JNICALL *GetDoubleField)       (JNIEnv *, jobject, jfieldID);
391    
392      void  (JNICALL *SetObjectField)          (JNIEnv *, jobject,
393                                                jfieldID, jobject);
394      void  (JNICALL *SetBooleanField)         (JNIEnv *, jobject,
395                                                jfieldID, jboolean);
396      void  (JNICALL *SetByteField)            (JNIEnv *, jobject,
397                                                jfieldID, jbyte);
398      void  (JNICALL *SetCharField)            (JNIEnv *, jobject,
399                                                jfieldID, jchar);
400      void  (JNICALL *SetShortField)           (JNIEnv *, jobject,
401                                                jfieldID, jshort);
402      void  (JNICALL *SetIntField)             (JNIEnv *, jobject,
403                                                jfieldID, jint);
404      void  (JNICALL *SetLongField)            (JNIEnv *, jobject,
405                                                jfieldID, jlong);
406      void  (JNICALL *SetFloatField)           (JNIEnv *, jobject,
407                                                jfieldID, jfloat);
408      void  (JNICALL *SetDoubleField)          (JNIEnv *, jobject,
409                                                jfieldID, jdouble);
410    
411      jmethodID (JNICALL *GetStaticMethodID)   (JNIEnv *, jclass, const char *,
412                                                const char *);
413    
414      jobject  (JNICALL *CallStaticObjectMethod)  (JNIEnv *, jclass, jmethodID,
415                                                   ...);
416      jobject  (JNICALL *CallStaticObjectMethodV) (JNIEnv *, jclass, jmethodID,
417                                                   va_list);
418      jobject  (JNICALL *CallStaticObjectMethodA) (JNIEnv *, jclass, jmethodID,
419                                                   jvalue *);
420      jboolean (JNICALL *CallStaticBooleanMethod) (JNIEnv *, jclass, jmethodID,
421                                                   ...);
422      jboolean (JNICALL *CallStaticBooleanMethodV) (JNIEnv *, jclass, jmethodID,
423                                                    va_list);
424      jboolean (JNICALL *CallStaticBooleanMethodA) (JNIEnv *, jclass, jmethodID,
425                                                    jvalue *);
426      jbyte    (JNICALL *CallStaticByteMethod)    (JNIEnv *, jclass, jmethodID,
427                                                   ...);
428      jbyte    (JNICALL *CallStaticByteMethodV)   (JNIEnv *, jclass, jmethodID,
429                                                   va_list);
430      jbyte    (JNICALL *CallStaticByteMethodA)   (JNIEnv *, jclass, jmethodID,
431                                                   jvalue *);
432      jchar    (JNICALL *CallStaticCharMethod)    (JNIEnv *, jclass, jmethodID,
433                                                   ...);
434      jchar    (JNICALL *CallStaticCharMethodV)   (JNIEnv *, jclass, jmethodID,
435                                                   va_list);
436      jchar    (JNICALL *CallStaticCharMethodA)   (JNIEnv *, jclass, jmethodID,
437                                                   jvalue *);
438      jshort   (JNICALL *CallStaticShortMethod)   (JNIEnv *, jclass, jmethodID,
439                                                   ...);
440      jshort   (JNICALL *CallStaticShortMethodV)  (JNIEnv *, jclass, jmethodID,
441                                                   va_list);
442      jshort   (JNICALL *CallStaticShortMethodA)  (JNIEnv *, jclass, jmethodID,
443                                                   jvalue *);
444      jint     (JNICALL *CallStaticIntMethod)     (JNIEnv *, jclass, jmethodID,
445                                                   ...);
446      jint     (JNICALL *CallStaticIntMethodV)    (JNIEnv *, jclass, jmethodID,
447                                                   va_list);
448      jint     (JNICALL *CallStaticIntMethodA)    (JNIEnv *, jclass, jmethodID,
449                                                   jvalue *);
450      jlong    (JNICALL *CallStaticLongMethod)    (JNIEnv *, jclass, jmethodID,
451                                                   ...);
452      jlong    (JNICALL *CallStaticLongMethodV)   (JNIEnv *, jclass, jmethodID,
453                                                   va_list);
454      jlong    (JNICALL *CallStaticLongMethodA)   (JNIEnv *, jclass, jmethodID,
455                                                   jvalue *);
456      jfloat   (JNICALL *CallStaticFloatMethod)   (JNIEnv *, jclass, jmethodID,
457                                                   ...);
458      jfloat   (JNICALL *CallStaticFloatMethodV)  (JNIEnv *, jclass, jmethodID,
459                                                   va_list);
460      jfloat   (JNICALL *CallStaticFloatMethodA)  (JNIEnv *, jclass, jmethodID,
461                                                   jvalue *);
462      jdouble  (JNICALL *CallStaticDoubleMethod)  (JNIEnv *, jclass, jmethodID,
463                                                   ...);
464      jdouble  (JNICALL *CallStaticDoubleMethodV) (JNIEnv *, jclass, jmethodID,
465                                                   va_list);
466      jdouble  (JNICALL *CallStaticDoubleMethodA) (JNIEnv *, jclass, jmethodID,
467                                                   jvalue *);
468      void     (JNICALL *CallStaticVoidMethod)    (JNIEnv *, jclass, jmethodID,
469                                                   ...);
470      void     (JNICALL *CallStaticVoidMethodV)   (JNIEnv *, jclass, jmethodID,
471                                                   va_list);
472      void     (JNICALL *CallStaticVoidMethodA)   (JNIEnv *, jclass, jmethodID,
473                                                   jvalue *);
474    
475      jfieldID (JNICALL *GetStaticFieldID)        (JNIEnv *, jclass, const char *,
476                                                   const char *);
477    
478      jobject  (JNICALL *GetStaticObjectField)    (JNIEnv *, jclass, jfieldID);
479      jboolean (JNICALL *GetStaticBooleanField)   (JNIEnv *, jclass, jfieldID);
480      jbyte    (JNICALL *GetStaticByteField)      (JNIEnv *, jclass, jfieldID);
481      jchar    (JNICALL *GetStaticCharField)      (JNIEnv *, jclass, jfieldID);
482      jshort   (JNICALL *GetStaticShortField)     (JNIEnv *, jclass, jfieldID);
483      jint     (JNICALL *GetStaticIntField)       (JNIEnv *, jclass, jfieldID);
484      jlong    (JNICALL *GetStaticLongField)      (JNIEnv *, jclass, jfieldID);
485      jfloat   (JNICALL *GetStaticFloatField)     (JNIEnv *, jclass, jfieldID);
486      jdouble  (JNICALL *GetStaticDoubleField)    (JNIEnv *, jclass, jfieldID);
487    
488      void  (JNICALL *SetStaticObjectField)    (JNIEnv *, jclass,
489                                                jfieldID, jobject);
490      void  (JNICALL *SetStaticBooleanField)   (JNIEnv *, jclass,
491                                                jfieldID, jboolean);
492      void  (JNICALL *SetStaticByteField)      (JNIEnv *, jclass,
493                                                jfieldID, jbyte);
494      void  (JNICALL *SetStaticCharField)      (JNIEnv *, jclass,
495                                                jfieldID, jchar);
496      void  (JNICALL *SetStaticShortField)     (JNIEnv *, jclass,
497                                                jfieldID, jshort);
498      void  (JNICALL *SetStaticIntField)       (JNIEnv *, jclass,
499                                                jfieldID, jint);
500      void  (JNICALL *SetStaticLongField)      (JNIEnv *, jclass,
501                                                jfieldID, jlong);
502      void  (JNICALL *SetStaticFloatField)     (JNIEnv *, jclass,
503                                                jfieldID, jfloat);
504      void  (JNICALL *SetStaticDoubleField)    (JNIEnv *, jclass,
505                                                jfieldID, jdouble);
506    
507      jstring  (JNICALL *NewString)            (JNIEnv *, const jchar *, jsize);
508      jsize    (JNICALL *GetStringLength)      (JNIEnv *, jstring);
509      const jchar * (JNICALL *GetStringChars)  (JNIEnv *, jstring, jboolean *);
510      void     (JNICALL *ReleaseStringChars)   (JNIEnv *, jstring, const jchar *);
511      jstring  (JNICALL *NewStringUTF)         (JNIEnv *, const char *);
512      jsize    (JNICALL *GetStringUTFLength)   (JNIEnv *, jstring);
513      const char * (JNICALL *GetStringUTFChars) (JNIEnv *, jstring, jboolean *);
514      void     (JNICALL *ReleaseStringUTFChars) (JNIEnv *, jstring, const char *);
515      jsize    (JNICALL *GetArrayLength)       (JNIEnv *, jarray);
516      jobjectArray (JNICALL *NewObjectArray)    (JNIEnv *, jsize, jclass, jobject);
517      jobject  (JNICALL *GetObjectArrayElement) (JNIEnv *, jobjectArray, jsize);
518      void     (JNICALL *SetObjectArrayElement) (JNIEnv *, jobjectArray, jsize,
519                                                 jobject);
520    
521      jbooleanArray (JNICALL *NewBooleanArray)         (JNIEnv *, jsize);
522      jbyteArray    (JNICALL *NewByteArray)            (JNIEnv *, jsize);
523      jcharArray    (JNICALL *NewCharArray)            (JNIEnv *, jsize);
524      jshortArray   (JNICALL *NewShortArray)           (JNIEnv *, jsize);
525      jintArray     (JNICALL *NewIntArray)             (JNIEnv *, jsize);
526      jlongArray    (JNICALL *NewLongArray)            (JNIEnv *, jsize);
527      jfloatArray   (JNICALL *NewFloatArray)           (JNIEnv *, jsize);
528      jdoubleArray  (JNICALL *NewDoubleArray)          (JNIEnv *, jsize);
529    
530      jboolean *    (JNICALL *GetBooleanArrayElements) (JNIEnv *, jbooleanArray,
531                                                        jboolean *);
532      jbyte *       (JNICALL *GetByteArrayElements)    (JNIEnv *, jbyteArray,
533                                                        jboolean *);
534      jchar *       (JNICALL *GetCharArrayElements)    (JNIEnv *, jcharArray,
535                                                        jboolean *);
536      jshort *      (JNICALL *GetShortArrayElements)   (JNIEnv *, jshortArray,
537                                                        jboolean *);
538      jint *        (JNICALL *GetIntArrayElements)     (JNIEnv *, jintArray,
539                                                        jboolean *);
540      jlong *       (JNICALL *GetLongArrayElements)    (JNIEnv *, jlongArray,
541                                                        jboolean *);
542      jfloat *      (JNICALL *GetFloatArrayElements)   (JNIEnv *, jfloatArray,
543                                                        jboolean *);
544      jdouble *     (JNICALL *GetDoubleArrayElements)  (JNIEnv *, jdoubleArray,
545                                                        jboolean *);
546    
547      void          (JNICALL *ReleaseBooleanArrayElements) (JNIEnv *, jbooleanArray,
548                                                            jboolean *, jint);
549      void          (JNICALL *ReleaseByteArrayElements)    (JNIEnv *, jbyteArray,
550                                                            jbyte *, jint);
551      void          (JNICALL *ReleaseCharArrayElements)    (JNIEnv *, jcharArray,
552                                                            jchar *, jint);
553      void          (JNICALL *ReleaseShortArrayElements)   (JNIEnv *, jshortArray,
554                                                            jshort *, jint);
555      void          (JNICALL *ReleaseIntArrayElements)     (JNIEnv *, jintArray,
556                                                            jint *, jint);
557      void          (JNICALL *ReleaseLongArrayElements)    (JNIEnv *, jlongArray,
558                                                            jlong *, jint);
559      void          (JNICALL *ReleaseFloatArrayElements)   (JNIEnv *, jfloatArray,
560                                                            jfloat *, jint);
561      void          (JNICALL *ReleaseDoubleArrayElements)  (JNIEnv *, jdoubleArray,
562                                                            jdouble *, jint);
563    
564      void          (JNICALL *GetBooleanArrayRegion)   (JNIEnv *, jbooleanArray,
565                                                        jsize, jsize, jboolean *);
566      void          (JNICALL *GetByteArrayRegion)      (JNIEnv *, jbyteArray,
567                                                        jsize, jsize, jbyte *);
568      void          (JNICALL *GetCharArrayRegion)      (JNIEnv *, jcharArray,
569                                                        jsize, jsize, jchar *);
570      void          (JNICALL *GetShortArrayRegion)     (JNIEnv *, jshortArray,
571                                                        jsize, jsize, jshort *);
572      void          (JNICALL *GetIntArrayRegion)       (JNIEnv *, jintArray,
573                                                        jsize, jsize, jint *);
574      void          (JNICALL *GetLongArrayRegion)      (JNIEnv *, jlongArray,
575                                                        jsize, jsize, jlong *);
576      void          (JNICALL *GetFloatArrayRegion)     (JNIEnv *, jfloatArray,
577                                                        jsize, jsize, jfloat *);
578      void          (JNICALL *GetDoubleArrayRegion)    (JNIEnv *, jdoubleArray,
579                                                        jsize, jsize, jdouble *);
580    
581      void          (JNICALL *SetBooleanArrayRegion)   (JNIEnv *, jbooleanArray,
582                                                        jsize, jsize, jboolean *);
583      void          (JNICALL *SetByteArrayRegion)      (JNIEnv *, jbyteArray,
584                                                        jsize, jsize, jbyte *);
585      void          (JNICALL *SetCharArrayRegion)      (JNIEnv *, jcharArray,
586                                                        jsize, jsize, jchar *);
587      void          (JNICALL *SetShortArrayRegion)     (JNIEnv *, jshortArray,
588                                                        jsize, jsize, jshort *);
589      void          (JNICALL *SetIntArrayRegion)       (JNIEnv *, jintArray,
590                                                        jsize, jsize, jint *);
591      void          (JNICALL *SetLongArrayRegion)      (JNIEnv *, jlongArray,
592                                                        jsize, jsize, jlong *);
593      void          (JNICALL *SetFloatArrayRegion)     (JNIEnv *, jfloatArray,
594                                                        jsize, jsize, jfloat *);
595      void          (JNICALL *SetDoubleArrayRegion)    (JNIEnv *, jdoubleArray,
596                                                        jsize, jsize, jdouble *);
597    
598      jint     (JNICALL *RegisterNatives)              (JNIEnv *, jclass,
599                                                        const JNINativeMethod *,
600                                                        jint);
601      jint     (JNICALL *UnregisterNatives)            (JNIEnv *, jclass);
602      jint     (JNICALL *MonitorEnter)                 (JNIEnv *, jobject);
603      jint     (JNICALL *MonitorExit)                  (JNIEnv *, jobject);
604      jint     (JNICALL *GetJavaVM)                    (JNIEnv *, JavaVM **);
605    
606    const jchar * (JNICALL *GetStringCritical)       (JNIEnv *, jstring, jboolean *);                     /* 224 */    /* ---- JNI 1.2 functions ---- */
607    void          (JNICALL *ReleaseStringCritical)   (JNIEnv *, jstring, const jchar *);                  /* 225 */    void     (JNICALL *GetStringRegion)              (JNIEnv *, jstring, jsize,
608                                                        jsize, jchar *);
609      void     (JNICALL *GetStringUTFRegion)           (JNIEnv *, jstring, jsize,
610                                                        jsize, char *);
611    
612      void * (JNICALL *GetPrimitiveArrayCritical)      (JNIEnv *, jarray,
613                                                        jboolean *);
614      void   (JNICALL *ReleasePrimitiveArrayCritical)  (JNIEnv *, jarray, void *,
615                                                        jint);
616    
617      const jchar * (JNICALL *GetStringCritical)       (JNIEnv *, jstring,
618                                                        jboolean *);
619      void          (JNICALL *ReleaseStringCritical)   (JNIEnv *, jstring,
620                                                        const jchar *);
621    
622    jweak  (JNICALL *NewWeakGlobalRef)               (JNIEnv *, jobject);                                 /* 226 */    jweak  (JNICALL *NewWeakGlobalRef)               (JNIEnv *, jobject);
623    void   (JNICALL *DeleteWeakGlobalRef)            (JNIEnv *, jweak);                                   /* 227 */    void   (JNICALL *DeleteWeakGlobalRef)            (JNIEnv *, jweak);
624    
625    jboolean      (JNICALL *ExceptionCheck)          (JNIEnv *);                                          /* 228 */    jboolean      (JNICALL *ExceptionCheck)          (JNIEnv *);
626    
627    /* ---- JNI 1.4 functions ---- */    /* ---- JNI 1.4 functions ---- */
628    jobject       (JNICALL *NewDirectByteBuffer)     (JNIEnv *, void *, jlong);                           /* 229 */    jobject (JNICALL *NewDirectByteBuffer)           (JNIEnv *, void *, jlong);
629    void *        (JNICALL *GetDirectBufferAddress)  (JNIEnv *, jobject);                                 /* 230 */    void *  (JNICALL *GetDirectBufferAddress)        (JNIEnv *, jobject);
630    long          (JNICALL *GetDirectBufferCapacity) (JNIEnv *, jobject);                                 /* 231 */    jlong   (JNICALL *GetDirectBufferCapacity)       (JNIEnv *, jobject);
   
631  };  };
632    
633  #ifdef __cplusplus  #ifdef __cplusplus
 } /* Extern "C" */  
634    
635  struct _Jv_JNIEnv  class _Jv_JNIEnv
636  {  {
637    public:
638    /* The method table.  */    /* The method table.  */
639    const struct JNINativeInterface *p;    struct JNINativeInterface *p;
640    
641    #ifdef _CLASSPATH_JNIENV_CONTENTS
642      _CLASSPATH_JNIENV_CONTENTS
643    #endif
644    
645    jint GetVersion ()    jint GetVersion ()
646    { return p->GetVersion (this); }    { return p->GetVersion (this); }
647    
648    jclass DefineClass (const char* char0, jobject obj0, const jbyte * val1, jsize val2)    jclass DefineClass (const char *name, jobject obj0, const jbyte * val1,
649    { return p->DefineClass (this, char0, obj0, val1, val2); }                        jsize val2)
650      { return p->DefineClass (this, name, obj0, val1, val2); }
651    
652    jclass FindClass (const char * val0)    jclass FindClass (const char * val0)
653    { return p->FindClass (this, val0); }    { return p->FindClass (this, val0); }
# Line 549  struct _Jv_JNIEnv Line 717  struct _Jv_JNIEnv
717    
718    jobject NewObject (jclass cl0, jmethodID meth1, ...)    jobject NewObject (jclass cl0, jmethodID meth1, ...)
719    {    {
720      _Jv_va_list args;      va_list args;
721      va_start (args, meth1);      va_start (args, meth1);
722      jobject result = p->NewObjectV (this, cl0, meth1, args);      jobject result = p->NewObjectV (this, cl0, meth1, args);
723      va_end (args);      va_end (args);
724      return result;      return result;
725    }    }
726    
727    jobject NewObjectV (jclass cl0, jmethodID meth1, _Jv_va_list val2)    jobject NewObjectV (jclass cl0, jmethodID meth1, va_list val2)
728    { return p->NewObjectV (this, cl0, meth1, val2); }    { return p->NewObjectV (this, cl0, meth1, val2); }
729    
730    jobject NewObjectA (jclass cl0, jmethodID meth1, jvalue * val2)    jobject NewObjectA (jclass cl0, jmethodID meth1, jvalue * val2)
# Line 573  struct _Jv_JNIEnv Line 741  struct _Jv_JNIEnv
741    
742    jobject CallObjectMethod (jobject obj0, jmethodID meth1, ...)    jobject CallObjectMethod (jobject obj0, jmethodID meth1, ...)
743    {    {
744      _Jv_va_list args;      va_list args;
745      va_start (args, meth1);      va_start (args, meth1);
746      jobject result = p->CallObjectMethodV (this, obj0, meth1, args);      jobject result = p->CallObjectMethodV (this, obj0, meth1, args);
747      va_end (args);      va_end (args);
748      return result;      return result;
749    }    }
750    
751    jobject CallObjectMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)    jobject CallObjectMethodV (jobject obj0, jmethodID meth1, va_list val2)
752    { return p->CallObjectMethodV (this, obj0, meth1, val2); }    { return p->CallObjectMethodV (this, obj0, meth1, val2); }
753    
754    jobject CallObjectMethodA (jobject obj0, jmethodID meth1, jvalue * val2)    jobject CallObjectMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
# Line 588  struct _Jv_JNIEnv Line 756  struct _Jv_JNIEnv
756    
757    jboolean CallBooleanMethod (jobject obj0, jmethodID meth1, ...)    jboolean CallBooleanMethod (jobject obj0, jmethodID meth1, ...)
758    {    {
759      _Jv_va_list args;      va_list args;
760      va_start (args, meth1);      va_start (args, meth1);
761      jboolean result = p->CallBooleanMethodV (this, obj0, meth1, args);      jboolean result = p->CallBooleanMethodV (this, obj0, meth1, args);
762      va_end (args);      va_end (args);
763      return result;      return result;
764    }    }
765    
766    jboolean CallBooleanMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)    jboolean CallBooleanMethodV (jobject obj0, jmethodID meth1, va_list val2)
767    { return p->CallBooleanMethodV (this, obj0, meth1, val2); }    { return p->CallBooleanMethodV (this, obj0, meth1, val2); }
768    
769    jboolean CallBooleanMethodA (jobject obj0, jmethodID meth1, jvalue * val2)    jboolean CallBooleanMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
# Line 603  struct _Jv_JNIEnv Line 771  struct _Jv_JNIEnv
771    
772    jbyte CallByteMethod (jobject obj0, jmethodID meth1, ...)    jbyte CallByteMethod (jobject obj0, jmethodID meth1, ...)
773    {    {
774      _Jv_va_list args;      va_list args;
775      va_start (args, meth1);      va_start (args, meth1);
776      jbyte result = p->CallByteMethodV (this, obj0, meth1, args);      jbyte result = p->CallByteMethodV (this, obj0, meth1, args);
777      va_end (args);      va_end (args);
778      return result;      return result;
779    }    }
780    
781    jbyte CallByteMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)    jbyte CallByteMethodV (jobject obj0, jmethodID meth1, va_list val2)
782    { return p->CallByteMethodV (this, obj0, meth1, val2); }    { return p->CallByteMethodV (this, obj0, meth1, val2); }
783    
784    jbyte CallByteMethodA (jobject obj0, jmethodID meth1, jvalue * val2)    jbyte CallByteMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
# Line 618  struct _Jv_JNIEnv Line 786  struct _Jv_JNIEnv
786    
787    jchar CallCharMethod (jobject obj0, jmethodID meth1, ...)    jchar CallCharMethod (jobject obj0, jmethodID meth1, ...)
788    {    {
789      _Jv_va_list args;      va_list args;
790      va_start (args, meth1);      va_start (args, meth1);
791      jchar result = p->CallCharMethodV (this, obj0, meth1, args);      jchar result = p->CallCharMethodV (this, obj0, meth1, args);
792      va_end (args);      va_end (args);
793      return result;      return result;
794    }    }
795    
796    jchar CallCharMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)    jchar CallCharMethodV (jobject obj0, jmethodID meth1, va_list val2)
797    { return p->CallCharMethodV (this, obj0, meth1, val2); }    { return p->CallCharMethodV (this, obj0, meth1, val2); }
798    
799    jchar CallCharMethodA (jobject obj0, jmethodID meth1, jvalue * val2)    jchar CallCharMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
# Line 633  struct _Jv_JNIEnv Line 801  struct _Jv_JNIEnv
801    
802    jshort CallShortMethod (jobject obj0, jmethodID meth1, ...)    jshort CallShortMethod (jobject obj0, jmethodID meth1, ...)
803    {    {
804      _Jv_va_list args;      va_list args;
805      va_start (args, meth1);      va_start (args, meth1);
806      jshort result = p->CallShortMethodV (this, obj0, meth1, args);      jshort result = p->CallShortMethodV (this, obj0, meth1, args);
807      va_end (args);      va_end (args);
808      return result;      return result;
809    }    }
810    
811    jshort CallShortMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)    jshort CallShortMethodV (jobject obj0, jmethodID meth1, va_list val2)
812    { return p->CallShortMethodV (this, obj0, meth1, val2); }    { return p->CallShortMethodV (this, obj0, meth1, val2); }
813    
814    jshort CallShortMethodA (jobject obj0, jmethodID meth1, jvalue * val2)    jshort CallShortMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
# Line 648  struct _Jv_JNIEnv Line 816  struct _Jv_JNIEnv
816    
817    jint CallIntMethod (jobject obj0, jmethodID meth1, ...)    jint CallIntMethod (jobject obj0, jmethodID meth1, ...)
818    {    {
819      _Jv_va_list args;      va_list args;
820      va_start (args, meth1);      va_start (args, meth1);
821      jint result = p->CallIntMethodV (this, obj0, meth1, args);      jint result = p->CallIntMethodV (this, obj0, meth1, args);
822      va_end (args);      va_end (args);
823      return result;      return result;
824    }    }
825    
826    jint CallIntMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)    jint CallIntMethodV (jobject obj0, jmethodID meth1, va_list val2)
827    { return p->CallIntMethodV (this, obj0, meth1, val2); }    { return p->CallIntMethodV (this, obj0, meth1, val2); }
828    
829    jint CallIntMethodA (jobject obj0, jmethodID meth1, jvalue * val2)    jint CallIntMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
# Line 663  struct _Jv_JNIEnv Line 831  struct _Jv_JNIEnv
831    
832    jlong CallLongMethod (jobject obj0, jmethodID meth1, ...)    jlong CallLongMethod (jobject obj0, jmethodID meth1, ...)
833    {    {
834      _Jv_va_list args;      va_list args;
835      va_start (args, meth1);      va_start (args, meth1);
836      jlong result = p->CallLongMethodV (this, obj0, meth1, args);      jlong result = p->CallLongMethodV (this, obj0, meth1, args);
837      va_end (args);      va_end (args);
838      return result;      return result;
839    }    }
840    
841    jlong CallLongMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)    jlong CallLongMethodV (jobject obj0, jmethodID meth1, va_list val2)
842    { return p->CallLongMethodV (this, obj0, meth1, val2); }    { return p->CallLongMethodV (this, obj0, meth1, val2); }
843    
844    jlong CallLongMethodA (jobject obj0, jmethodID meth1, jvalue * val2)    jlong CallLongMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
# Line 678  struct _Jv_JNIEnv Line 846  struct _Jv_JNIEnv
846    
847    jfloat CallFloatMethod (jobject obj0, jmethodID meth1, ...)    jfloat CallFloatMethod (jobject obj0, jmethodID meth1, ...)
848    {    {
849      _Jv_va_list args;      va_list args;
850      va_start (args, meth1);      va_start (args, meth1);
851      jfloat result = p->CallFloatMethodV (this, obj0, meth1, args);      jfloat result = p->CallFloatMethodV (this, obj0, meth1, args);
852      va_end (args);      va_end (args);
853      return result;      return result;
854    }    }
855    
856    jfloat CallFloatMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)    jfloat CallFloatMethodV (jobject obj0, jmethodID meth1, va_list val2)
857    { return p->CallFloatMethodV (this, obj0, meth1, val2); }    { return p->CallFloatMethodV (this, obj0, meth1, val2); }
858    
859    jfloat CallFloatMethodA (jobject obj0, jmethodID meth1, jvalue * val2)    jfloat CallFloatMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
# Line 693  struct _Jv_JNIEnv Line 861  struct _Jv_JNIEnv
861    
862    jdouble CallDoubleMethod (jobject obj0, jmethodID meth1, ...)    jdouble CallDoubleMethod (jobject obj0, jmethodID meth1, ...)
863    {    {
864      _Jv_va_list args;      va_list args;
865      va_start (args, meth1);      va_start (args, meth1);
866      jdouble result = p->CallDoubleMethodV (this, obj0, meth1, args);      jdouble result = p->CallDoubleMethodV (this, obj0, meth1, args);
867      va_end (args);      va_end (args);
868      return result;      return result;
869    }    }
870    
871    jdouble CallDoubleMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)    jdouble CallDoubleMethodV (jobject obj0, jmethodID meth1, va_list val2)
872    { return p->CallDoubleMethodV (this, obj0, meth1, val2); }    { return p->CallDoubleMethodV (this, obj0, meth1, val2); }
873    
874    jdouble CallDoubleMethodA (jobject obj0, jmethodID meth1, jvalue * val2)    jdouble CallDoubleMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
# Line 708  struct _Jv_JNIEnv Line 876  struct _Jv_JNIEnv
876    
877    void CallVoidMethod (jobject obj0, jmethodID meth1, ...)    void CallVoidMethod (jobject obj0, jmethodID meth1, ...)
878    {    {
879      _Jv_va_list args;      va_list args;
880      va_start (args, meth1);      va_start (args, meth1);
881      p->CallVoidMethodV (this, obj0, meth1, args);      p->CallVoidMethodV (this, obj0, meth1, args);
882      va_end (args);      va_end (args);
883    }    }
884    
885    void CallVoidMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)    void CallVoidMethodV (jobject obj0, jmethodID meth1, va_list val2)
886    { p->CallVoidMethodV (this, obj0, meth1, val2); }    { p->CallVoidMethodV (this, obj0, meth1, val2); }
887    
888    void CallVoidMethodA (jobject obj0, jmethodID meth1, jvalue * val2)    void CallVoidMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
# Line 722  struct _Jv_JNIEnv Line 890  struct _Jv_JNIEnv
890    
891    jobject CallNonvirtualObjectMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)    jobject CallNonvirtualObjectMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
892    {    {
893      _Jv_va_list args;      va_list args;
894      va_start (args, meth2);      va_start (args, meth2);
895      jobject result = p->CallNonvirtualObjectMethodV (this, obj0, cl1, meth2, args);      jobject result = p->CallNonvirtualObjectMethodV (this, obj0, cl1, meth2, args);
896      va_end (args);      va_end (args);
897      return result;      return result;
898    }    }
899    
900    jobject CallNonvirtualObjectMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)    jobject CallNonvirtualObjectMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
901    { return p->CallNonvirtualObjectMethodV (this, obj0, cl1, meth2, val3); }    { return p->CallNonvirtualObjectMethodV (this, obj0, cl1, meth2, val3); }
902    
903    jobject CallNonvirtualObjectMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)    jobject CallNonvirtualObjectMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
# Line 737  struct _Jv_JNIEnv Line 905  struct _Jv_JNIEnv
905    
906    jboolean CallNonvirtualBooleanMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)    jboolean CallNonvirtualBooleanMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
907    {    {
908      _Jv_va_list args;      va_list args;
909      va_start (args, meth2);      va_start (args, meth2);
910      jboolean result = p->CallNonvirtualBooleanMethodV (this, obj0, cl1, meth2, args);      jboolean result = p->CallNonvirtualBooleanMethodV (this, obj0, cl1, meth2, args);
911      va_end (args);      va_end (args);
912      return result;      return result;
913    }    }
914    
915    jboolean CallNonvirtualBooleanMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)    jboolean CallNonvirtualBooleanMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
916    { return p->CallNonvirtualBooleanMethodV (this, obj0, cl1, meth2, val3); }    { return p->CallNonvirtualBooleanMethodV (this, obj0, cl1, meth2, val3); }
917    
918    jboolean CallNonvirtualBooleanMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)    jboolean CallNonvirtualBooleanMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
# Line 752  struct _Jv_JNIEnv Line 920  struct _Jv_JNIEnv
920    
921    jbyte CallNonvirtualByteMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)    jbyte CallNonvirtualByteMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
922    {    {
923      _Jv_va_list args;      va_list args;
924      va_start (args, meth2);      va_start (args, meth2);
925      jbyte result = p->CallNonvirtualByteMethodV (this, obj0, cl1, meth2, args);      jbyte result = p->CallNonvirtualByteMethodV (this, obj0, cl1, meth2, args);
926      va_end (args);      va_end (args);
927      return result;      return result;
928    }    }
929    
930    jbyte CallNonvirtualByteMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)    jbyte CallNonvirtualByteMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
931    { return p->CallNonvirtualByteMethodV (this, obj0, cl1, meth2, val3); }    { return p->CallNonvirtualByteMethodV (this, obj0, cl1, meth2, val3); }
932    
933    jbyte CallNonvirtualByteMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)    jbyte CallNonvirtualByteMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
# Line 767  struct _Jv_JNIEnv Line 935  struct _Jv_JNIEnv
935    
936    jchar CallNonvirtualCharMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)    jchar CallNonvirtualCharMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
937    {    {
938      _Jv_va_list args;      va_list args;
939      va_start (args, meth2);      va_start (args, meth2);
940      jchar result = p->CallNonvirtualCharMethodV (this, obj0, cl1, meth2, args);      jchar result = p->CallNonvirtualCharMethodV (this, obj0, cl1, meth2, args);
941      va_end (args);      va_end (args);
942      return result;      return result;
943    }    }
944    
945    jchar CallNonvirtualCharMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)    jchar CallNonvirtualCharMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
946    { return p->CallNonvirtualCharMethodV (this, obj0, cl1, meth2, val3); }    { return p->CallNonvirtualCharMethodV (this, obj0, cl1, meth2, val3); }
947    
948    jchar CallNonvirtualCharMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)    jchar CallNonvirtualCharMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
# Line 782  struct _Jv_JNIEnv Line 950  struct _Jv_JNIEnv
950    
951    jshort CallNonvirtualShortMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)    jshort CallNonvirtualShortMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
952    {    {
953      _Jv_va_list args;      va_list args;
954      va_start (args, meth2);      va_start (args, meth2);
955      jshort result = p->CallNonvirtualShortMethodV (this, obj0, cl1, meth2, args);      jshort result = p->CallNonvirtualShortMethodV (this, obj0, cl1, meth2, args);
956      va_end (args);      va_end (args);
957      return result;      return result;
958    }    }
959    
960    jshort CallNonvirtualShortMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)    jshort CallNonvirtualShortMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
961    { return p->CallNonvirtualShortMethodV (this, obj0, cl1, meth2, val3); }    { return p->CallNonvirtualShortMethodV (this, obj0, cl1, meth2, val3); }
962    
963    jshort CallNonvirtualShortMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)    jshort CallNonvirtualShortMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
# Line 797  struct _Jv_JNIEnv Line 965  struct _Jv_JNIEnv
965    
966    jint CallNonvirtualIntMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)    jint CallNonvirtualIntMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
967    {    {
968      _Jv_va_list args;      va_list args;
969      va_start (args, meth2);      va_start (args, meth2);
970      jint result = p->CallNonvirtualIntMethodV (this, obj0, cl1, meth2, args);      jint result = p->CallNonvirtualIntMethodV (this, obj0, cl1, meth2, args);
971      va_end (args);      va_end (args);
972      return result;      return result;
973    }    }
974    
975    jint CallNonvirtualIntMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)    jint CallNonvirtualIntMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
976    { return p->CallNonvirtualIntMethodV (this, obj0, cl1, meth2, val3); }    { return p->CallNonvirtualIntMethodV (this, obj0, cl1, meth2, val3); }
977    
978    jint CallNonvirtualIntMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)    jint CallNonvirtualIntMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
# Line 812  struct _Jv_JNIEnv Line 980  struct _Jv_JNIEnv
980    
981    jlong CallNonvirtualLongMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)    jlong CallNonvirtualLongMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
982    {    {
983      _Jv_va_list args;      va_list args;
984      va_start (args, meth2);      va_start (args, meth2);
985      jlong result = p->CallNonvirtualLongMethodV (this, obj0, cl1, meth2, args);      jlong result = p->CallNonvirtualLongMethodV (this, obj0, cl1, meth2, args);
986      va_end (args);      va_end (args);
987      return result;      return result;
988    }    }
989    
990    jlong CallNonvirtualLongMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)    jlong CallNonvirtualLongMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
991    { return p->CallNonvirtualLongMethodV (this, obj0, cl1, meth2, val3); }    { return p->CallNonvirtualLongMethodV (this, obj0, cl1, meth2, val3); }
992    
993    jlong CallNonvirtualLongMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)    jlong CallNonvirtualLongMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
# Line 827  struct _Jv_JNIEnv Line 995  struct _Jv_JNIEnv
995    
996    jfloat CallNonvirtualFloatMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)    jfloat CallNonvirtualFloatMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
997    {    {
998      _Jv_va_list args;      va_list args;
999      va_start (args, meth2);      va_start (args, meth2);
1000      jfloat result = p->CallNonvirtualFloatMethodV (this, obj0, cl1, meth2, args);      jfloat result = p->CallNonvirtualFloatMethodV (this, obj0, cl1, meth2, args);
1001      va_end (args);      va_end (args);
1002      return result;      return result;
1003    }    }
1004    
1005    jfloat CallNonvirtualFloatMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)    jfloat CallNonvirtualFloatMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
1006    { return p->CallNonvirtualFloatMethodV (this, obj0, cl1, meth2, val3); }    { return p->CallNonvirtualFloatMethodV (this, obj0, cl1, meth2, val3); }
1007    
1008    jfloat CallNonvirtualFloatMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)    jfloat CallNonvirtualFloatMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
# Line 842  struct _Jv_JNIEnv Line 1010  struct _Jv_JNIEnv
1010    
1011    jdouble CallNonvirtualDoubleMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)    jdouble CallNonvirtualDoubleMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
1012    {    {
1013      _Jv_va_list args;      va_list args;
1014      va_start (args, meth2);      va_start (args, meth2);
1015      jdouble result = p->CallNonvirtualDoubleMethodV (this, obj0, cl1, meth2, args);      jdouble result = p->CallNonvirtualDoubleMethodV (this, obj0, cl1, meth2, args);
1016      va_end (args);      va_end (args);
1017      return result;      return result;
1018    }    }
1019    
1020    jdouble CallNonvirtualDoubleMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)    jdouble CallNonvirtualDoubleMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
1021    { return p->CallNonvirtualDoubleMethodV (this, obj0, cl1, meth2, val3); }    { return p->CallNonvirtualDoubleMethodV (this, obj0, cl1, meth2, val3); }
1022    
1023    jdouble CallNonvirtualDoubleMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)    jdouble CallNonvirtualDoubleMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
# Line 857  struct _Jv_JNIEnv Line 1025  struct _Jv_JNIEnv
1025    
1026    void CallNonvirtualVoidMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)    void CallNonvirtualVoidMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
1027    {    {
1028      _Jv_va_list args;      va_list args;
1029      va_start (args, meth2);      va_start (args, meth2);
1030      p->CallNonvirtualVoidMethodV (this, obj0, cl1, meth2, args);      p->CallNonvirtualVoidMethodV (this, obj0, cl1, meth2, args);
1031      va_end (args);      va_end (args);
1032    }    }
1033    
1034    void CallNonvirtualVoidMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)    void CallNonvirtualVoidMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
1035    { p->CallNonvirtualVoidMethodV (this, obj0, cl1, meth2, val3); }    { p->CallNonvirtualVoidMethodV (this, obj0, cl1, meth2, val3); }
1036    
1037    void CallNonvirtualVoidMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)    void CallNonvirtualVoidMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
# Line 931  struct _Jv_JNIEnv Line 1099  struct _Jv_JNIEnv
1099    
1100    jobject CallStaticObjectMethod (jclass cl0, jmethodID meth1, ...)    jobject CallStaticObjectMethod (jclass cl0, jmethodID meth1, ...)
1101    {    {
1102      _Jv_va_list args;      va_list args;
1103      va_start (args, meth1);      va_start (args, meth1);
1104      jobject result = p->CallStaticObjectMethodV (this, cl0, meth1, args);      jobject result = p->CallStaticObjectMethodV (this, cl0, meth1, args);
1105      va_end (args);      va_end (args);
1106      return result;      return result;
1107    }    }
1108    
1109    jobject CallStaticObjectMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)    jobject CallStaticObjectMethodV (jclass cl0, jmethodID meth1, va_list val2)
1110    { return p->CallStaticObjectMethodV (this, cl0, meth1, val2); }    { return p->CallStaticObjectMethodV (this, cl0, meth1, val2); }
1111    
1112    jobject CallStaticObjectMethodA (jclass cl0, jmethodID meth1, jvalue * val2)    jobject CallStaticObjectMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
# Line 946  struct _Jv_JNIEnv Line 1114  struct _Jv_JNIEnv
1114    
1115    jboolean CallStaticBooleanMethod (jclass cl0, jmethodID meth1, ...)    jboolean CallStaticBooleanMethod (jclass cl0, jmethodID meth1, ...)
1116    {    {
1117      _Jv_va_list args;      va_list args;
1118      va_start (args, meth1);      va_start (args, meth1);
1119      jboolean result = p->CallStaticBooleanMethodV (this, cl0, meth1, args);      jboolean result = p->CallStaticBooleanMethodV (this, cl0, meth1, args);
1120      va_end (args);      va_end (args);
1121      return result;      return result;
1122    }    }
1123    
1124    jboolean CallStaticBooleanMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)    jboolean CallStaticBooleanMethodV (jclass cl0, jmethodID meth1, va_list val2)
1125    { return p->CallStaticBooleanMethodV (this, cl0, meth1, val2); }    { return p->CallStaticBooleanMethodV (this, cl0, meth1, val2); }
1126    
1127    jboolean CallStaticBooleanMethodA (jclass cl0, jmethodID meth1, jvalue * val2)    jboolean CallStaticBooleanMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
# Line 961  struct _Jv_JNIEnv Line 1129  struct _Jv_JNIEnv
1129    
1130    jbyte CallStaticByteMethod (jclass cl0, jmethodID meth1, ...)    jbyte CallStaticByteMethod (jclass cl0, jmethodID meth1, ...)
1131    {    {
1132      _Jv_va_list args;      va_list args;
1133      va_start (args, meth1);      va_start (args, meth1);
1134      jbyte result = p->CallStaticByteMethodV (this, cl0, meth1, args);      jbyte result = p->CallStaticByteMethodV (this, cl0, meth1, args);
1135      va_end (args);      va_end (args);
1136      return result;      return result;
1137    }    }
1138    
1139    jbyte CallStaticByteMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)    jbyte CallStaticByteMethodV (jclass cl0, jmethodID meth1, va_list val2)
1140    { return p->CallStaticByteMethodV (this, cl0, meth1, val2); }    { return p->CallStaticByteMethodV (this, cl0, meth1, val2); }
1141    
1142    jbyte CallStaticByteMethodA (jclass cl0, jmethodID meth1, jvalue * val2)    jbyte CallStaticByteMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
# Line 976  struct _Jv_JNIEnv Line 1144  struct _Jv_JNIEnv
1144    
1145    jchar CallStaticCharMethod (jclass cl0, jmethodID meth1, ...)    jchar CallStaticCharMethod (jclass cl0, jmethodID meth1, ...)
1146    {    {
1147      _Jv_va_list args;      va_list args;
1148      va_start (args, meth1);      va_start (args, meth1);
1149      jchar result = p->CallStaticCharMethodV (this, cl0, meth1, args);      jchar result = p->CallStaticCharMethodV (this, cl0, meth1, args);
1150      va_end (args);      va_end (args);
1151      return result;      return result;
1152    }    }
1153    
1154    jchar CallStaticCharMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)    jchar CallStaticCharMethodV (jclass cl0, jmethodID meth1, va_list val2)
1155    { return p->CallStaticCharMethodV (this, cl0, meth1, val2); }    { return p->CallStaticCharMethodV (this, cl0, meth1, val2); }
1156    
1157    jchar CallStaticCharMethodA (jclass cl0, jmethodID meth1, jvalue * val2)    jchar CallStaticCharMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
# Line 991  struct _Jv_JNIEnv Line 1159  struct _Jv_JNIEnv
1159    
1160    jshort CallStaticShortMethod (jclass cl0, jmethodID meth1, ...)    jshort CallStaticShortMethod (jclass cl0, jmethodID meth1, ...)
1161    {    {
1162      _Jv_va_list args;      va_list args;
1163      va_start (args, meth1);      va_start (args, meth1);
1164      jshort result = p->CallStaticShortMethodV (this, cl0, meth1, args);      jshort result = p->CallStaticShortMethodV (this, cl0, meth1, args);
1165      va_end (args);      va_end (args);
1166      return result;      return result;
1167    }    }
1168    
1169    jshort CallStaticShortMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)    jshort CallStaticShortMethodV (jclass cl0, jmethodID meth1, va_list val2)
1170    { return p->CallStaticShortMethodV (this, cl0, meth1, val2); }    { return p->CallStaticShortMethodV (this, cl0, meth1, val2); }
1171    
1172    jshort CallStaticShortMethodA (jclass cl0, jmethodID meth1, jvalue * val2)    jshort CallStaticShortMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
# Line 1006  struct _Jv_JNIEnv Line 1174  struct _Jv_JNIEnv
1174    
1175    jint CallStaticIntMethod (jclass cl0, jmethodID meth1, ...)    jint CallStaticIntMethod (jclass cl0, jmethodID meth1, ...)
1176    {    {
1177      _Jv_va_list args;      va_list args;
1178      va_start (args, meth1);      va_start (args, meth1);
1179      jint result = p->CallStaticIntMethodV (this, cl0, meth1, args);      jint result = p->CallStaticIntMethodV (this, cl0, meth1, args);
1180      va_end (args);      va_end (args);
1181      return result;      return result;
1182    }    }
1183    
1184    jint CallStaticIntMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)    jint CallStaticIntMethodV (jclass cl0, jmethodID meth1, va_list val2)
1185    { return p->CallStaticIntMethodV (this, cl0, meth1, val2); }    { return p->CallStaticIntMethodV (this, cl0, meth1, val2); }
1186    
1187    jint CallStaticIntMethodA (jclass cl0, jmethodID meth1, jvalue * val2)    jint CallStaticIntMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
# Line 1021  struct _Jv_JNIEnv Line 1189  struct _Jv_JNIEnv
1189    
1190    jlong CallStaticLongMethod (jclass cl0, jmethodID meth1, ...)    jlong CallStaticLongMethod (jclass cl0, jmethodID meth1, ...)
1191    {    {
1192      _Jv_va_list args;      va_list args;
1193      va_start (args, meth1);      va_start (args, meth1);
1194      jlong result = p->CallStaticLongMethodV (this, cl0, meth1, args);      jlong result = p->CallStaticLongMethodV (this, cl0, meth1, args);
1195      va_end (args);      va_end (args);
1196      return result;      return result;
1197    }    }
1198    
1199    jlong CallStaticLongMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)    jlong CallStaticLongMethodV (jclass cl0, jmethodID meth1, va_list val2)
1200    { return p->CallStaticLongMethodV (this, cl0, meth1, val2); }    { return p->CallStaticLongMethodV (this, cl0, meth1, val2); }
1201    
1202    jlong CallStaticLongMethodA (jclass cl0, jmethodID meth1, jvalue * val2)    jlong CallStaticLongMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
# Line 1036  struct _Jv_JNIEnv Line 1204  struct _Jv_JNIEnv
1204    
1205    jfloat CallStaticFloatMethod (jclass cl0, jmethodID meth1, ...)    jfloat CallStaticFloatMethod (jclass cl0, jmethodID meth1, ...)
1206    {    {
1207      _Jv_va_list args;      va_list args;
1208      va_start (args, meth1);      va_start (args, meth1);
1209      jfloat result = p->CallStaticFloatMethodV (this, cl0, meth1, args);      jfloat result = p->CallStaticFloatMethodV (this, cl0, meth1, args);
1210      va_end (args);      va_end (args);
1211      return result;      return result;
1212    }    }
1213    
1214    jfloat CallStaticFloatMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)    jfloat CallStaticFloatMethodV (jclass cl0, jmethodID meth1, va_list val2)
1215    { return p->CallStaticFloatMethodV (this, cl0, meth1, val2); }    { return p->CallStaticFloatMethodV (this, cl0, meth1, val2); }
1216    
1217    jfloat CallStaticFloatMethodA (jclass cl0, jmethodID meth1, jvalue * val2)    jfloat CallStaticFloatMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
# Line 1051  struct _Jv_JNIEnv Line 1219  struct _Jv_JNIEnv
1219    
1220    jdouble CallStaticDoubleMethod (jclass cl0, jmethodID meth1, ...)    jdouble CallStaticDoubleMethod (jclass cl0, jmethodID meth1, ...)
1221    {    {
1222      _Jv_va_list args;      va_list args;
1223      va_start (args, meth1);      va_start (args, meth1);
1224      jdouble result = p->CallStaticDoubleMethodV (this, cl0, meth1, args);      jdouble result = p->CallStaticDoubleMethodV (this, cl0, meth1, args);
1225      va_end (args);      va_end (args);
1226      return result;      return result;
1227    }    }
1228    
1229    jdouble CallStaticDoubleMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)    jdouble CallStaticDoubleMethodV (jclass cl0, jmethodID meth1, va_list val2)
1230    { return p->CallStaticDoubleMethodV (this, cl0, meth1, val2); }    { return p->CallStaticDoubleMethodV (this, cl0, meth1, val2); }
1231    
1232    jdouble CallStaticDoubleMethodA (jclass cl0, jmethodID meth1, jvalue * val2)    jdouble CallStaticDoubleMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
# Line 1066  struct _Jv_JNIEnv Line 1234  struct _Jv_JNIEnv
1234    
1235    void CallStaticVoidMethod (jclass cl0, jmethodID meth1, ...)    void CallStaticVoidMethod (jclass cl0, jmethodID meth1, ...)
1236    {    {
1237      _Jv_va_list args;      va_list args;
1238      va_start (args, meth1);      va_start (args, meth1);
1239      p->CallStaticVoidMethodV (this, cl0, meth1, args);      p->CallStaticVoidMethodV (this, cl0, meth1, args);
1240      va_end (args);      va_end (args);
1241    }    }
1242    
1243    void CallStaticVoidMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)    void CallStaticVoidMethodV (jclass cl0, jmethodID meth1, va_list val2)
1244    { p->CallStaticVoidMethodV (this, cl0, meth1, val2); }    { p->CallStaticVoidMethodV (this, cl0, meth1, val2); }
1245    
1246    void CallStaticVoidMethodA (jclass cl0, jmethodID meth1, jvalue * val2)    void CallStaticVoidMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
# Line 1138  struct _Jv_JNIEnv Line 1306  struct _Jv_JNIEnv
1306    jstring NewString (const jchar * val0, jsize val1)    jstring NewString (const jchar * val0, jsize val1)
1307    { return p->NewString (this, val0, val1); }    { return p->NewString (this, val0, val1); }
1308    
1309    jsize GetStringLength (jstring val0)    jint GetStringLength (jstring val0)
1310    { return p->GetStringLength (this, val0); }    { return p->GetStringLength (this, val0); }
1311    
1312    const jchar * GetStringChars (jstring val0, jboolean * val1)    const jchar * GetStringChars (jstring val0, jboolean * val1)
# Line 1333  struct _Jv_JNIEnv Line 1501  struct _Jv_JNIEnv
1501    jboolean ExceptionCheck ()    jboolean ExceptionCheck ()
1502    { return p->ExceptionCheck (this); }    { return p->ExceptionCheck (this); }
1503    
1504    jobject NewDirectByteBuffer (void * val1, jlong val2)    jobject NewDirectByteBuffer (void *addr, jlong capacity)
1505    { return p->NewDirectByteBuffer (this, val1, val2); }    { return p->NewDirectByteBuffer (this, addr, capacity); }
1506    
1507    void * GetDirectBufferAddress (jobject val1)    void *GetDirectBufferAddress (jobject buf)
1508    { return p->GetDirectBufferAddress (this, val1); }    { return p->GetDirectBufferAddress (this, buf); }
   
   long GetDirectBufferCapacity (jobject val1)  
   { return p->GetDirectBufferCapacity (this, val1); }  
1509    
1510      jlong GetDirectBufferCapacity (jobject buf)
1511      { return p->GetDirectBufferCapacity (this, buf); }
1512  };  };
1513    
1514  #endif /* __cplusplus */  #endif /* __cplusplus */
1515    
1516  /*  /*
# Line 1355  struct JNIInvokeInterface Line 1523  struct JNIInvokeInterface
1523    void *reserved1;    void *reserved1;
1524    void *reserved2;    void *reserved2;
1525    
1526    jint (JNICALL *DestroyJavaVM)               (JavaVM *);    jint (JNICALL *DestroyJavaVM)         (JavaVM *);
1527    jint (JNICALL *AttachCurrentThread)         (JavaVM *, void **, void *);    jint (JNICALL *AttachCurrentThread)   (JavaVM *, void **, void *);
1528    jint (JNICALL *DetachCurrentThread)         (JavaVM *);    jint (JNICALL *DetachCurrentThread)   (JavaVM *);
1529    jint (JNICALL *GetEnv)                      (JavaVM *, void **, jint);    jint (JNICALL *GetEnv)                (JavaVM *, void **, jint);
1530    jint (JNICALL *AttachCurrentThreadAsDaemon) (JavaVM *, void **, void *);    jint (JNICALL *AttachCurrentThreadAsDaemon) (JavaVM *, void **, void *);
   
1531  };  };
1532    
1533  #ifdef __cplusplus  #ifdef __cplusplus
1534    
1535  struct _Jv_JavaVM  class _Jv_JavaVM
1536  {  {
1537    public:
1538    const struct JNIInvokeInterface *functions;    const struct JNIInvokeInterface *functions;
1539    
1540    jint DestroyJavaVM ()    jint DestroyJavaVM ()
# Line 1384  struct _Jv_JavaVM Line 1552  struct _Jv_JavaVM
1552    jint AttachCurrentThreadAsDaemon (void **penv, void *args)    jint AttachCurrentThreadAsDaemon (void **penv, void *args)
1553    { return functions->AttachCurrentThreadAsDaemon (this, penv, args); }    { return functions->AttachCurrentThreadAsDaemon (this, penv, args); }
1554  };  };
1555    
1556  #endif /* __cplusplus */  #endif /* __cplusplus */
1557    
1558  typedef struct JavaVMAttachArgs  typedef struct JavaVMAttachArgs
# Line 1415  typedef struct JavaVMInitArgs Line 1584  typedef struct JavaVMInitArgs
1584    jboolean ignoreUnrecognized;    jboolean ignoreUnrecognized;
1585  } JavaVMInitArgs;  } JavaVMInitArgs;
1586    
1587    
1588    
1589  /* Keep c-font-lock-extra-types in alphabetical order. */  /* Keep c-font-lock-extra-types in alphabetical order. */
1590  /* Local Variables: */  /* Local Variables: */
# Line 1425  typedef struct JavaVMInitArgs Line 1595  typedef struct JavaVMInitArgs
1595     "jint" "jintArray" "jlong" "jlongArray" "jmethodID" "jobject" "jstring" "jthrowable"     "jint" "jintArray" "jlong" "jlongArray" "jmethodID" "jobject" "jstring" "jthrowable"
1596     "jvalue" "jweak") */     "jvalue" "jweak") */
1597  /* End: */  /* End: */
1598  #endif /* __CLASSPATH_JNI_H__ */  
1599    #endif /* _CLASSPATH_JNI_H */

Legend:
Removed from v.1.3.2.1  
changed lines
  Added in v.1.3.2.2

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26