1 /* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004 Free Software Foundation
3 This file is part of libgcj.
5 This software is copyrighted work licensed under the terms of the
6 Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
9 /* Note: this file must be compilable by the C compiler (for now,
10 assuming GNU C is ok). This means you must never use `//'
11 comments, and all C++-specific code must be conditional on
17 #include <gcj/libgcj-config.h>
19 /* We include <stdio.h> for compatibility with Sun's <jni.h>. */
23 #define _Jv_va_list va_list
25 #ifdef __GCJ_JNI_IMPL__
27 /* If __GCJ_JNI_IMPL__ is defined, then we assume that we're building
28 libgcj itself, and we include headers which taint the namespace
29 more than is acceptable for the ordinary JNI user. */
30 #include <gcj/javaprims.h>
31 #include <gcj/array.h>
32 #include <gnu/gcj/runtime/JNIWeakRef.h>
34 typedef gnu::gcj::runtime::JNIWeakRef
*jweak
;
36 typedef struct _Jv_JNIEnv JNIEnv
;
37 typedef struct _Jv_JavaVM JavaVM
;
40 #define JNI_FALSE false
42 #else /* __GCJ_JNI_IMPL__ */
46 /* If we're using gcc, we can use a platform-independent scheme to get
47 the right integer types. FIXME: this is not always correct, for
48 instance on the c4x it will be wrong -- it depends on whether
50 typedef int jbyte
__attribute__((__mode__(__QI__
)));
51 typedef int jshort
__attribute__((__mode__(__HI__
)));
52 typedef int jint
__attribute__((__mode__(__SI__
)));
53 typedef int jlong
__attribute__((__mode__(__DI__
)));
54 typedef int jboolean
__attribute__((__mode__(__QI__
)));
55 typedef unsigned short jchar
__attribute__((__mode__(__HI__
)));
57 typedef double jdouble
;
62 # ifdef JV_HAVE_INTTYPES_H
64 /* If <inttypes.h> is available, we use it. */
66 # include <inttypes.h>
69 typedef int16_t jshort
;
71 typedef int64_t jlong
;
73 typedef double jdouble
;
75 typedef int8_t jboolean
;
76 typedef uint16_t jchar
;
78 # else /* JV_HAVE_INTTYPES_H */
80 /* For now, we require either gcc or <inttypes.h>. If we did more
81 work at configure time we could get around this, but right now it
82 doesn't seem worth it. */
83 # error jni.h not ported to this platform
85 # endif /* JV_HAVE_INTTYPES_H */
87 # endif /* __GNUC__ */
91 /* Define dummy classes and then define the JNI types as pointers. */
93 struct __jclass
: __jobject
{};
94 struct __jstring
: __jobject
{};
95 struct __jthrowable
: __jobject
{};
96 struct __jweak
: __jobject
{};
97 struct __jarray
: __jobject
{};
98 struct __jobjectArray
: __jarray
{};
99 struct __jbyteArray
: __jarray
{};
100 struct __jshortArray
: __jarray
{};
101 struct __jintArray
: __jarray
{};
102 struct __jlongArray
: __jarray
{};
103 struct __jbooleanArray
: __jarray
{};
104 struct __jcharArray
: __jarray
{};
105 struct __jfloatArray
: __jarray
{};
106 struct __jdoubleArray
: __jarray
{};
108 typedef __jobject
*jobject
;
109 typedef __jclass
*jclass
;
110 typedef __jstring
*jstring
;
111 typedef __jthrowable
*jthrowable
;
112 typedef __jweak
*jweak
;
113 typedef __jarray
*jarray
;
114 typedef __jobjectArray
*jobjectArray
;
115 typedef __jbyteArray
*jbyteArray
;
116 typedef __jshortArray
*jshortArray
;
117 typedef __jintArray
*jintArray
;
118 typedef __jlongArray
*jlongArray
;
119 typedef __jbooleanArray
*jbooleanArray
;
120 typedef __jcharArray
*jcharArray
;
121 typedef __jfloatArray
*jfloatArray
;
122 typedef __jdoubleArray
*jdoubleArray
;
124 #define JNI_TRUE true
125 #define JNI_FALSE false
127 typedef struct _Jv_JNIEnv JNIEnv
;
128 typedef struct _Jv_JavaVM JavaVM
;
130 # else /* __cplusplus */
132 /* For C, simply define the class types as generic pointers. */
133 typedef void *jobject
;
134 typedef jobject jclass
;
135 typedef jobject jstring
;
136 typedef jobject jthrowable
;
137 typedef jobject jweak
;
138 typedef jobject jarray
;
139 typedef jobject jobjectArray
;
140 typedef jobject jbyteArray
;
141 typedef jobject jshortArray
;
142 typedef jobject jintArray
;
143 typedef jobject jlongArray
;
144 typedef jobject jbooleanArray
;
145 typedef jobject jcharArray
;
146 typedef jobject jfloatArray
;
147 typedef jobject jdoubleArray
;
152 typedef const struct JNINativeInterface
*JNIEnv
;
153 typedef const struct JNIInvokeInterface
*JavaVM
;
155 # endif /* __cplusplus */
158 typedef void *jfieldID
;
159 typedef void *jmethodID
;
161 #endif /* __GCJ_JNI_IMPL__ */
163 /* Version numbers. */
164 #define JNI_VERSION_1_1 0x00010001
165 #define JNI_VERSION_1_2 0x00010002
166 #define JNI_VERSION_1_4 0x00010004
168 /* Used when releasing array elements. */
175 #define JNI_EDETACHED -2
176 #define JNI_EVERSION -3
178 /* Linkage and calling conventions. */
179 #if defined (_WIN32) || defined (__WIN32__) || defined (WIN32)
181 #define JNIIMPORT __declspec(dllimport)
182 #define JNIEXPORT __declspec(dllexport)
184 #define JNICALL __stdcall
186 /* These defines apply to symbols in libgcj */
188 # ifdef __GCJ_JNI_IMPL__
189 # define __GCJ_JNIIMPEXP__ JNIEXPORT
191 # define __GCJ_JNIIMPEXP__ JNIIMPORT
192 # endif /* ! __GCJ_JNI_IMPL__ */
193 #else /* ! __GCJ_DLL__ */
194 # define __GCJ_JNIIMPEXP__
195 #endif /* __GCJ_DLL__ */
197 #else /* !( _WIN32 || __WIN32__ || WIN32) */
202 #define __GCJ_JNIIMPEXP__
204 #endif /* !( _WIN32 || __WIN32__ || WIN32) */
210 #endif /* __cplusplus */
212 /* These functions might be defined in libraries which we load; the
213 JNI implementation calls them at the appropriate times. */
214 extern JNIEXPORT jint JNICALL
JNI_OnLoad (JavaVM
*, void *);
215 extern JNIEXPORT
void JNICALL
JNI_OnUnload (JavaVM
*, void *);
217 /* These functions are called by user code to start using the
219 extern __GCJ_JNIIMPEXP__ jint JNICALL
220 JNI_GetDefaultJavaVMInitArgs (void *);
222 extern __GCJ_JNIIMPEXP__ jint JNICALL
223 JNI_CreateJavaVM (JavaVM
**, void **, void *);
225 extern __GCJ_JNIIMPEXP__ jint JNICALL
226 JNI_GetCreatedJavaVMs(JavaVM
**, jsize
, jsize
*);
230 #endif /* __cplusplus */
245 /* This structure is used when registering native methods. */
250 void *fnPtr
; /* Sigh. */
253 struct JNINativeInterface
260 jint (JNICALL
*GetVersion
) (JNIEnv
*);
261 jclass (JNICALL
*DefineClass
) (JNIEnv
*, const char *,
262 jobject
, const jbyte
*,
264 jclass (JNICALL
*FindClass
) (JNIEnv
*, const char *);
266 jmethodID (JNICALL
*FromReflectedMethod
) (JNIEnv
*, jobject
);
267 jfieldID (JNICALL
*FromReflectedField
) (JNIEnv
*, jobject
);
268 jobject (JNICALL
*ToReflectedMethod
) (JNIEnv
*, jclass
,
269 jmethodID
, jboolean
);
271 jclass (JNICALL
*GetSuperclass
) (JNIEnv
*, jclass
);
272 jboolean (JNICALL
*IsAssignableFrom
) (JNIEnv
*, jclass
, jclass
);
274 jobject (JNICALL
*ToReflectedField
) (JNIEnv
*, jclass
, jfieldID
,
277 jint (JNICALL
*Throw
) (JNIEnv
*, jthrowable
);
278 jint (JNICALL
*ThrowNew
) (JNIEnv
*, jclass
,
280 jthrowable (JNICALL
*ExceptionOccurred
) (JNIEnv
*);
281 void (JNICALL
*ExceptionDescribe
) (JNIEnv
*);
282 void (JNICALL
*ExceptionClear
) (JNIEnv
*);
283 void (JNICALL
*FatalError
) (JNIEnv
*, const char *);
285 jint (JNICALL
*PushLocalFrame
) (JNIEnv
*, jint
);
286 jobject (JNICALL
*PopLocalFrame
) (JNIEnv
*, jobject
);
288 jobject (JNICALL
*NewGlobalRef
) (JNIEnv
*, jobject
);
289 void (JNICALL
*DeleteGlobalRef
) (JNIEnv
*, jobject
);
290 void (JNICALL
*DeleteLocalRef
) (JNIEnv
*, jobject
);
291 jboolean (JNICALL
*IsSameObject
) (JNIEnv
*, jobject
,
294 jobject (JNICALL
*NewLocalRef
) (JNIEnv
*, jobject
);
295 jint (JNICALL
*EnsureLocalCapacity
) (JNIEnv
*, jint
);
297 jobject (JNICALL
*AllocObject
) (JNIEnv
*, jclass
);
298 jobject (JNICALL
*NewObject
) (JNIEnv
*, jclass
,
300 jobject (JNICALL
*NewObjectV
) (JNIEnv
*, jclass
,
301 jmethodID
, _Jv_va_list
);
302 jobject (JNICALL
*NewObjectA
) (JNIEnv
*, jclass
,
303 jmethodID
, jvalue
*);
305 jclass (JNICALL
*GetObjectClass
) (JNIEnv
*, jobject
);
306 jboolean (JNICALL
*IsInstanceOf
) (JNIEnv
*, jobject
, jclass
);
307 jmethodID (JNICALL
*GetMethodID
) (JNIEnv
*, jclass
,
308 const char *, const char *);
310 jobject (JNICALL
*CallObjectMethod
) (JNIEnv
*, jobject
, jmethodID
, ...);
311 jobject (JNICALL
*CallObjectMethodV
) (JNIEnv
*, jobject
, jmethodID
,
313 jobject (JNICALL
*CallObjectMethodA
) (JNIEnv
*, jobject
, jmethodID
,
315 jboolean (JNICALL
*CallBooleanMethod
) (JNIEnv
*, jobject
, jmethodID
,
317 jboolean (JNICALL
*CallBooleanMethodV
) (JNIEnv
*, jobject
, jmethodID
,
319 jboolean (JNICALL
*CallBooleanMethodA
) (JNIEnv
*, jobject
, jmethodID
,
321 jbyte (JNICALL
*CallByteMethod
) (JNIEnv
*, jobject
, jmethodID
, ...);
322 jbyte (JNICALL
*CallByteMethodV
) (JNIEnv
*, jobject
, jmethodID
,
324 jbyte (JNICALL
*CallByteMethodA
) (JNIEnv
*, jobject
, jmethodID
,
326 jchar (JNICALL
*CallCharMethod
) (JNIEnv
*, jobject
, jmethodID
, ...);
327 jchar (JNICALL
*CallCharMethodV
) (JNIEnv
*, jobject
, jmethodID
,
329 jchar (JNICALL
*CallCharMethodA
) (JNIEnv
*, jobject
, jmethodID
,
331 jshort (JNICALL
*CallShortMethod
) (JNIEnv
*, jobject
, jmethodID
, ...);
332 jshort (JNICALL
*CallShortMethodV
) (JNIEnv
*, jobject
, jmethodID
,
334 jshort (JNICALL
*CallShortMethodA
) (JNIEnv
*, jobject
, jmethodID
,
336 jint (JNICALL
*CallIntMethod
) (JNIEnv
*, jobject
, jmethodID
, ...);
337 jint (JNICALL
*CallIntMethodV
) (JNIEnv
*, jobject
, jmethodID
,
339 jint (JNICALL
*CallIntMethodA
) (JNIEnv
*, jobject
, jmethodID
,
341 jlong (JNICALL
*CallLongMethod
) (JNIEnv
*, jobject
, jmethodID
, ...);
342 jlong (JNICALL
*CallLongMethodV
) (JNIEnv
*, jobject
, jmethodID
,
344 jlong (JNICALL
*CallLongMethodA
) (JNIEnv
*, jobject
, jmethodID
,
346 jfloat (JNICALL
*CallFloatMethod
) (JNIEnv
*, jobject
, jmethodID
, ...);
347 jfloat (JNICALL
*CallFloatMethodV
) (JNIEnv
*, jobject
, jmethodID
,
349 jfloat (JNICALL
*CallFloatMethodA
) (JNIEnv
*, jobject
, jmethodID
,
351 jdouble (JNICALL
*CallDoubleMethod
) (JNIEnv
*, jobject
, jmethodID
, ...);
352 jdouble (JNICALL
*CallDoubleMethodV
) (JNIEnv
*, jobject
, jmethodID
,
354 jdouble (JNICALL
*CallDoubleMethodA
) (JNIEnv
*, jobject
, jmethodID
,
356 void (JNICALL
*CallVoidMethod
) (JNIEnv
*, jobject
, jmethodID
, ...);
357 void (JNICALL
*CallVoidMethodV
) (JNIEnv
*, jobject
, jmethodID
,
359 void (JNICALL
*CallVoidMethodA
) (JNIEnv
*, jobject
, jmethodID
,
362 jobject (JNICALL
*CallNonvirtualObjectMethod
) (JNIEnv
*, jobject
, jclass
,
364 jobject (JNICALL
*CallNonvirtualObjectMethodV
) (JNIEnv
*, jobject
, jclass
,
365 jmethodID
, _Jv_va_list
);
366 jobject (JNICALL
*CallNonvirtualObjectMethodA
) (JNIEnv
*, jobject
, jclass
,
367 jmethodID
, jvalue
*);
368 jboolean (JNICALL
*CallNonvirtualBooleanMethod
) (JNIEnv
*, jobject
, jclass
,
370 jboolean (JNICALL
*CallNonvirtualBooleanMethodV
) (JNIEnv
*, jobject
, jclass
,
371 jmethodID
, _Jv_va_list
);
372 jboolean (JNICALL
*CallNonvirtualBooleanMethodA
) (JNIEnv
*, jobject
, jclass
,
373 jmethodID
, jvalue
*);
374 jbyte (JNICALL
*CallNonvirtualByteMethod
) (JNIEnv
*, jobject
, jclass
,
376 jbyte (JNICALL
*CallNonvirtualByteMethodV
) (JNIEnv
*, jobject
, jclass
,
377 jmethodID
, _Jv_va_list
);
378 jbyte (JNICALL
*CallNonvirtualByteMethodA
) (JNIEnv
*, jobject
, jclass
,
379 jmethodID
, jvalue
*);
380 jchar (JNICALL
*CallNonvirtualCharMethod
) (JNIEnv
*, jobject
, jclass
,
382 jchar (JNICALL
*CallNonvirtualCharMethodV
) (JNIEnv
*, jobject
, jclass
,
383 jmethodID
, _Jv_va_list
);
384 jchar (JNICALL
*CallNonvirtualCharMethodA
) (JNIEnv
*, jobject
, jclass
,
385 jmethodID
, jvalue
*);
386 jshort (JNICALL
*CallNonvirtualShortMethod
) (JNIEnv
*, jobject
, jclass
,
388 jshort (JNICALL
*CallNonvirtualShortMethodV
) (JNIEnv
*, jobject
, jclass
,
389 jmethodID
, _Jv_va_list
);
390 jshort (JNICALL
*CallNonvirtualShortMethodA
) (JNIEnv
*, jobject
, jclass
,
391 jmethodID
, jvalue
*);
392 jint (JNICALL
*CallNonvirtualIntMethod
) (JNIEnv
*, jobject
, jclass
,
394 jint (JNICALL
*CallNonvirtualIntMethodV
) (JNIEnv
*, jobject
, jclass
,
395 jmethodID
, _Jv_va_list
);
396 jint (JNICALL
*CallNonvirtualIntMethodA
) (JNIEnv
*, jobject
, jclass
,
397 jmethodID
, jvalue
*);
398 jlong (JNICALL
*CallNonvirtualLongMethod
) (JNIEnv
*, jobject
, jclass
,
400 jlong (JNICALL
*CallNonvirtualLongMethodV
) (JNIEnv
*, jobject
, jclass
,
401 jmethodID
, _Jv_va_list
);
402 jlong (JNICALL
*CallNonvirtualLongMethodA
) (JNIEnv
*, jobject
, jclass
,
403 jmethodID
, jvalue
*);
404 jfloat (JNICALL
*CallNonvirtualFloatMethod
) (JNIEnv
*, jobject
, jclass
,
406 jfloat (JNICALL
*CallNonvirtualFloatMethodV
) (JNIEnv
*, jobject
, jclass
,
407 jmethodID
, _Jv_va_list
);
408 jfloat (JNICALL
*CallNonvirtualFloatMethodA
) (JNIEnv
*, jobject
, jclass
,
409 jmethodID
, jvalue
*);
410 jdouble (JNICALL
*CallNonvirtualDoubleMethod
) (JNIEnv
*, jobject
, jclass
,
412 jdouble (JNICALL
*CallNonvirtualDoubleMethodV
) (JNIEnv
*, jobject
, jclass
,
413 jmethodID
, _Jv_va_list
);
414 jdouble (JNICALL
*CallNonvirtualDoubleMethodA
) (JNIEnv
*, jobject
, jclass
,
415 jmethodID
, jvalue
*);
416 void (JNICALL
*CallNonvirtualVoidMethod
) (JNIEnv
*, jobject
, jclass
,
418 void (JNICALL
*CallNonvirtualVoidMethodV
) (JNIEnv
*, jobject
, jclass
,
419 jmethodID
, _Jv_va_list
);
420 void (JNICALL
*CallNonvirtualVoidMethodA
) (JNIEnv
*, jobject
, jclass
,
421 jmethodID
, jvalue
*);
423 jfieldID (JNICALL
*GetFieldID
) (JNIEnv
*, jclass
, const char *,
426 jobject (JNICALL
*GetObjectField
) (JNIEnv
*, jobject
, jfieldID
);
427 jboolean (JNICALL
*GetBooleanField
) (JNIEnv
*, jobject
, jfieldID
);
428 jbyte (JNICALL
*GetByteField
) (JNIEnv
*, jobject
, jfieldID
);
429 jchar (JNICALL
*GetCharField
) (JNIEnv
*, jobject
, jfieldID
);
430 jshort (JNICALL
*GetShortField
) (JNIEnv
*, jobject
, jfieldID
);
431 jint (JNICALL
*GetIntField
) (JNIEnv
*, jobject
, jfieldID
);
432 jlong (JNICALL
*GetLongField
) (JNIEnv
*, jobject
, jfieldID
);
433 jfloat (JNICALL
*GetFloatField
) (JNIEnv
*, jobject
, jfieldID
);
434 jdouble (JNICALL
*GetDoubleField
) (JNIEnv
*, jobject
, jfieldID
);
436 void (JNICALL
*SetObjectField
) (JNIEnv
*, jobject
,
438 void (JNICALL
*SetBooleanField
) (JNIEnv
*, jobject
,
440 void (JNICALL
*SetByteField
) (JNIEnv
*, jobject
,
442 void (JNICALL
*SetCharField
) (JNIEnv
*, jobject
,
444 void (JNICALL
*SetShortField
) (JNIEnv
*, jobject
,
446 void (JNICALL
*SetIntField
) (JNIEnv
*, jobject
,
448 void (JNICALL
*SetLongField
) (JNIEnv
*, jobject
,
450 void (JNICALL
*SetFloatField
) (JNIEnv
*, jobject
,
452 void (JNICALL
*SetDoubleField
) (JNIEnv
*, jobject
,
455 jmethodID (JNICALL
*GetStaticMethodID
) (JNIEnv
*, jclass
, const char *,
458 jobject (JNICALL
*CallStaticObjectMethod
) (JNIEnv
*, jclass
, jmethodID
,
460 jobject (JNICALL
*CallStaticObjectMethodV
) (JNIEnv
*, jclass
, jmethodID
,
462 jobject (JNICALL
*CallStaticObjectMethodA
) (JNIEnv
*, jclass
, jmethodID
,
464 jboolean (JNICALL
*CallStaticBooleanMethod
) (JNIEnv
*, jclass
, jmethodID
,
466 jboolean (JNICALL
*CallStaticBooleanMethodV
) (JNIEnv
*, jclass
, jmethodID
,
468 jboolean (JNICALL
*CallStaticBooleanMethodA
) (JNIEnv
*, jclass
, jmethodID
,
470 jbyte (JNICALL
*CallStaticByteMethod
) (JNIEnv
*, jclass
, jmethodID
,
472 jbyte (JNICALL
*CallStaticByteMethodV
) (JNIEnv
*, jclass
, jmethodID
,
474 jbyte (JNICALL
*CallStaticByteMethodA
) (JNIEnv
*, jclass
, jmethodID
,
476 jchar (JNICALL
*CallStaticCharMethod
) (JNIEnv
*, jclass
, jmethodID
,
478 jchar (JNICALL
*CallStaticCharMethodV
) (JNIEnv
*, jclass
, jmethodID
,
480 jchar (JNICALL
*CallStaticCharMethodA
) (JNIEnv
*, jclass
, jmethodID
,
482 jshort (JNICALL
*CallStaticShortMethod
) (JNIEnv
*, jclass
, jmethodID
,
484 jshort (JNICALL
*CallStaticShortMethodV
) (JNIEnv
*, jclass
, jmethodID
,
486 jshort (JNICALL
*CallStaticShortMethodA
) (JNIEnv
*, jclass
, jmethodID
,
488 jint (JNICALL
*CallStaticIntMethod
) (JNIEnv
*, jclass
, jmethodID
,
490 jint (JNICALL
*CallStaticIntMethodV
) (JNIEnv
*, jclass
, jmethodID
,
492 jint (JNICALL
*CallStaticIntMethodA
) (JNIEnv
*, jclass
, jmethodID
,
494 jlong (JNICALL
*CallStaticLongMethod
) (JNIEnv
*, jclass
, jmethodID
,
496 jlong (JNICALL
*CallStaticLongMethodV
) (JNIEnv
*, jclass
, jmethodID
,
498 jlong (JNICALL
*CallStaticLongMethodA
) (JNIEnv
*, jclass
, jmethodID
,
500 jfloat (JNICALL
*CallStaticFloatMethod
) (JNIEnv
*, jclass
, jmethodID
,
502 jfloat (JNICALL
*CallStaticFloatMethodV
) (JNIEnv
*, jclass
, jmethodID
,
504 jfloat (JNICALL
*CallStaticFloatMethodA
) (JNIEnv
*, jclass
, jmethodID
,
506 jdouble (JNICALL
*CallStaticDoubleMethod
) (JNIEnv
*, jclass
, jmethodID
,
508 jdouble (JNICALL
*CallStaticDoubleMethodV
) (JNIEnv
*, jclass
, jmethodID
,
510 jdouble (JNICALL
*CallStaticDoubleMethodA
) (JNIEnv
*, jclass
, jmethodID
,
512 void (JNICALL
*CallStaticVoidMethod
) (JNIEnv
*, jclass
, jmethodID
,
514 void (JNICALL
*CallStaticVoidMethodV
) (JNIEnv
*, jclass
, jmethodID
,
516 void (JNICALL
*CallStaticVoidMethodA
) (JNIEnv
*, jclass
, jmethodID
,
519 jfieldID (JNICALL
*GetStaticFieldID
) (JNIEnv
*, jclass
, const char *,
522 jobject (JNICALL
*GetStaticObjectField
) (JNIEnv
*, jclass
, jfieldID
);
523 jboolean (JNICALL
*GetStaticBooleanField
) (JNIEnv
*, jclass
, jfieldID
);
524 jbyte (JNICALL
*GetStaticByteField
) (JNIEnv
*, jclass
, jfieldID
);
525 jchar (JNICALL
*GetStaticCharField
) (JNIEnv
*, jclass
, jfieldID
);
526 jshort (JNICALL
*GetStaticShortField
) (JNIEnv
*, jclass
, jfieldID
);
527 jint (JNICALL
*GetStaticIntField
) (JNIEnv
*, jclass
, jfieldID
);
528 jlong (JNICALL
*GetStaticLongField
) (JNIEnv
*, jclass
, jfieldID
);
529 jfloat (JNICALL
*GetStaticFloatField
) (JNIEnv
*, jclass
, jfieldID
);
530 jdouble (JNICALL
*GetStaticDoubleField
) (JNIEnv
*, jclass
, jfieldID
);
532 void (JNICALL
*SetStaticObjectField
) (JNIEnv
*, jclass
,
534 void (JNICALL
*SetStaticBooleanField
) (JNIEnv
*, jclass
,
536 void (JNICALL
*SetStaticByteField
) (JNIEnv
*, jclass
,
538 void (JNICALL
*SetStaticCharField
) (JNIEnv
*, jclass
,
540 void (JNICALL
*SetStaticShortField
) (JNIEnv
*, jclass
,
542 void (JNICALL
*SetStaticIntField
) (JNIEnv
*, jclass
,
544 void (JNICALL
*SetStaticLongField
) (JNIEnv
*, jclass
,
546 void (JNICALL
*SetStaticFloatField
) (JNIEnv
*, jclass
,
548 void (JNICALL
*SetStaticDoubleField
) (JNIEnv
*, jclass
,
551 jstring (JNICALL
*NewString
) (JNIEnv
*, const jchar
*, jsize
);
552 jsize (JNICALL
*GetStringLength
) (JNIEnv
*, jstring
);
553 const jchar
* (JNICALL
*GetStringChars
) (JNIEnv
*, jstring
, jboolean
*);
554 void (JNICALL
*ReleaseStringChars
) (JNIEnv
*, jstring
, const jchar
*);
555 jstring (JNICALL
*NewStringUTF
) (JNIEnv
*, const char *);
556 jsize (JNICALL
*GetStringUTFLength
) (JNIEnv
*, jstring
);
557 const char * (JNICALL
*GetStringUTFChars
) (JNIEnv
*, jstring
, jboolean
*);
558 void (JNICALL
*ReleaseStringUTFChars
) (JNIEnv
*, jstring
, const char *);
559 jsize (JNICALL
*GetArrayLength
) (JNIEnv
*, jarray
);
560 jobjectArray (JNICALL
*NewObjectArray
) (JNIEnv
*, jsize
, jclass
, jobject
);
561 jobject (JNICALL
*GetObjectArrayElement
) (JNIEnv
*, jobjectArray
, jsize
);
562 void (JNICALL
*SetObjectArrayElement
) (JNIEnv
*, jobjectArray
, jsize
,
565 jbooleanArray (JNICALL
*NewBooleanArray
) (JNIEnv
*, jsize
);
566 jbyteArray (JNICALL
*NewByteArray
) (JNIEnv
*, jsize
);
567 jcharArray (JNICALL
*NewCharArray
) (JNIEnv
*, jsize
);
568 jshortArray (JNICALL
*NewShortArray
) (JNIEnv
*, jsize
);
569 jintArray (JNICALL
*NewIntArray
) (JNIEnv
*, jsize
);
570 jlongArray (JNICALL
*NewLongArray
) (JNIEnv
*, jsize
);
571 jfloatArray (JNICALL
*NewFloatArray
) (JNIEnv
*, jsize
);
572 jdoubleArray (JNICALL
*NewDoubleArray
) (JNIEnv
*, jsize
);
574 jboolean
* (JNICALL
*GetBooleanArrayElements
) (JNIEnv
*, jbooleanArray
,
576 jbyte
* (JNICALL
*GetByteArrayElements
) (JNIEnv
*, jbyteArray
,
578 jchar
* (JNICALL
*GetCharArrayElements
) (JNIEnv
*, jcharArray
,
580 jshort
* (JNICALL
*GetShortArrayElements
) (JNIEnv
*, jshortArray
,
582 jint
* (JNICALL
*GetIntArrayElements
) (JNIEnv
*, jintArray
,
584 jlong
* (JNICALL
*GetLongArrayElements
) (JNIEnv
*, jlongArray
,
586 jfloat
* (JNICALL
*GetFloatArrayElements
) (JNIEnv
*, jfloatArray
,
588 jdouble
* (JNICALL
*GetDoubleArrayElements
) (JNIEnv
*, jdoubleArray
,
591 void (JNICALL
*ReleaseBooleanArrayElements
) (JNIEnv
*, jbooleanArray
,
593 void (JNICALL
*ReleaseByteArrayElements
) (JNIEnv
*, jbyteArray
,
595 void (JNICALL
*ReleaseCharArrayElements
) (JNIEnv
*, jcharArray
,
597 void (JNICALL
*ReleaseShortArrayElements
) (JNIEnv
*, jshortArray
,
599 void (JNICALL
*ReleaseIntArrayElements
) (JNIEnv
*, jintArray
,
601 void (JNICALL
*ReleaseLongArrayElements
) (JNIEnv
*, jlongArray
,
603 void (JNICALL
*ReleaseFloatArrayElements
) (JNIEnv
*, jfloatArray
,
605 void (JNICALL
*ReleaseDoubleArrayElements
) (JNIEnv
*, jdoubleArray
,
608 void (JNICALL
*GetBooleanArrayRegion
) (JNIEnv
*, jbooleanArray
,
609 jsize
, jsize
, jboolean
*);
610 void (JNICALL
*GetByteArrayRegion
) (JNIEnv
*, jbyteArray
,
611 jsize
, jsize
, jbyte
*);
612 void (JNICALL
*GetCharArrayRegion
) (JNIEnv
*, jcharArray
,
613 jsize
, jsize
, jchar
*);
614 void (JNICALL
*GetShortArrayRegion
) (JNIEnv
*, jshortArray
,
615 jsize
, jsize
, jshort
*);
616 void (JNICALL
*GetIntArrayRegion
) (JNIEnv
*, jintArray
,
617 jsize
, jsize
, jint
*);
618 void (JNICALL
*GetLongArrayRegion
) (JNIEnv
*, jlongArray
,
619 jsize
, jsize
, jlong
*);
620 void (JNICALL
*GetFloatArrayRegion
) (JNIEnv
*, jfloatArray
,
621 jsize
, jsize
, jfloat
*);
622 void (JNICALL
*GetDoubleArrayRegion
) (JNIEnv
*, jdoubleArray
,
623 jsize
, jsize
, jdouble
*);
625 void (JNICALL
*SetBooleanArrayRegion
) (JNIEnv
*, jbooleanArray
,
626 jsize
, jsize
, jboolean
*);
627 void (JNICALL
*SetByteArrayRegion
) (JNIEnv
*, jbyteArray
,
628 jsize
, jsize
, jbyte
*);
629 void (JNICALL
*SetCharArrayRegion
) (JNIEnv
*, jcharArray
,
630 jsize
, jsize
, jchar
*);
631 void (JNICALL
*SetShortArrayRegion
) (JNIEnv
*, jshortArray
,
632 jsize
, jsize
, jshort
*);
633 void (JNICALL
*SetIntArrayRegion
) (JNIEnv
*, jintArray
,
634 jsize
, jsize
, jint
*);
635 void (JNICALL
*SetLongArrayRegion
) (JNIEnv
*, jlongArray
,
636 jsize
, jsize
, jlong
*);
637 void (JNICALL
*SetFloatArrayRegion
) (JNIEnv
*, jfloatArray
,
638 jsize
, jsize
, jfloat
*);
639 void (JNICALL
*SetDoubleArrayRegion
) (JNIEnv
*, jdoubleArray
,
640 jsize
, jsize
, jdouble
*);
642 jint (JNICALL
*RegisterNatives
) (JNIEnv
*, jclass
,
643 const JNINativeMethod
*,
645 jint (JNICALL
*UnregisterNatives
) (JNIEnv
*, jclass
);
646 jint (JNICALL
*MonitorEnter
) (JNIEnv
*, jobject
);
647 jint (JNICALL
*MonitorExit
) (JNIEnv
*, jobject
);
648 jint (JNICALL
*GetJavaVM
) (JNIEnv
*, JavaVM
**);
650 void (JNICALL
*GetStringRegion
) (JNIEnv
*, jstring
, jsize
,
652 void (JNICALL
*GetStringUTFRegion
) (JNIEnv
*, jstring
, jsize
,
655 void * (JNICALL
*GetPrimitiveArrayCritical
) (JNIEnv
*, jarray
,
657 void (JNICALL
*ReleasePrimitiveArrayCritical
) (JNIEnv
*, jarray
, void *,
660 const jchar
* (JNICALL
*GetStringCritical
) (JNIEnv
*, jstring
,
662 void (JNICALL
*ReleaseStringCritical
) (JNIEnv
*, jstring
,
665 jweak (JNICALL
*NewWeakGlobalRef
) (JNIEnv
*, jobject
);
666 void (JNICALL
*DeleteWeakGlobalRef
) (JNIEnv
*, jweak
);
668 jboolean (JNICALL
*ExceptionCheck
) (JNIEnv
*);
670 jobject (JNICALL
*NewDirectByteBuffer
) (JNIEnv
*, void *, jlong
);
671 void * (JNICALL
*GetDirectBufferAddress
) (JNIEnv
*, jobject
);
672 jlong (JNICALL
*GetDirectBufferCapacity
) (JNIEnv
*, jobject
);
680 /* The method table. */
681 struct JNINativeInterface
*p
;
683 /* This is ugly, but we must live with it. */
684 #ifndef __GCJ_JNI_IMPL__
687 /* The current exception. */
690 /* The class of the current native method. */
693 /* The chain of local frames. */
694 struct _Jv_JNI_LocalFrame
*locals
;
696 /* The bottom-most element of the chain, initialized with the env and
697 reused between non-nesting JNI calls. */
698 struct _Jv_JNI_LocalFrame
*bottom_locals
;
702 { return p
->GetVersion (this); }
704 jclass
DefineClass (const char *name
, jobject obj0
, const jbyte
* val1
,
706 { return p
->DefineClass (this, name
, obj0
, val1
, val2
); }
708 jclass
FindClass (const char * val0
)
709 { return p
->FindClass (this, val0
); }
711 jmethodID
FromReflectedMethod (jobject obj0
)
712 { return p
->FromReflectedMethod (this, obj0
); }
714 jfieldID
FromReflectedField (jobject obj0
)
715 { return p
->FromReflectedField (this, obj0
); }
717 jobject
ToReflectedMethod (jclass cl0
, jmethodID meth1
, jboolean val2
)
718 { return p
->ToReflectedMethod (this, cl0
, meth1
, val2
); }
720 jclass
GetSuperclass (jclass cl0
)
721 { return p
->GetSuperclass (this, cl0
); }
723 jboolean
IsAssignableFrom (jclass cl0
, jclass cl1
)
724 { return p
->IsAssignableFrom (this, cl0
, cl1
); }
726 jobject
ToReflectedField (jclass cl0
, jfieldID fld1
, jboolean val2
)
727 { return p
->ToReflectedField (this, cl0
, fld1
, val2
); }
729 jint
Throw (jthrowable val0
)
730 { return p
->Throw (this, val0
); }
732 jint
ThrowNew (jclass cl0
, const char * val1
)
733 { return p
->ThrowNew (this, cl0
, val1
); }
735 jthrowable
ExceptionOccurred ()
736 { return p
->ExceptionOccurred (this); }
738 void ExceptionDescribe ()
739 { p
->ExceptionDescribe (this); }
741 void ExceptionClear ()
742 { p
->ExceptionClear (this); }
744 void FatalError (const char * val0
)
745 { p
->FatalError (this, val0
); }
747 jint
PushLocalFrame (jint val0
)
748 { return p
->PushLocalFrame (this, val0
); }
750 jobject
PopLocalFrame (jobject obj0
)
751 { return p
->PopLocalFrame (this, obj0
); }
753 jobject
NewGlobalRef (jobject obj0
)
754 { return p
->NewGlobalRef (this, obj0
); }
756 void DeleteGlobalRef (jobject obj0
)
757 { p
->DeleteGlobalRef (this, obj0
); }
759 void DeleteLocalRef (jobject obj0
)
760 { p
->DeleteLocalRef (this, obj0
); }
762 jboolean
IsSameObject (jobject obj0
, jobject obj1
)
763 { return p
->IsSameObject (this, obj0
, obj1
); }
765 jobject
NewLocalRef (jobject obj0
)
766 { return p
->NewLocalRef (this, obj0
); }
768 jint
EnsureLocalCapacity (jint val0
)
769 { return p
->EnsureLocalCapacity (this, val0
); }
771 jobject
AllocObject (jclass cl0
)
772 { return p
->AllocObject (this, cl0
); }
774 jobject
NewObject (jclass cl0
, jmethodID meth1
, ...)
777 va_start (args
, meth1
);
778 jobject result
= p
->NewObjectV (this, cl0
, meth1
, args
);
783 jobject
NewObjectV (jclass cl0
, jmethodID meth1
, _Jv_va_list val2
)
784 { return p
->NewObjectV (this, cl0
, meth1
, val2
); }
786 jobject
NewObjectA (jclass cl0
, jmethodID meth1
, jvalue
* val2
)
787 { return p
->NewObjectA (this, cl0
, meth1
, val2
); }
789 jclass
GetObjectClass (jobject obj0
)
790 { return p
->GetObjectClass (this, obj0
); }
792 jboolean
IsInstanceOf (jobject obj0
, jclass cl1
)
793 { return p
->IsInstanceOf (this, obj0
, cl1
); }
795 jmethodID
GetMethodID (jclass cl0
, const char * val1
, const char * val2
)
796 { return p
->GetMethodID (this, cl0
, val1
, val2
); }
798 jobject
CallObjectMethod (jobject obj0
, jmethodID meth1
, ...)
801 va_start (args
, meth1
);
802 jobject result
= p
->CallObjectMethodV (this, obj0
, meth1
, args
);
807 jobject
CallObjectMethodV (jobject obj0
, jmethodID meth1
, _Jv_va_list val2
)
808 { return p
->CallObjectMethodV (this, obj0
, meth1
, val2
); }
810 jobject
CallObjectMethodA (jobject obj0
, jmethodID meth1
, jvalue
* val2
)
811 { return p
->CallObjectMethodA (this, obj0
, meth1
, val2
); }
813 jboolean
CallBooleanMethod (jobject obj0
, jmethodID meth1
, ...)
816 va_start (args
, meth1
);
817 jboolean result
= p
->CallBooleanMethodV (this, obj0
, meth1
, args
);
822 jboolean
CallBooleanMethodV (jobject obj0
, jmethodID meth1
, _Jv_va_list val2
)
823 { return p
->CallBooleanMethodV (this, obj0
, meth1
, val2
); }
825 jboolean
CallBooleanMethodA (jobject obj0
, jmethodID meth1
, jvalue
* val2
)
826 { return p
->CallBooleanMethodA (this, obj0
, meth1
, val2
); }
828 jbyte
CallByteMethod (jobject obj0
, jmethodID meth1
, ...)
831 va_start (args
, meth1
);
832 jbyte result
= p
->CallByteMethodV (this, obj0
, meth1
, args
);
837 jbyte
CallByteMethodV (jobject obj0
, jmethodID meth1
, _Jv_va_list val2
)
838 { return p
->CallByteMethodV (this, obj0
, meth1
, val2
); }
840 jbyte
CallByteMethodA (jobject obj0
, jmethodID meth1
, jvalue
* val2
)
841 { return p
->CallByteMethodA (this, obj0
, meth1
, val2
); }
843 jchar
CallCharMethod (jobject obj0
, jmethodID meth1
, ...)
846 va_start (args
, meth1
);
847 jchar result
= p
->CallCharMethodV (this, obj0
, meth1
, args
);
852 jchar
CallCharMethodV (jobject obj0
, jmethodID meth1
, _Jv_va_list val2
)
853 { return p
->CallCharMethodV (this, obj0
, meth1
, val2
); }
855 jchar
CallCharMethodA (jobject obj0
, jmethodID meth1
, jvalue
* val2
)
856 { return p
->CallCharMethodA (this, obj0
, meth1
, val2
); }
858 jshort
CallShortMethod (jobject obj0
, jmethodID meth1
, ...)
861 va_start (args
, meth1
);
862 jshort result
= p
->CallShortMethodV (this, obj0
, meth1
, args
);
867 jshort
CallShortMethodV (jobject obj0
, jmethodID meth1
, _Jv_va_list val2
)
868 { return p
->CallShortMethodV (this, obj0
, meth1
, val2
); }
870 jshort
CallShortMethodA (jobject obj0
, jmethodID meth1
, jvalue
* val2
)
871 { return p
->CallShortMethodA (this, obj0
, meth1
, val2
); }
873 jint
CallIntMethod (jobject obj0
, jmethodID meth1
, ...)
876 va_start (args
, meth1
);
877 jint result
= p
->CallIntMethodV (this, obj0
, meth1
, args
);
882 jint
CallIntMethodV (jobject obj0
, jmethodID meth1
, _Jv_va_list val2
)
883 { return p
->CallIntMethodV (this, obj0
, meth1
, val2
); }
885 jint
CallIntMethodA (jobject obj0
, jmethodID meth1
, jvalue
* val2
)
886 { return p
->CallIntMethodA (this, obj0
, meth1
, val2
); }
888 jlong
CallLongMethod (jobject obj0
, jmethodID meth1
, ...)
891 va_start (args
, meth1
);
892 jlong result
= p
->CallLongMethodV (this, obj0
, meth1
, args
);
897 jlong
CallLongMethodV (jobject obj0
, jmethodID meth1
, _Jv_va_list val2
)
898 { return p
->CallLongMethodV (this, obj0
, meth1
, val2
); }
900 jlong
CallLongMethodA (jobject obj0
, jmethodID meth1
, jvalue
* val2
)
901 { return p
->CallLongMethodA (this, obj0
, meth1
, val2
); }
903 jfloat
CallFloatMethod (jobject obj0
, jmethodID meth1
, ...)
906 va_start (args
, meth1
);
907 jfloat result
= p
->CallFloatMethodV (this, obj0
, meth1
, args
);
912 jfloat
CallFloatMethodV (jobject obj0
, jmethodID meth1
, _Jv_va_list val2
)
913 { return p
->CallFloatMethodV (this, obj0
, meth1
, val2
); }
915 jfloat
CallFloatMethodA (jobject obj0
, jmethodID meth1
, jvalue
* val2
)
916 { return p
->CallFloatMethodA (this, obj0
, meth1
, val2
); }
918 jdouble
CallDoubleMethod (jobject obj0
, jmethodID meth1
, ...)
921 va_start (args
, meth1
);
922 jdouble result
= p
->CallDoubleMethodV (this, obj0
, meth1
, args
);
927 jdouble
CallDoubleMethodV (jobject obj0
, jmethodID meth1
, _Jv_va_list val2
)
928 { return p
->CallDoubleMethodV (this, obj0
, meth1
, val2
); }
930 jdouble
CallDoubleMethodA (jobject obj0
, jmethodID meth1
, jvalue
* val2
)
931 { return p
->CallDoubleMethodA (this, obj0
, meth1
, val2
); }
933 void CallVoidMethod (jobject obj0
, jmethodID meth1
, ...)
936 va_start (args
, meth1
);
937 p
->CallVoidMethodV (this, obj0
, meth1
, args
);
941 void CallVoidMethodV (jobject obj0
, jmethodID meth1
, _Jv_va_list val2
)
942 { p
->CallVoidMethodV (this, obj0
, meth1
, val2
); }
944 void CallVoidMethodA (jobject obj0
, jmethodID meth1
, jvalue
* val2
)
945 { p
->CallVoidMethodA (this, obj0
, meth1
, val2
); }
947 jobject
CallNonvirtualObjectMethod (jobject obj0
, jclass cl1
, jmethodID meth2
, ...)
950 va_start (args
, meth2
);
951 jobject result
= p
->CallNonvirtualObjectMethodV (this, obj0
, cl1
, meth2
, args
);
956 jobject
CallNonvirtualObjectMethodV (jobject obj0
, jclass cl1
, jmethodID meth2
, _Jv_va_list val3
)
957 { return p
->CallNonvirtualObjectMethodV (this, obj0
, cl1
, meth2
, val3
); }
959 jobject
CallNonvirtualObjectMethodA (jobject obj0
, jclass cl1
, jmethodID meth2
, jvalue
* val3
)
960 { return p
->CallNonvirtualObjectMethodA (this, obj0
, cl1
, meth2
, val3
); }
962 jboolean
CallNonvirtualBooleanMethod (jobject obj0
, jclass cl1
, jmethodID meth2
, ...)
965 va_start (args
, meth2
);
966 jboolean result
= p
->CallNonvirtualBooleanMethodV (this, obj0
, cl1
, meth2
, args
);
971 jboolean
CallNonvirtualBooleanMethodV (jobject obj0
, jclass cl1
, jmethodID meth2
, _Jv_va_list val3
)
972 { return p
->CallNonvirtualBooleanMethodV (this, obj0
, cl1
, meth2
, val3
); }
974 jboolean
CallNonvirtualBooleanMethodA (jobject obj0
, jclass cl1
, jmethodID meth2
, jvalue
* val3
)
975 { return p
->CallNonvirtualBooleanMethodA (this, obj0
, cl1
, meth2
, val3
); }
977 jbyte
CallNonvirtualByteMethod (jobject obj0
, jclass cl1
, jmethodID meth2
, ...)
980 va_start (args
, meth2
);
981 jbyte result
= p
->CallNonvirtualByteMethodV (this, obj0
, cl1
, meth2
, args
);
986 jbyte
CallNonvirtualByteMethodV (jobject obj0
, jclass cl1
, jmethodID meth2
, _Jv_va_list val3
)
987 { return p
->CallNonvirtualByteMethodV (this, obj0
, cl1
, meth2
, val3
); }
989 jbyte
CallNonvirtualByteMethodA (jobject obj0
, jclass cl1
, jmethodID meth2
, jvalue
* val3
)
990 { return p
->CallNonvirtualByteMethodA (this, obj0
, cl1
, meth2
, val3
); }
992 jchar
CallNonvirtualCharMethod (jobject obj0
, jclass cl1
, jmethodID meth2
, ...)
995 va_start (args
, meth2
);
996 jchar result
= p
->CallNonvirtualCharMethodV (this, obj0
, cl1
, meth2
, args
);
1001 jchar
CallNonvirtualCharMethodV (jobject obj0
, jclass cl1
, jmethodID meth2
, _Jv_va_list val3
)
1002 { return p
->CallNonvirtualCharMethodV (this, obj0
, cl1
, meth2
, val3
); }
1004 jchar
CallNonvirtualCharMethodA (jobject obj0
, jclass cl1
, jmethodID meth2
, jvalue
* val3
)
1005 { return p
->CallNonvirtualCharMethodA (this, obj0
, cl1
, meth2
, val3
); }
1007 jshort
CallNonvirtualShortMethod (jobject obj0
, jclass cl1
, jmethodID meth2
, ...)
1010 va_start (args
, meth2
);
1011 jshort result
= p
->CallNonvirtualShortMethodV (this, obj0
, cl1
, meth2
, args
);
1016 jshort
CallNonvirtualShortMethodV (jobject obj0
, jclass cl1
, jmethodID meth2
, _Jv_va_list val3
)
1017 { return p
->CallNonvirtualShortMethodV (this, obj0
, cl1
, meth2
, val3
); }
1019 jshort
CallNonvirtualShortMethodA (jobject obj0
, jclass cl1
, jmethodID meth2
, jvalue
* val3
)
1020 { return p
->CallNonvirtualShortMethodA (this, obj0
, cl1
, meth2
, val3
); }
1022 jint
CallNonvirtualIntMethod (jobject obj0
, jclass cl1
, jmethodID meth2
, ...)
1025 va_start (args
, meth2
);
1026 jint result
= p
->CallNonvirtualIntMethodV (this, obj0
, cl1
, meth2
, args
);
1031 jint
CallNonvirtualIntMethodV (jobject obj0
, jclass cl1
, jmethodID meth2
, _Jv_va_list val3
)
1032 { return p
->CallNonvirtualIntMethodV (this, obj0
, cl1
, meth2
, val3
); }
1034 jint
CallNonvirtualIntMethodA (jobject obj0
, jclass cl1
, jmethodID meth2
, jvalue
* val3
)
1035 { return p
->CallNonvirtualIntMethodA (this, obj0
, cl1
, meth2
, val3
); }
1037 jlong
CallNonvirtualLongMethod (jobject obj0
, jclass cl1
, jmethodID meth2
, ...)
1040 va_start (args
, meth2
);
1041 jlong result
= p
->CallNonvirtualLongMethodV (this, obj0
, cl1
, meth2
, args
);
1046 jlong
CallNonvirtualLongMethodV (jobject obj0
, jclass cl1
, jmethodID meth2
, _Jv_va_list val3
)
1047 { return p
->CallNonvirtualLongMethodV (this, obj0
, cl1
, meth2
, val3
); }
1049 jlong
CallNonvirtualLongMethodA (jobject obj0
, jclass cl1
, jmethodID meth2
, jvalue
* val3
)
1050 { return p
->CallNonvirtualLongMethodA (this, obj0
, cl1
, meth2
, val3
); }
1052 jfloat
CallNonvirtualFloatMethod (jobject obj0
, jclass cl1
, jmethodID meth2
, ...)
1055 va_start (args
, meth2
);
1056 jfloat result
= p
->CallNonvirtualFloatMethodV (this, obj0
, cl1
, meth2
, args
);
1061 jfloat
CallNonvirtualFloatMethodV (jobject obj0
, jclass cl1
, jmethodID meth2
, _Jv_va_list val3
)
1062 { return p
->CallNonvirtualFloatMethodV (this, obj0
, cl1
, meth2
, val3
); }
1064 jfloat
CallNonvirtualFloatMethodA (jobject obj0
, jclass cl1
, jmethodID meth2
, jvalue
* val3
)
1065 { return p
->CallNonvirtualFloatMethodA (this, obj0
, cl1
, meth2
, val3
); }
1067 jdouble
CallNonvirtualDoubleMethod (jobject obj0
, jclass cl1
, jmethodID meth2
, ...)
1070 va_start (args
, meth2
);
1071 jdouble result
= p
->CallNonvirtualDoubleMethodV (this, obj0
, cl1
, meth2
, args
);
1076 jdouble
CallNonvirtualDoubleMethodV (jobject obj0
, jclass cl1
, jmethodID meth2
, _Jv_va_list val3
)
1077 { return p
->CallNonvirtualDoubleMethodV (this, obj0
, cl1
, meth2
, val3
); }
1079 jdouble
CallNonvirtualDoubleMethodA (jobject obj0
, jclass cl1
, jmethodID meth2
, jvalue
* val3
)
1080 { return p
->CallNonvirtualDoubleMethodA (this, obj0
, cl1
, meth2
, val3
); }
1082 void CallNonvirtualVoidMethod (jobject obj0
, jclass cl1
, jmethodID meth2
, ...)
1085 va_start (args
, meth2
);
1086 p
->CallNonvirtualVoidMethodV (this, obj0
, cl1
, meth2
, args
);
1090 void CallNonvirtualVoidMethodV (jobject obj0
, jclass cl1
, jmethodID meth2
, _Jv_va_list val3
)
1091 { p
->CallNonvirtualVoidMethodV (this, obj0
, cl1
, meth2
, val3
); }
1093 void CallNonvirtualVoidMethodA (jobject obj0
, jclass cl1
, jmethodID meth2
, jvalue
* val3
)
1094 { p
->CallNonvirtualVoidMethodA (this, obj0
, cl1
, meth2
, val3
); }
1096 jfieldID
GetFieldID (jclass cl0
, const char * val1
, const char * val2
)
1097 { return p
->GetFieldID (this, cl0
, val1
, val2
); }
1099 jobject
GetObjectField (jobject obj0
, jfieldID fld1
)
1100 { return p
->GetObjectField (this, obj0
, fld1
); }
1102 jboolean
GetBooleanField (jobject obj0
, jfieldID fld1
)
1103 { return p
->GetBooleanField (this, obj0
, fld1
); }
1105 jbyte
GetByteField (jobject obj0
, jfieldID fld1
)
1106 { return p
->GetByteField (this, obj0
, fld1
); }
1108 jchar
GetCharField (jobject obj0
, jfieldID fld1
)
1109 { return p
->GetCharField (this, obj0
, fld1
); }
1111 jshort
GetShortField (jobject obj0
, jfieldID fld1
)
1112 { return p
->GetShortField (this, obj0
, fld1
); }
1114 jint
GetIntField (jobject obj0
, jfieldID fld1
)
1115 { return p
->GetIntField (this, obj0
, fld1
); }
1117 jlong
GetLongField (jobject obj0
, jfieldID fld1
)
1118 { return p
->GetLongField (this, obj0
, fld1
); }
1120 jfloat
GetFloatField (jobject obj0
, jfieldID fld1
)
1121 { return p
->GetFloatField (this, obj0
, fld1
); }
1123 jdouble
GetDoubleField (jobject obj0
, jfieldID fld1
)
1124 { return p
->GetDoubleField (this, obj0
, fld1
); }
1126 void SetObjectField (jobject obj0
, jfieldID fld1
, jobject obj2
)
1127 { p
->SetObjectField (this, obj0
, fld1
, obj2
); }
1129 void SetBooleanField (jobject obj0
, jfieldID fld1
, jboolean val2
)
1130 { p
->SetBooleanField (this, obj0
, fld1
, val2
); }
1132 void SetByteField (jobject obj0
, jfieldID fld1
, jbyte val2
)
1133 { p
->SetByteField (this, obj0
, fld1
, val2
); }
1135 void SetCharField (jobject obj0
, jfieldID fld1
, jchar val2
)
1136 { p
->SetCharField (this, obj0
, fld1
, val2
); }
1138 void SetShortField (jobject obj0
, jfieldID fld1
, jshort val2
)
1139 { p
->SetShortField (this, obj0
, fld1
, val2
); }
1141 void SetIntField (jobject obj0
, jfieldID fld1
, jint val2
)
1142 { p
->SetIntField (this, obj0
, fld1
, val2
); }
1144 void SetLongField (jobject obj0
, jfieldID fld1
, jlong val2
)
1145 { p
->SetLongField (this, obj0
, fld1
, val2
); }
1147 void SetFloatField (jobject obj0
, jfieldID fld1
, jfloat val2
)
1148 { p
->SetFloatField (this, obj0
, fld1
, val2
); }
1150 void SetDoubleField (jobject obj0
, jfieldID fld1
, jdouble val2
)
1151 { p
->SetDoubleField (this, obj0
, fld1
, val2
); }
1153 jmethodID
GetStaticMethodID (jclass cl0
, const char * val1
, const char * val2
)
1154 { return p
->GetStaticMethodID (this, cl0
, val1
, val2
); }
1156 jobject
CallStaticObjectMethod (jclass cl0
, jmethodID meth1
, ...)
1159 va_start (args
, meth1
);
1160 jobject result
= p
->CallStaticObjectMethodV (this, cl0
, meth1
, args
);
1165 jobject
CallStaticObjectMethodV (jclass cl0
, jmethodID meth1
, _Jv_va_list val2
)
1166 { return p
->CallStaticObjectMethodV (this, cl0
, meth1
, val2
); }
1168 jobject
CallStaticObjectMethodA (jclass cl0
, jmethodID meth1
, jvalue
* val2
)
1169 { return p
->CallStaticObjectMethodA (this, cl0
, meth1
, val2
); }
1171 jboolean
CallStaticBooleanMethod (jclass cl0
, jmethodID meth1
, ...)
1174 va_start (args
, meth1
);
1175 jboolean result
= p
->CallStaticBooleanMethodV (this, cl0
, meth1
, args
);
1180 jboolean
CallStaticBooleanMethodV (jclass cl0
, jmethodID meth1
, _Jv_va_list val2
)
1181 { return p
->CallStaticBooleanMethodV (this, cl0
, meth1
, val2
); }
1183 jboolean
CallStaticBooleanMethodA (jclass cl0
, jmethodID meth1
, jvalue
* val2
)
1184 { return p
->CallStaticBooleanMethodA (this, cl0
, meth1
, val2
); }
1186 jbyte
CallStaticByteMethod (jclass cl0
, jmethodID meth1
, ...)
1189 va_start (args
, meth1
);
1190 jbyte result
= p
->CallStaticByteMethodV (this, cl0
, meth1
, args
);
1195 jbyte
CallStaticByteMethodV (jclass cl0
, jmethodID meth1
, _Jv_va_list val2
)
1196 { return p
->CallStaticByteMethodV (this, cl0
, meth1
, val2
); }
1198 jbyte
CallStaticByteMethodA (jclass cl0
, jmethodID meth1
, jvalue
* val2
)
1199 { return p
->CallStaticByteMethodA (this, cl0
, meth1
, val2
); }
1201 jchar
CallStaticCharMethod (jclass cl0
, jmethodID meth1
, ...)
1204 va_start (args
, meth1
);
1205 jchar result
= p
->CallStaticCharMethodV (this, cl0
, meth1
, args
);
1210 jchar
CallStaticCharMethodV (jclass cl0
, jmethodID meth1
, _Jv_va_list val2
)
1211 { return p
->CallStaticCharMethodV (this, cl0
, meth1
, val2
); }
1213 jchar
CallStaticCharMethodA (jclass cl0
, jmethodID meth1
, jvalue
* val2
)
1214 { return p
->CallStaticCharMethodA (this, cl0
, meth1
, val2
); }
1216 jshort
CallStaticShortMethod (jclass cl0
, jmethodID meth1
, ...)
1219 va_start (args
, meth1
);
1220 jshort result
= p
->CallStaticShortMethodV (this, cl0
, meth1
, args
);
1225 jshort
CallStaticShortMethodV (jclass cl0
, jmethodID meth1
, _Jv_va_list val2
)
1226 { return p
->CallStaticShortMethodV (this, cl0
, meth1
, val2
); }
1228 jshort
CallStaticShortMethodA (jclass cl0
, jmethodID meth1
, jvalue
* val2
)
1229 { return p
->CallStaticShortMethodA (this, cl0
, meth1
, val2
); }
1231 jint
CallStaticIntMethod (jclass cl0
, jmethodID meth1
, ...)
1234 va_start (args
, meth1
);
1235 jint result
= p
->CallStaticIntMethodV (this, cl0
, meth1
, args
);
1240 jint
CallStaticIntMethodV (jclass cl0
, jmethodID meth1
, _Jv_va_list val2
)
1241 { return p
->CallStaticIntMethodV (this, cl0
, meth1
, val2
); }
1243 jint
CallStaticIntMethodA (jclass cl0
, jmethodID meth1
, jvalue
* val2
)
1244 { return p
->CallStaticIntMethodA (this, cl0
, meth1
, val2
); }
1246 jlong
CallStaticLongMethod (jclass cl0
, jmethodID meth1
, ...)
1249 va_start (args
, meth1
);
1250 jlong result
= p
->CallStaticLongMethodV (this, cl0
, meth1
, args
);
1255 jlong
CallStaticLongMethodV (jclass cl0
, jmethodID meth1
, _Jv_va_list val2
)
1256 { return p
->CallStaticLongMethodV (this, cl0
, meth1
, val2
); }
1258 jlong
CallStaticLongMethodA (jclass cl0
, jmethodID meth1
, jvalue
* val2
)
1259 { return p
->CallStaticLongMethodA (this, cl0
, meth1
, val2
); }
1261 jfloat
CallStaticFloatMethod (jclass cl0
, jmethodID meth1
, ...)
1264 va_start (args
, meth1
);
1265 jfloat result
= p
->CallStaticFloatMethodV (this, cl0
, meth1
, args
);
1270 jfloat
CallStaticFloatMethodV (jclass cl0
, jmethodID meth1
, _Jv_va_list val2
)
1271 { return p
->CallStaticFloatMethodV (this, cl0
, meth1
, val2
); }
1273 jfloat
CallStaticFloatMethodA (jclass cl0
, jmethodID meth1
, jvalue
* val2
)
1274 { return p
->CallStaticFloatMethodA (this, cl0
, meth1
, val2
); }
1276 jdouble
CallStaticDoubleMethod (jclass cl0
, jmethodID meth1
, ...)
1279 va_start (args
, meth1
);
1280 jdouble result
= p
->CallStaticDoubleMethodV (this, cl0
, meth1
, args
);
1285 jdouble
CallStaticDoubleMethodV (jclass cl0
, jmethodID meth1
, _Jv_va_list val2
)
1286 { return p
->CallStaticDoubleMethodV (this, cl0
, meth1
, val2
); }
1288 jdouble
CallStaticDoubleMethodA (jclass cl0
, jmethodID meth1
, jvalue
* val2
)
1289 { return p
->CallStaticDoubleMethodA (this, cl0
, meth1
, val2
); }
1291 void CallStaticVoidMethod (jclass cl0
, jmethodID meth1
, ...)
1294 va_start (args
, meth1
);
1295 p
->CallStaticVoidMethodV (this, cl0
, meth1
, args
);
1299 void CallStaticVoidMethodV (jclass cl0
, jmethodID meth1
, _Jv_va_list val2
)
1300 { p
->CallStaticVoidMethodV (this, cl0
, meth1
, val2
); }
1302 void CallStaticVoidMethodA (jclass cl0
, jmethodID meth1
, jvalue
* val2
)
1303 { p
->CallStaticVoidMethodA (this, cl0
, meth1
, val2
); }
1305 jfieldID
GetStaticFieldID (jclass cl0
, const char * val1
, const char * val2
)
1306 { return p
->GetStaticFieldID (this, cl0
, val1
, val2
); }
1308 jobject
GetStaticObjectField (jclass cl0
, jfieldID fld1
)
1309 { return p
->GetStaticObjectField (this, cl0
, fld1
); }
1311 jboolean
GetStaticBooleanField (jclass cl0
, jfieldID fld1
)
1312 { return p
->GetStaticBooleanField (this, cl0
, fld1
); }
1314 jbyte
GetStaticByteField (jclass cl0
, jfieldID fld1
)
1315 { return p
->GetStaticByteField (this, cl0
, fld1
); }
1317 jchar
GetStaticCharField (jclass cl0
, jfieldID fld1
)
1318 { return p
->GetStaticCharField (this, cl0
, fld1
); }
1320 jshort
GetStaticShortField (jclass cl0
, jfieldID fld1
)
1321 { return p
->GetStaticShortField (this, cl0
, fld1
); }
1323 jint
GetStaticIntField (jclass cl0
, jfieldID fld1
)
1324 { return p
->GetStaticIntField (this, cl0
, fld1
); }
1326 jlong
GetStaticLongField (jclass cl0
, jfieldID fld1
)
1327 { return p
->GetStaticLongField (this, cl0
, fld1
); }
1329 jfloat
GetStaticFloatField (jclass cl0
, jfieldID fld1
)
1330 { return p
->GetStaticFloatField (this, cl0
, fld1
); }
1332 jdouble
GetStaticDoubleField (jclass cl0
, jfieldID fld1
)
1333 { return p
->GetStaticDoubleField (this, cl0
, fld1
); }
1335 void SetStaticObjectField (jclass cl0
, jfieldID fld1
, jobject obj2
)
1336 { p
->SetStaticObjectField (this, cl0
, fld1
, obj2
); }
1338 void SetStaticBooleanField (jclass cl0
, jfieldID fld1
, jboolean val2
)
1339 { p
->SetStaticBooleanField (this, cl0
, fld1
, val2
); }
1341 void SetStaticByteField (jclass cl0
, jfieldID fld1
, jbyte val2
)
1342 { p
->SetStaticByteField (this, cl0
, fld1
, val2
); }
1344 void SetStaticCharField (jclass cl0
, jfieldID fld1
, jchar val2
)
1345 { p
->SetStaticCharField (this, cl0
, fld1
, val2
); }
1347 void SetStaticShortField (jclass cl0
, jfieldID fld1
, jshort val2
)
1348 { p
->SetStaticShortField (this, cl0
, fld1
, val2
); }
1350 void SetStaticIntField (jclass cl0
, jfieldID fld1
, jint val2
)
1351 { p
->SetStaticIntField (this, cl0
, fld1
, val2
); }
1353 void SetStaticLongField (jclass cl0
, jfieldID fld1
, jlong val2
)
1354 { p
->SetStaticLongField (this, cl0
, fld1
, val2
); }
1356 void SetStaticFloatField (jclass cl0
, jfieldID fld1
, jfloat val2
)
1357 { p
->SetStaticFloatField (this, cl0
, fld1
, val2
); }
1359 void SetStaticDoubleField (jclass cl0
, jfieldID fld1
, jdouble val2
)
1360 { p
->SetStaticDoubleField (this, cl0
, fld1
, val2
); }
1362 jstring
NewString (const jchar
* val0
, jsize val1
)
1363 { return p
->NewString (this, val0
, val1
); }
1365 jint
GetStringLength (jstring val0
)
1366 { return p
->GetStringLength (this, val0
); }
1368 const jchar
* GetStringChars (jstring val0
, jboolean
* val1
)
1369 { return p
->GetStringChars (this, val0
, val1
); }
1371 void ReleaseStringChars (jstring val0
, const jchar
* val1
)
1372 { p
->ReleaseStringChars (this, val0
, val1
); }
1374 jstring
NewStringUTF (const char * val0
)
1375 { return p
->NewStringUTF (this, val0
); }
1377 jsize
GetStringUTFLength (jstring val0
)
1378 { return p
->GetStringUTFLength (this, val0
); }
1380 const char * GetStringUTFChars (jstring val0
, jboolean
* val1
)
1381 { return p
->GetStringUTFChars (this, val0
, val1
); }
1383 void ReleaseStringUTFChars (jstring val0
, const char * val1
)
1384 { p
->ReleaseStringUTFChars (this, val0
, val1
); }
1386 jsize
GetArrayLength (jarray val0
)
1387 { return p
->GetArrayLength (this, val0
); }
1389 jobjectArray
NewObjectArray (jsize val0
, jclass cl1
, jobject obj2
)
1390 { return p
->NewObjectArray (this, val0
, cl1
, obj2
); }
1392 jobject
GetObjectArrayElement (jobjectArray val0
, jsize val1
)
1393 { return p
->GetObjectArrayElement (this, val0
, val1
); }
1395 void SetObjectArrayElement (jobjectArray val0
, jsize val1
, jobject obj2
)
1396 { p
->SetObjectArrayElement (this, val0
, val1
, obj2
); }
1398 jbooleanArray
NewBooleanArray (jsize val0
)
1399 { return p
->NewBooleanArray (this, val0
); }
1401 jbyteArray
NewByteArray (jsize val0
)
1402 { return p
->NewByteArray (this, val0
); }
1404 jcharArray
NewCharArray (jsize val0
)
1405 { return p
->NewCharArray (this, val0
); }
1407 jshortArray
NewShortArray (jsize val0
)
1408 { return p
->NewShortArray (this, val0
); }
1410 jintArray
NewIntArray (jsize val0
)
1411 { return p
->NewIntArray (this, val0
); }
1413 jlongArray
NewLongArray (jsize val0
)
1414 { return p
->NewLongArray (this, val0
); }
1416 jfloatArray
NewFloatArray (jsize val0
)
1417 { return p
->NewFloatArray (this, val0
); }
1419 jdoubleArray
NewDoubleArray (jsize val0
)
1420 { return p
->NewDoubleArray (this, val0
); }
1422 jboolean
* GetBooleanArrayElements (jbooleanArray val0
, jboolean
* val1
)
1423 { return p
->GetBooleanArrayElements (this, val0
, val1
); }
1425 jbyte
* GetByteArrayElements (jbyteArray val0
, jboolean
* val1
)
1426 { return p
->GetByteArrayElements (this, val0
, val1
); }
1428 jchar
* GetCharArrayElements (jcharArray val0
, jboolean
* val1
)
1429 { return p
->GetCharArrayElements (this, val0
, val1
); }
1431 jshort
* GetShortArrayElements (jshortArray val0
, jboolean
* val1
)
1432 { return p
->GetShortArrayElements (this, val0
, val1
); }
1434 jint
* GetIntArrayElements (jintArray val0
, jboolean
* val1
)
1435 { return p
->GetIntArrayElements (this, val0
, val1
); }
1437 jlong
* GetLongArrayElements (jlongArray val0
, jboolean
* val1
)
1438 { return p
->GetLongArrayElements (this, val0
, val1
); }
1440 jfloat
* GetFloatArrayElements (jfloatArray val0
, jboolean
* val1
)
1441 { return p
->GetFloatArrayElements (this, val0
, val1
); }
1443 jdouble
* GetDoubleArrayElements (jdoubleArray val0
, jboolean
* val1
)
1444 { return p
->GetDoubleArrayElements (this, val0
, val1
); }
1446 void ReleaseBooleanArrayElements (jbooleanArray val0
, jboolean
* val1
, jint val2
)
1447 { p
->ReleaseBooleanArrayElements (this, val0
, val1
, val2
); }
1449 void ReleaseByteArrayElements (jbyteArray val0
, jbyte
* val1
, jint val2
)
1450 { p
->ReleaseByteArrayElements (this, val0
, val1
, val2
); }
1452 void ReleaseCharArrayElements (jcharArray val0
, jchar
* val1
, jint val2
)
1453 { p
->ReleaseCharArrayElements (this, val0
, val1
, val2
); }
1455 void ReleaseShortArrayElements (jshortArray val0
, jshort
* val1
, jint val2
)
1456 { p
->ReleaseShortArrayElements (this, val0
, val1
, val2
); }
1458 void ReleaseIntArrayElements (jintArray val0
, jint
* val1
, jint val2
)
1459 { p
->ReleaseIntArrayElements (this, val0
, val1
, val2
); }
1461 void ReleaseLongArrayElements (jlongArray val0
, jlong
* val1
, jint val2
)
1462 { p
->ReleaseLongArrayElements (this, val0
, val1
, val2
); }
1464 void ReleaseFloatArrayElements (jfloatArray val0
, jfloat
* val1
, jint val2
)
1465 { p
->ReleaseFloatArrayElements (this, val0
, val1
, val2
); }
1467 void ReleaseDoubleArrayElements (jdoubleArray val0
, jdouble
* val1
, jint val2
)
1468 { p
->ReleaseDoubleArrayElements (this, val0
, val1
, val2
); }
1470 void GetBooleanArrayRegion (jbooleanArray val0
, jsize val1
, jsize val2
, jboolean
* val3
)
1471 { p
->GetBooleanArrayRegion (this, val0
, val1
, val2
, val3
); }
1473 void GetByteArrayRegion (jbyteArray val0
, jsize val1
, jsize val2
, jbyte
* val3
)
1474 { p
->GetByteArrayRegion (this, val0
, val1
, val2
, val3
); }
1476 void GetCharArrayRegion (jcharArray val0
, jsize val1
, jsize val2
, jchar
* val3
)
1477 { p
->GetCharArrayRegion (this, val0
, val1
, val2
, val3
); }
1479 void GetShortArrayRegion (jshortArray val0
, jsize val1
, jsize val2
, jshort
* val3
)
1480 { p
->GetShortArrayRegion (this, val0
, val1
, val2
, val3
); }
1482 void GetIntArrayRegion (jintArray val0
, jsize val1
, jsize val2
, jint
* val3
)
1483 { p
->GetIntArrayRegion (this, val0
, val1
, val2
, val3
); }
1485 void GetLongArrayRegion (jlongArray val0
, jsize val1
, jsize val2
, jlong
* val3
)
1486 { p
->GetLongArrayRegion (this, val0
, val1
, val2
, val3
); }
1488 void GetFloatArrayRegion (jfloatArray val0
, jsize val1
, jsize val2
, jfloat
* val3
)
1489 { p
->GetFloatArrayRegion (this, val0
, val1
, val2
, val3
); }
1491 void GetDoubleArrayRegion (jdoubleArray val0
, jsize val1
, jsize val2
, jdouble
* val3
)
1492 { p
->GetDoubleArrayRegion (this, val0
, val1
, val2
, val3
); }
1494 void SetBooleanArrayRegion (jbooleanArray val0
, jsize val1
, jsize val2
, jboolean
* val3
)
1495 { p
->SetBooleanArrayRegion (this, val0
, val1
, val2
, val3
); }
1497 void SetByteArrayRegion (jbyteArray val0
, jsize val1
, jsize val2
, jbyte
* val3
)
1498 { p
->SetByteArrayRegion (this, val0
, val1
, val2
, val3
); }
1500 void SetCharArrayRegion (jcharArray val0
, jsize val1
, jsize val2
, jchar
* val3
)
1501 { p
->SetCharArrayRegion (this, val0
, val1
, val2
, val3
); }
1503 void SetShortArrayRegion (jshortArray val0
, jsize val1
, jsize val2
, jshort
* val3
)
1504 { p
->SetShortArrayRegion (this, val0
, val1
, val2
, val3
); }
1506 void SetIntArrayRegion (jintArray val0
, jsize val1
, jsize val2
, jint
* val3
)
1507 { p
->SetIntArrayRegion (this, val0
, val1
, val2
, val3
); }
1509 void SetLongArrayRegion (jlongArray val0
, jsize val1
, jsize val2
, jlong
* val3
)
1510 { p
->SetLongArrayRegion (this, val0
, val1
, val2
, val3
); }
1512 void SetFloatArrayRegion (jfloatArray val0
, jsize val1
, jsize val2
, jfloat
* val3
)
1513 { p
->SetFloatArrayRegion (this, val0
, val1
, val2
, val3
); }
1515 void SetDoubleArrayRegion (jdoubleArray val0
, jsize val1
, jsize val2
, jdouble
* val3
)
1516 { p
->SetDoubleArrayRegion (this, val0
, val1
, val2
, val3
); }
1518 jint
RegisterNatives (jclass cl0
, const JNINativeMethod
* val1
, jint val2
)
1519 { return p
->RegisterNatives (this, cl0
, val1
, val2
); }
1521 jint
UnregisterNatives (jclass cl0
)
1522 { return p
->UnregisterNatives (this, cl0
); }
1524 jint
MonitorEnter (jobject obj0
)
1525 { return p
->MonitorEnter (this, obj0
); }
1527 jint
MonitorExit (jobject obj0
)
1528 { return p
->MonitorExit (this, obj0
); }
1530 jint
GetJavaVM (JavaVM
** val0
)
1531 { return p
->GetJavaVM (this, val0
); }
1533 void GetStringRegion (jstring val0
, jsize val1
, jsize val2
, jchar
* val3
)
1534 { p
->GetStringRegion (this, val0
, val1
, val2
, val3
); }
1536 void GetStringUTFRegion (jstring val0
, jsize val1
, jsize val2
, char * val3
)
1537 { p
->GetStringUTFRegion (this, val0
, val1
, val2
, val3
); }
1539 void * GetPrimitiveArrayCritical (jarray val0
, jboolean
* val1
)
1540 { return p
->GetPrimitiveArrayCritical (this, val0
, val1
); }
1542 void ReleasePrimitiveArrayCritical (jarray val0
, void * val1
, jint val2
)
1543 { p
->ReleasePrimitiveArrayCritical (this, val0
, val1
, val2
); }
1545 const jchar
* GetStringCritical (jstring val0
, jboolean
* val1
)
1546 { return p
->GetStringCritical (this, val0
, val1
); }
1548 void ReleaseStringCritical (jstring val0
, const jchar
* val1
)
1549 { p
->ReleaseStringCritical (this, val0
, val1
); }
1551 jweak
NewWeakGlobalRef (jobject obj0
)
1552 { return p
->NewWeakGlobalRef (this, obj0
); }
1554 void DeleteWeakGlobalRef (jweak val0
)
1555 { p
->DeleteWeakGlobalRef (this, val0
); }
1557 jboolean
ExceptionCheck ()
1558 { return p
->ExceptionCheck (this); }
1560 jobject
NewDirectByteBuffer (void *addr
, jlong capacity
)
1561 { return p
->NewDirectByteBuffer (this, addr
, capacity
); }
1563 void *GetDirectBufferAddress (jobject buf
)
1564 { return p
->GetDirectBufferAddress (this, buf
); }
1566 jlong
GetDirectBufferCapacity (jobject buf
)
1567 { return p
->GetDirectBufferCapacity (this, buf
); }
1569 #endif /* __cplusplus */
1575 struct JNIInvokeInterface
1581 jint (JNICALL
*DestroyJavaVM
) (JavaVM
*);
1582 jint (JNICALL
*AttachCurrentThread
) (JavaVM
*, void **, void *);
1583 jint (JNICALL
*DetachCurrentThread
) (JavaVM
*);
1584 jint (JNICALL
*GetEnv
) (JavaVM
*, void **, jint
);
1585 jint (JNICALL
*AttachCurrentThreadAsDaemon
) (JavaVM
*, void **, void *);
1593 const struct JNIInvokeInterface
*functions
;
1596 /* FIXME: other fields. */
1599 jint
DestroyJavaVM ()
1600 { return functions
->DestroyJavaVM (this); }
1602 jint
AttachCurrentThread (void **penv
, void *args
)
1603 { return functions
->AttachCurrentThread (this, penv
, args
); }
1605 jint
DetachCurrentThread ()
1606 { return functions
->DetachCurrentThread (this); }
1608 jint
GetEnv (void **penv
, jint version
)
1609 { return functions
->GetEnv (this, penv
, version
); }
1611 jint
AttachCurrentThreadAsDaemon (void **penv
, void *args
)
1612 { return functions
->AttachCurrentThreadAsDaemon (this, penv
, args
); }
1614 #endif /* __cplusplus */
1616 typedef struct JavaVMAttachArgs
1618 jint version
; /* Must be JNI_VERSION_1_2. */
1619 char *name
; /* The name of the thread (or NULL). */
1620 jobject group
; /* Global ref of a ThreadGroup object
1624 typedef struct JavaVMOption
1630 typedef struct JavaVMInitArgs
1632 /* Must be JNI_VERSION_1_2. */
1635 /* Number of options. */
1638 /* Options to the VM. */
1639 JavaVMOption
*options
;
1641 /* Whether we should ignore unrecognized options. */
1642 jboolean ignoreUnrecognized
;
1645 #endif /* __GCJ_JNI_H__ */