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
;
698 { return p
->GetVersion (this); }
700 jclass
DefineClass (const char *name
, jobject obj0
, const jbyte
* val1
,
702 { return p
->DefineClass (this, name
, obj0
, val1
, val2
); }
704 jclass
FindClass (const char * val0
)
705 { return p
->FindClass (this, val0
); }
707 jmethodID
FromReflectedMethod (jobject obj0
)
708 { return p
->FromReflectedMethod (this, obj0
); }
710 jfieldID
FromReflectedField (jobject obj0
)
711 { return p
->FromReflectedField (this, obj0
); }
713 jobject
ToReflectedMethod (jclass cl0
, jmethodID meth1
, jboolean val2
)
714 { return p
->ToReflectedMethod (this, cl0
, meth1
, val2
); }
716 jclass
GetSuperclass (jclass cl0
)
717 { return p
->GetSuperclass (this, cl0
); }
719 jboolean
IsAssignableFrom (jclass cl0
, jclass cl1
)
720 { return p
->IsAssignableFrom (this, cl0
, cl1
); }
722 jobject
ToReflectedField (jclass cl0
, jfieldID fld1
, jboolean val2
)
723 { return p
->ToReflectedField (this, cl0
, fld1
, val2
); }
725 jint
Throw (jthrowable val0
)
726 { return p
->Throw (this, val0
); }
728 jint
ThrowNew (jclass cl0
, const char * val1
)
729 { return p
->ThrowNew (this, cl0
, val1
); }
731 jthrowable
ExceptionOccurred ()
732 { return p
->ExceptionOccurred (this); }
734 void ExceptionDescribe ()
735 { p
->ExceptionDescribe (this); }
737 void ExceptionClear ()
738 { p
->ExceptionClear (this); }
740 void FatalError (const char * val0
)
741 { p
->FatalError (this, val0
); }
743 jint
PushLocalFrame (jint val0
)
744 { return p
->PushLocalFrame (this, val0
); }
746 jobject
PopLocalFrame (jobject obj0
)
747 { return p
->PopLocalFrame (this, obj0
); }
749 jobject
NewGlobalRef (jobject obj0
)
750 { return p
->NewGlobalRef (this, obj0
); }
752 void DeleteGlobalRef (jobject obj0
)
753 { p
->DeleteGlobalRef (this, obj0
); }
755 void DeleteLocalRef (jobject obj0
)
756 { p
->DeleteLocalRef (this, obj0
); }
758 jboolean
IsSameObject (jobject obj0
, jobject obj1
)
759 { return p
->IsSameObject (this, obj0
, obj1
); }
761 jobject
NewLocalRef (jobject obj0
)
762 { return p
->NewLocalRef (this, obj0
); }
764 jint
EnsureLocalCapacity (jint val0
)
765 { return p
->EnsureLocalCapacity (this, val0
); }
767 jobject
AllocObject (jclass cl0
)
768 { return p
->AllocObject (this, cl0
); }
770 jobject
NewObject (jclass cl0
, jmethodID meth1
, ...)
773 va_start (args
, meth1
);
774 jobject result
= p
->NewObjectV (this, cl0
, meth1
, args
);
779 jobject
NewObjectV (jclass cl0
, jmethodID meth1
, _Jv_va_list val2
)
780 { return p
->NewObjectV (this, cl0
, meth1
, val2
); }
782 jobject
NewObjectA (jclass cl0
, jmethodID meth1
, jvalue
* val2
)
783 { return p
->NewObjectA (this, cl0
, meth1
, val2
); }
785 jclass
GetObjectClass (jobject obj0
)
786 { return p
->GetObjectClass (this, obj0
); }
788 jboolean
IsInstanceOf (jobject obj0
, jclass cl1
)
789 { return p
->IsInstanceOf (this, obj0
, cl1
); }
791 jmethodID
GetMethodID (jclass cl0
, const char * val1
, const char * val2
)
792 { return p
->GetMethodID (this, cl0
, val1
, val2
); }
794 jobject
CallObjectMethod (jobject obj0
, jmethodID meth1
, ...)
797 va_start (args
, meth1
);
798 jobject result
= p
->CallObjectMethodV (this, obj0
, meth1
, args
);
803 jobject
CallObjectMethodV (jobject obj0
, jmethodID meth1
, _Jv_va_list val2
)
804 { return p
->CallObjectMethodV (this, obj0
, meth1
, val2
); }
806 jobject
CallObjectMethodA (jobject obj0
, jmethodID meth1
, jvalue
* val2
)
807 { return p
->CallObjectMethodA (this, obj0
, meth1
, val2
); }
809 jboolean
CallBooleanMethod (jobject obj0
, jmethodID meth1
, ...)
812 va_start (args
, meth1
);
813 jboolean result
= p
->CallBooleanMethodV (this, obj0
, meth1
, args
);
818 jboolean
CallBooleanMethodV (jobject obj0
, jmethodID meth1
, _Jv_va_list val2
)
819 { return p
->CallBooleanMethodV (this, obj0
, meth1
, val2
); }
821 jboolean
CallBooleanMethodA (jobject obj0
, jmethodID meth1
, jvalue
* val2
)
822 { return p
->CallBooleanMethodA (this, obj0
, meth1
, val2
); }
824 jbyte
CallByteMethod (jobject obj0
, jmethodID meth1
, ...)
827 va_start (args
, meth1
);
828 jbyte result
= p
->CallByteMethodV (this, obj0
, meth1
, args
);
833 jbyte
CallByteMethodV (jobject obj0
, jmethodID meth1
, _Jv_va_list val2
)
834 { return p
->CallByteMethodV (this, obj0
, meth1
, val2
); }
836 jbyte
CallByteMethodA (jobject obj0
, jmethodID meth1
, jvalue
* val2
)
837 { return p
->CallByteMethodA (this, obj0
, meth1
, val2
); }
839 jchar
CallCharMethod (jobject obj0
, jmethodID meth1
, ...)
842 va_start (args
, meth1
);
843 jchar result
= p
->CallCharMethodV (this, obj0
, meth1
, args
);
848 jchar
CallCharMethodV (jobject obj0
, jmethodID meth1
, _Jv_va_list val2
)
849 { return p
->CallCharMethodV (this, obj0
, meth1
, val2
); }
851 jchar
CallCharMethodA (jobject obj0
, jmethodID meth1
, jvalue
* val2
)
852 { return p
->CallCharMethodA (this, obj0
, meth1
, val2
); }
854 jshort
CallShortMethod (jobject obj0
, jmethodID meth1
, ...)
857 va_start (args
, meth1
);
858 jshort result
= p
->CallShortMethodV (this, obj0
, meth1
, args
);
863 jshort
CallShortMethodV (jobject obj0
, jmethodID meth1
, _Jv_va_list val2
)
864 { return p
->CallShortMethodV (this, obj0
, meth1
, val2
); }
866 jshort
CallShortMethodA (jobject obj0
, jmethodID meth1
, jvalue
* val2
)
867 { return p
->CallShortMethodA (this, obj0
, meth1
, val2
); }
869 jint
CallIntMethod (jobject obj0
, jmethodID meth1
, ...)
872 va_start (args
, meth1
);
873 jint result
= p
->CallIntMethodV (this, obj0
, meth1
, args
);
878 jint
CallIntMethodV (jobject obj0
, jmethodID meth1
, _Jv_va_list val2
)
879 { return p
->CallIntMethodV (this, obj0
, meth1
, val2
); }
881 jint
CallIntMethodA (jobject obj0
, jmethodID meth1
, jvalue
* val2
)
882 { return p
->CallIntMethodA (this, obj0
, meth1
, val2
); }
884 jlong
CallLongMethod (jobject obj0
, jmethodID meth1
, ...)
887 va_start (args
, meth1
);
888 jlong result
= p
->CallLongMethodV (this, obj0
, meth1
, args
);
893 jlong
CallLongMethodV (jobject obj0
, jmethodID meth1
, _Jv_va_list val2
)
894 { return p
->CallLongMethodV (this, obj0
, meth1
, val2
); }
896 jlong
CallLongMethodA (jobject obj0
, jmethodID meth1
, jvalue
* val2
)
897 { return p
->CallLongMethodA (this, obj0
, meth1
, val2
); }
899 jfloat
CallFloatMethod (jobject obj0
, jmethodID meth1
, ...)
902 va_start (args
, meth1
);
903 jfloat result
= p
->CallFloatMethodV (this, obj0
, meth1
, args
);
908 jfloat
CallFloatMethodV (jobject obj0
, jmethodID meth1
, _Jv_va_list val2
)
909 { return p
->CallFloatMethodV (this, obj0
, meth1
, val2
); }
911 jfloat
CallFloatMethodA (jobject obj0
, jmethodID meth1
, jvalue
* val2
)
912 { return p
->CallFloatMethodA (this, obj0
, meth1
, val2
); }
914 jdouble
CallDoubleMethod (jobject obj0
, jmethodID meth1
, ...)
917 va_start (args
, meth1
);
918 jdouble result
= p
->CallDoubleMethodV (this, obj0
, meth1
, args
);
923 jdouble
CallDoubleMethodV (jobject obj0
, jmethodID meth1
, _Jv_va_list val2
)
924 { return p
->CallDoubleMethodV (this, obj0
, meth1
, val2
); }
926 jdouble
CallDoubleMethodA (jobject obj0
, jmethodID meth1
, jvalue
* val2
)
927 { return p
->CallDoubleMethodA (this, obj0
, meth1
, val2
); }
929 void CallVoidMethod (jobject obj0
, jmethodID meth1
, ...)
932 va_start (args
, meth1
);
933 p
->CallVoidMethodV (this, obj0
, meth1
, args
);
937 void CallVoidMethodV (jobject obj0
, jmethodID meth1
, _Jv_va_list val2
)
938 { p
->CallVoidMethodV (this, obj0
, meth1
, val2
); }
940 void CallVoidMethodA (jobject obj0
, jmethodID meth1
, jvalue
* val2
)
941 { p
->CallVoidMethodA (this, obj0
, meth1
, val2
); }
943 jobject
CallNonvirtualObjectMethod (jobject obj0
, jclass cl1
, jmethodID meth2
, ...)
946 va_start (args
, meth2
);
947 jobject result
= p
->CallNonvirtualObjectMethodV (this, obj0
, cl1
, meth2
, args
);
952 jobject
CallNonvirtualObjectMethodV (jobject obj0
, jclass cl1
, jmethodID meth2
, _Jv_va_list val3
)
953 { return p
->CallNonvirtualObjectMethodV (this, obj0
, cl1
, meth2
, val3
); }
955 jobject
CallNonvirtualObjectMethodA (jobject obj0
, jclass cl1
, jmethodID meth2
, jvalue
* val3
)
956 { return p
->CallNonvirtualObjectMethodA (this, obj0
, cl1
, meth2
, val3
); }
958 jboolean
CallNonvirtualBooleanMethod (jobject obj0
, jclass cl1
, jmethodID meth2
, ...)
961 va_start (args
, meth2
);
962 jboolean result
= p
->CallNonvirtualBooleanMethodV (this, obj0
, cl1
, meth2
, args
);
967 jboolean
CallNonvirtualBooleanMethodV (jobject obj0
, jclass cl1
, jmethodID meth2
, _Jv_va_list val3
)
968 { return p
->CallNonvirtualBooleanMethodV (this, obj0
, cl1
, meth2
, val3
); }
970 jboolean
CallNonvirtualBooleanMethodA (jobject obj0
, jclass cl1
, jmethodID meth2
, jvalue
* val3
)
971 { return p
->CallNonvirtualBooleanMethodA (this, obj0
, cl1
, meth2
, val3
); }
973 jbyte
CallNonvirtualByteMethod (jobject obj0
, jclass cl1
, jmethodID meth2
, ...)
976 va_start (args
, meth2
);
977 jbyte result
= p
->CallNonvirtualByteMethodV (this, obj0
, cl1
, meth2
, args
);
982 jbyte
CallNonvirtualByteMethodV (jobject obj0
, jclass cl1
, jmethodID meth2
, _Jv_va_list val3
)
983 { return p
->CallNonvirtualByteMethodV (this, obj0
, cl1
, meth2
, val3
); }
985 jbyte
CallNonvirtualByteMethodA (jobject obj0
, jclass cl1
, jmethodID meth2
, jvalue
* val3
)
986 { return p
->CallNonvirtualByteMethodA (this, obj0
, cl1
, meth2
, val3
); }
988 jchar
CallNonvirtualCharMethod (jobject obj0
, jclass cl1
, jmethodID meth2
, ...)
991 va_start (args
, meth2
);
992 jchar result
= p
->CallNonvirtualCharMethodV (this, obj0
, cl1
, meth2
, args
);
997 jchar
CallNonvirtualCharMethodV (jobject obj0
, jclass cl1
, jmethodID meth2
, _Jv_va_list val3
)
998 { return p
->CallNonvirtualCharMethodV (this, obj0
, cl1
, meth2
, val3
); }
1000 jchar
CallNonvirtualCharMethodA (jobject obj0
, jclass cl1
, jmethodID meth2
, jvalue
* val3
)
1001 { return p
->CallNonvirtualCharMethodA (this, obj0
, cl1
, meth2
, val3
); }
1003 jshort
CallNonvirtualShortMethod (jobject obj0
, jclass cl1
, jmethodID meth2
, ...)
1006 va_start (args
, meth2
);
1007 jshort result
= p
->CallNonvirtualShortMethodV (this, obj0
, cl1
, meth2
, args
);
1012 jshort
CallNonvirtualShortMethodV (jobject obj0
, jclass cl1
, jmethodID meth2
, _Jv_va_list val3
)
1013 { return p
->CallNonvirtualShortMethodV (this, obj0
, cl1
, meth2
, val3
); }
1015 jshort
CallNonvirtualShortMethodA (jobject obj0
, jclass cl1
, jmethodID meth2
, jvalue
* val3
)
1016 { return p
->CallNonvirtualShortMethodA (this, obj0
, cl1
, meth2
, val3
); }
1018 jint
CallNonvirtualIntMethod (jobject obj0
, jclass cl1
, jmethodID meth2
, ...)
1021 va_start (args
, meth2
);
1022 jint result
= p
->CallNonvirtualIntMethodV (this, obj0
, cl1
, meth2
, args
);
1027 jint
CallNonvirtualIntMethodV (jobject obj0
, jclass cl1
, jmethodID meth2
, _Jv_va_list val3
)
1028 { return p
->CallNonvirtualIntMethodV (this, obj0
, cl1
, meth2
, val3
); }
1030 jint
CallNonvirtualIntMethodA (jobject obj0
, jclass cl1
, jmethodID meth2
, jvalue
* val3
)
1031 { return p
->CallNonvirtualIntMethodA (this, obj0
, cl1
, meth2
, val3
); }
1033 jlong
CallNonvirtualLongMethod (jobject obj0
, jclass cl1
, jmethodID meth2
, ...)
1036 va_start (args
, meth2
);
1037 jlong result
= p
->CallNonvirtualLongMethodV (this, obj0
, cl1
, meth2
, args
);
1042 jlong
CallNonvirtualLongMethodV (jobject obj0
, jclass cl1
, jmethodID meth2
, _Jv_va_list val3
)
1043 { return p
->CallNonvirtualLongMethodV (this, obj0
, cl1
, meth2
, val3
); }
1045 jlong
CallNonvirtualLongMethodA (jobject obj0
, jclass cl1
, jmethodID meth2
, jvalue
* val3
)
1046 { return p
->CallNonvirtualLongMethodA (this, obj0
, cl1
, meth2
, val3
); }
1048 jfloat
CallNonvirtualFloatMethod (jobject obj0
, jclass cl1
, jmethodID meth2
, ...)
1051 va_start (args
, meth2
);
1052 jfloat result
= p
->CallNonvirtualFloatMethodV (this, obj0
, cl1
, meth2
, args
);
1057 jfloat
CallNonvirtualFloatMethodV (jobject obj0
, jclass cl1
, jmethodID meth2
, _Jv_va_list val3
)
1058 { return p
->CallNonvirtualFloatMethodV (this, obj0
, cl1
, meth2
, val3
); }
1060 jfloat
CallNonvirtualFloatMethodA (jobject obj0
, jclass cl1
, jmethodID meth2
, jvalue
* val3
)
1061 { return p
->CallNonvirtualFloatMethodA (this, obj0
, cl1
, meth2
, val3
); }
1063 jdouble
CallNonvirtualDoubleMethod (jobject obj0
, jclass cl1
, jmethodID meth2
, ...)
1066 va_start (args
, meth2
);
1067 jdouble result
= p
->CallNonvirtualDoubleMethodV (this, obj0
, cl1
, meth2
, args
);
1072 jdouble
CallNonvirtualDoubleMethodV (jobject obj0
, jclass cl1
, jmethodID meth2
, _Jv_va_list val3
)
1073 { return p
->CallNonvirtualDoubleMethodV (this, obj0
, cl1
, meth2
, val3
); }
1075 jdouble
CallNonvirtualDoubleMethodA (jobject obj0
, jclass cl1
, jmethodID meth2
, jvalue
* val3
)
1076 { return p
->CallNonvirtualDoubleMethodA (this, obj0
, cl1
, meth2
, val3
); }
1078 void CallNonvirtualVoidMethod (jobject obj0
, jclass cl1
, jmethodID meth2
, ...)
1081 va_start (args
, meth2
);
1082 p
->CallNonvirtualVoidMethodV (this, obj0
, cl1
, meth2
, args
);
1086 void CallNonvirtualVoidMethodV (jobject obj0
, jclass cl1
, jmethodID meth2
, _Jv_va_list val3
)
1087 { p
->CallNonvirtualVoidMethodV (this, obj0
, cl1
, meth2
, val3
); }
1089 void CallNonvirtualVoidMethodA (jobject obj0
, jclass cl1
, jmethodID meth2
, jvalue
* val3
)
1090 { p
->CallNonvirtualVoidMethodA (this, obj0
, cl1
, meth2
, val3
); }
1092 jfieldID
GetFieldID (jclass cl0
, const char * val1
, const char * val2
)
1093 { return p
->GetFieldID (this, cl0
, val1
, val2
); }
1095 jobject
GetObjectField (jobject obj0
, jfieldID fld1
)
1096 { return p
->GetObjectField (this, obj0
, fld1
); }
1098 jboolean
GetBooleanField (jobject obj0
, jfieldID fld1
)
1099 { return p
->GetBooleanField (this, obj0
, fld1
); }
1101 jbyte
GetByteField (jobject obj0
, jfieldID fld1
)
1102 { return p
->GetByteField (this, obj0
, fld1
); }
1104 jchar
GetCharField (jobject obj0
, jfieldID fld1
)
1105 { return p
->GetCharField (this, obj0
, fld1
); }
1107 jshort
GetShortField (jobject obj0
, jfieldID fld1
)
1108 { return p
->GetShortField (this, obj0
, fld1
); }
1110 jint
GetIntField (jobject obj0
, jfieldID fld1
)
1111 { return p
->GetIntField (this, obj0
, fld1
); }
1113 jlong
GetLongField (jobject obj0
, jfieldID fld1
)
1114 { return p
->GetLongField (this, obj0
, fld1
); }
1116 jfloat
GetFloatField (jobject obj0
, jfieldID fld1
)
1117 { return p
->GetFloatField (this, obj0
, fld1
); }
1119 jdouble
GetDoubleField (jobject obj0
, jfieldID fld1
)
1120 { return p
->GetDoubleField (this, obj0
, fld1
); }
1122 void SetObjectField (jobject obj0
, jfieldID fld1
, jobject obj2
)
1123 { p
->SetObjectField (this, obj0
, fld1
, obj2
); }
1125 void SetBooleanField (jobject obj0
, jfieldID fld1
, jboolean val2
)
1126 { p
->SetBooleanField (this, obj0
, fld1
, val2
); }
1128 void SetByteField (jobject obj0
, jfieldID fld1
, jbyte val2
)
1129 { p
->SetByteField (this, obj0
, fld1
, val2
); }
1131 void SetCharField (jobject obj0
, jfieldID fld1
, jchar val2
)
1132 { p
->SetCharField (this, obj0
, fld1
, val2
); }
1134 void SetShortField (jobject obj0
, jfieldID fld1
, jshort val2
)
1135 { p
->SetShortField (this, obj0
, fld1
, val2
); }
1137 void SetIntField (jobject obj0
, jfieldID fld1
, jint val2
)
1138 { p
->SetIntField (this, obj0
, fld1
, val2
); }
1140 void SetLongField (jobject obj0
, jfieldID fld1
, jlong val2
)
1141 { p
->SetLongField (this, obj0
, fld1
, val2
); }
1143 void SetFloatField (jobject obj0
, jfieldID fld1
, jfloat val2
)
1144 { p
->SetFloatField (this, obj0
, fld1
, val2
); }
1146 void SetDoubleField (jobject obj0
, jfieldID fld1
, jdouble val2
)
1147 { p
->SetDoubleField (this, obj0
, fld1
, val2
); }
1149 jmethodID
GetStaticMethodID (jclass cl0
, const char * val1
, const char * val2
)
1150 { return p
->GetStaticMethodID (this, cl0
, val1
, val2
); }
1152 jobject
CallStaticObjectMethod (jclass cl0
, jmethodID meth1
, ...)
1155 va_start (args
, meth1
);
1156 jobject result
= p
->CallStaticObjectMethodV (this, cl0
, meth1
, args
);
1161 jobject
CallStaticObjectMethodV (jclass cl0
, jmethodID meth1
, _Jv_va_list val2
)
1162 { return p
->CallStaticObjectMethodV (this, cl0
, meth1
, val2
); }
1164 jobject
CallStaticObjectMethodA (jclass cl0
, jmethodID meth1
, jvalue
* val2
)
1165 { return p
->CallStaticObjectMethodA (this, cl0
, meth1
, val2
); }
1167 jboolean
CallStaticBooleanMethod (jclass cl0
, jmethodID meth1
, ...)
1170 va_start (args
, meth1
);
1171 jboolean result
= p
->CallStaticBooleanMethodV (this, cl0
, meth1
, args
);
1176 jboolean
CallStaticBooleanMethodV (jclass cl0
, jmethodID meth1
, _Jv_va_list val2
)
1177 { return p
->CallStaticBooleanMethodV (this, cl0
, meth1
, val2
); }
1179 jboolean
CallStaticBooleanMethodA (jclass cl0
, jmethodID meth1
, jvalue
* val2
)
1180 { return p
->CallStaticBooleanMethodA (this, cl0
, meth1
, val2
); }
1182 jbyte
CallStaticByteMethod (jclass cl0
, jmethodID meth1
, ...)
1185 va_start (args
, meth1
);
1186 jbyte result
= p
->CallStaticByteMethodV (this, cl0
, meth1
, args
);
1191 jbyte
CallStaticByteMethodV (jclass cl0
, jmethodID meth1
, _Jv_va_list val2
)
1192 { return p
->CallStaticByteMethodV (this, cl0
, meth1
, val2
); }
1194 jbyte
CallStaticByteMethodA (jclass cl0
, jmethodID meth1
, jvalue
* val2
)
1195 { return p
->CallStaticByteMethodA (this, cl0
, meth1
, val2
); }
1197 jchar
CallStaticCharMethod (jclass cl0
, jmethodID meth1
, ...)
1200 va_start (args
, meth1
);
1201 jchar result
= p
->CallStaticCharMethodV (this, cl0
, meth1
, args
);
1206 jchar
CallStaticCharMethodV (jclass cl0
, jmethodID meth1
, _Jv_va_list val2
)
1207 { return p
->CallStaticCharMethodV (this, cl0
, meth1
, val2
); }
1209 jchar
CallStaticCharMethodA (jclass cl0
, jmethodID meth1
, jvalue
* val2
)
1210 { return p
->CallStaticCharMethodA (this, cl0
, meth1
, val2
); }
1212 jshort
CallStaticShortMethod (jclass cl0
, jmethodID meth1
, ...)
1215 va_start (args
, meth1
);
1216 jshort result
= p
->CallStaticShortMethodV (this, cl0
, meth1
, args
);
1221 jshort
CallStaticShortMethodV (jclass cl0
, jmethodID meth1
, _Jv_va_list val2
)
1222 { return p
->CallStaticShortMethodV (this, cl0
, meth1
, val2
); }
1224 jshort
CallStaticShortMethodA (jclass cl0
, jmethodID meth1
, jvalue
* val2
)
1225 { return p
->CallStaticShortMethodA (this, cl0
, meth1
, val2
); }
1227 jint
CallStaticIntMethod (jclass cl0
, jmethodID meth1
, ...)
1230 va_start (args
, meth1
);
1231 jint result
= p
->CallStaticIntMethodV (this, cl0
, meth1
, args
);
1236 jint
CallStaticIntMethodV (jclass cl0
, jmethodID meth1
, _Jv_va_list val2
)
1237 { return p
->CallStaticIntMethodV (this, cl0
, meth1
, val2
); }
1239 jint
CallStaticIntMethodA (jclass cl0
, jmethodID meth1
, jvalue
* val2
)
1240 { return p
->CallStaticIntMethodA (this, cl0
, meth1
, val2
); }
1242 jlong
CallStaticLongMethod (jclass cl0
, jmethodID meth1
, ...)
1245 va_start (args
, meth1
);
1246 jlong result
= p
->CallStaticLongMethodV (this, cl0
, meth1
, args
);
1251 jlong
CallStaticLongMethodV (jclass cl0
, jmethodID meth1
, _Jv_va_list val2
)
1252 { return p
->CallStaticLongMethodV (this, cl0
, meth1
, val2
); }
1254 jlong
CallStaticLongMethodA (jclass cl0
, jmethodID meth1
, jvalue
* val2
)
1255 { return p
->CallStaticLongMethodA (this, cl0
, meth1
, val2
); }
1257 jfloat
CallStaticFloatMethod (jclass cl0
, jmethodID meth1
, ...)
1260 va_start (args
, meth1
);
1261 jfloat result
= p
->CallStaticFloatMethodV (this, cl0
, meth1
, args
);
1266 jfloat
CallStaticFloatMethodV (jclass cl0
, jmethodID meth1
, _Jv_va_list val2
)
1267 { return p
->CallStaticFloatMethodV (this, cl0
, meth1
, val2
); }
1269 jfloat
CallStaticFloatMethodA (jclass cl0
, jmethodID meth1
, jvalue
* val2
)
1270 { return p
->CallStaticFloatMethodA (this, cl0
, meth1
, val2
); }
1272 jdouble
CallStaticDoubleMethod (jclass cl0
, jmethodID meth1
, ...)
1275 va_start (args
, meth1
);
1276 jdouble result
= p
->CallStaticDoubleMethodV (this, cl0
, meth1
, args
);
1281 jdouble
CallStaticDoubleMethodV (jclass cl0
, jmethodID meth1
, _Jv_va_list val2
)
1282 { return p
->CallStaticDoubleMethodV (this, cl0
, meth1
, val2
); }
1284 jdouble
CallStaticDoubleMethodA (jclass cl0
, jmethodID meth1
, jvalue
* val2
)
1285 { return p
->CallStaticDoubleMethodA (this, cl0
, meth1
, val2
); }
1287 void CallStaticVoidMethod (jclass cl0
, jmethodID meth1
, ...)
1290 va_start (args
, meth1
);
1291 p
->CallStaticVoidMethodV (this, cl0
, meth1
, args
);
1295 void CallStaticVoidMethodV (jclass cl0
, jmethodID meth1
, _Jv_va_list val2
)
1296 { p
->CallStaticVoidMethodV (this, cl0
, meth1
, val2
); }
1298 void CallStaticVoidMethodA (jclass cl0
, jmethodID meth1
, jvalue
* val2
)
1299 { p
->CallStaticVoidMethodA (this, cl0
, meth1
, val2
); }
1301 jfieldID
GetStaticFieldID (jclass cl0
, const char * val1
, const char * val2
)
1302 { return p
->GetStaticFieldID (this, cl0
, val1
, val2
); }
1304 jobject
GetStaticObjectField (jclass cl0
, jfieldID fld1
)
1305 { return p
->GetStaticObjectField (this, cl0
, fld1
); }
1307 jboolean
GetStaticBooleanField (jclass cl0
, jfieldID fld1
)
1308 { return p
->GetStaticBooleanField (this, cl0
, fld1
); }
1310 jbyte
GetStaticByteField (jclass cl0
, jfieldID fld1
)
1311 { return p
->GetStaticByteField (this, cl0
, fld1
); }
1313 jchar
GetStaticCharField (jclass cl0
, jfieldID fld1
)
1314 { return p
->GetStaticCharField (this, cl0
, fld1
); }
1316 jshort
GetStaticShortField (jclass cl0
, jfieldID fld1
)
1317 { return p
->GetStaticShortField (this, cl0
, fld1
); }
1319 jint
GetStaticIntField (jclass cl0
, jfieldID fld1
)
1320 { return p
->GetStaticIntField (this, cl0
, fld1
); }
1322 jlong
GetStaticLongField (jclass cl0
, jfieldID fld1
)
1323 { return p
->GetStaticLongField (this, cl0
, fld1
); }
1325 jfloat
GetStaticFloatField (jclass cl0
, jfieldID fld1
)
1326 { return p
->GetStaticFloatField (this, cl0
, fld1
); }
1328 jdouble
GetStaticDoubleField (jclass cl0
, jfieldID fld1
)
1329 { return p
->GetStaticDoubleField (this, cl0
, fld1
); }
1331 void SetStaticObjectField (jclass cl0
, jfieldID fld1
, jobject obj2
)
1332 { p
->SetStaticObjectField (this, cl0
, fld1
, obj2
); }
1334 void SetStaticBooleanField (jclass cl0
, jfieldID fld1
, jboolean val2
)
1335 { p
->SetStaticBooleanField (this, cl0
, fld1
, val2
); }
1337 void SetStaticByteField (jclass cl0
, jfieldID fld1
, jbyte val2
)
1338 { p
->SetStaticByteField (this, cl0
, fld1
, val2
); }
1340 void SetStaticCharField (jclass cl0
, jfieldID fld1
, jchar val2
)
1341 { p
->SetStaticCharField (this, cl0
, fld1
, val2
); }
1343 void SetStaticShortField (jclass cl0
, jfieldID fld1
, jshort val2
)
1344 { p
->SetStaticShortField (this, cl0
, fld1
, val2
); }
1346 void SetStaticIntField (jclass cl0
, jfieldID fld1
, jint val2
)
1347 { p
->SetStaticIntField (this, cl0
, fld1
, val2
); }
1349 void SetStaticLongField (jclass cl0
, jfieldID fld1
, jlong val2
)
1350 { p
->SetStaticLongField (this, cl0
, fld1
, val2
); }
1352 void SetStaticFloatField (jclass cl0
, jfieldID fld1
, jfloat val2
)
1353 { p
->SetStaticFloatField (this, cl0
, fld1
, val2
); }
1355 void SetStaticDoubleField (jclass cl0
, jfieldID fld1
, jdouble val2
)
1356 { p
->SetStaticDoubleField (this, cl0
, fld1
, val2
); }
1358 jstring
NewString (const jchar
* val0
, jsize val1
)
1359 { return p
->NewString (this, val0
, val1
); }
1361 jint
GetStringLength (jstring val0
)
1362 { return p
->GetStringLength (this, val0
); }
1364 const jchar
* GetStringChars (jstring val0
, jboolean
* val1
)
1365 { return p
->GetStringChars (this, val0
, val1
); }
1367 void ReleaseStringChars (jstring val0
, const jchar
* val1
)
1368 { p
->ReleaseStringChars (this, val0
, val1
); }
1370 jstring
NewStringUTF (const char * val0
)
1371 { return p
->NewStringUTF (this, val0
); }
1373 jsize
GetStringUTFLength (jstring val0
)
1374 { return p
->GetStringUTFLength (this, val0
); }
1376 const char * GetStringUTFChars (jstring val0
, jboolean
* val1
)
1377 { return p
->GetStringUTFChars (this, val0
, val1
); }
1379 void ReleaseStringUTFChars (jstring val0
, const char * val1
)
1380 { p
->ReleaseStringUTFChars (this, val0
, val1
); }
1382 jsize
GetArrayLength (jarray val0
)
1383 { return p
->GetArrayLength (this, val0
); }
1385 jobjectArray
NewObjectArray (jsize val0
, jclass cl1
, jobject obj2
)
1386 { return p
->NewObjectArray (this, val0
, cl1
, obj2
); }
1388 jobject
GetObjectArrayElement (jobjectArray val0
, jsize val1
)
1389 { return p
->GetObjectArrayElement (this, val0
, val1
); }
1391 void SetObjectArrayElement (jobjectArray val0
, jsize val1
, jobject obj2
)
1392 { p
->SetObjectArrayElement (this, val0
, val1
, obj2
); }
1394 jbooleanArray
NewBooleanArray (jsize val0
)
1395 { return p
->NewBooleanArray (this, val0
); }
1397 jbyteArray
NewByteArray (jsize val0
)
1398 { return p
->NewByteArray (this, val0
); }
1400 jcharArray
NewCharArray (jsize val0
)
1401 { return p
->NewCharArray (this, val0
); }
1403 jshortArray
NewShortArray (jsize val0
)
1404 { return p
->NewShortArray (this, val0
); }
1406 jintArray
NewIntArray (jsize val0
)
1407 { return p
->NewIntArray (this, val0
); }
1409 jlongArray
NewLongArray (jsize val0
)
1410 { return p
->NewLongArray (this, val0
); }
1412 jfloatArray
NewFloatArray (jsize val0
)
1413 { return p
->NewFloatArray (this, val0
); }
1415 jdoubleArray
NewDoubleArray (jsize val0
)
1416 { return p
->NewDoubleArray (this, val0
); }
1418 jboolean
* GetBooleanArrayElements (jbooleanArray val0
, jboolean
* val1
)
1419 { return p
->GetBooleanArrayElements (this, val0
, val1
); }
1421 jbyte
* GetByteArrayElements (jbyteArray val0
, jboolean
* val1
)
1422 { return p
->GetByteArrayElements (this, val0
, val1
); }
1424 jchar
* GetCharArrayElements (jcharArray val0
, jboolean
* val1
)
1425 { return p
->GetCharArrayElements (this, val0
, val1
); }
1427 jshort
* GetShortArrayElements (jshortArray val0
, jboolean
* val1
)
1428 { return p
->GetShortArrayElements (this, val0
, val1
); }
1430 jint
* GetIntArrayElements (jintArray val0
, jboolean
* val1
)
1431 { return p
->GetIntArrayElements (this, val0
, val1
); }
1433 jlong
* GetLongArrayElements (jlongArray val0
, jboolean
* val1
)
1434 { return p
->GetLongArrayElements (this, val0
, val1
); }
1436 jfloat
* GetFloatArrayElements (jfloatArray val0
, jboolean
* val1
)
1437 { return p
->GetFloatArrayElements (this, val0
, val1
); }
1439 jdouble
* GetDoubleArrayElements (jdoubleArray val0
, jboolean
* val1
)
1440 { return p
->GetDoubleArrayElements (this, val0
, val1
); }
1442 void ReleaseBooleanArrayElements (jbooleanArray val0
, jboolean
* val1
, jint val2
)
1443 { p
->ReleaseBooleanArrayElements (this, val0
, val1
, val2
); }
1445 void ReleaseByteArrayElements (jbyteArray val0
, jbyte
* val1
, jint val2
)
1446 { p
->ReleaseByteArrayElements (this, val0
, val1
, val2
); }
1448 void ReleaseCharArrayElements (jcharArray val0
, jchar
* val1
, jint val2
)
1449 { p
->ReleaseCharArrayElements (this, val0
, val1
, val2
); }
1451 void ReleaseShortArrayElements (jshortArray val0
, jshort
* val1
, jint val2
)
1452 { p
->ReleaseShortArrayElements (this, val0
, val1
, val2
); }
1454 void ReleaseIntArrayElements (jintArray val0
, jint
* val1
, jint val2
)
1455 { p
->ReleaseIntArrayElements (this, val0
, val1
, val2
); }
1457 void ReleaseLongArrayElements (jlongArray val0
, jlong
* val1
, jint val2
)
1458 { p
->ReleaseLongArrayElements (this, val0
, val1
, val2
); }
1460 void ReleaseFloatArrayElements (jfloatArray val0
, jfloat
* val1
, jint val2
)
1461 { p
->ReleaseFloatArrayElements (this, val0
, val1
, val2
); }
1463 void ReleaseDoubleArrayElements (jdoubleArray val0
, jdouble
* val1
, jint val2
)
1464 { p
->ReleaseDoubleArrayElements (this, val0
, val1
, val2
); }
1466 void GetBooleanArrayRegion (jbooleanArray val0
, jsize val1
, jsize val2
, jboolean
* val3
)
1467 { p
->GetBooleanArrayRegion (this, val0
, val1
, val2
, val3
); }
1469 void GetByteArrayRegion (jbyteArray val0
, jsize val1
, jsize val2
, jbyte
* val3
)
1470 { p
->GetByteArrayRegion (this, val0
, val1
, val2
, val3
); }
1472 void GetCharArrayRegion (jcharArray val0
, jsize val1
, jsize val2
, jchar
* val3
)
1473 { p
->GetCharArrayRegion (this, val0
, val1
, val2
, val3
); }
1475 void GetShortArrayRegion (jshortArray val0
, jsize val1
, jsize val2
, jshort
* val3
)
1476 { p
->GetShortArrayRegion (this, val0
, val1
, val2
, val3
); }
1478 void GetIntArrayRegion (jintArray val0
, jsize val1
, jsize val2
, jint
* val3
)
1479 { p
->GetIntArrayRegion (this, val0
, val1
, val2
, val3
); }
1481 void GetLongArrayRegion (jlongArray val0
, jsize val1
, jsize val2
, jlong
* val3
)
1482 { p
->GetLongArrayRegion (this, val0
, val1
, val2
, val3
); }
1484 void GetFloatArrayRegion (jfloatArray val0
, jsize val1
, jsize val2
, jfloat
* val3
)
1485 { p
->GetFloatArrayRegion (this, val0
, val1
, val2
, val3
); }
1487 void GetDoubleArrayRegion (jdoubleArray val0
, jsize val1
, jsize val2
, jdouble
* val3
)
1488 { p
->GetDoubleArrayRegion (this, val0
, val1
, val2
, val3
); }
1490 void SetBooleanArrayRegion (jbooleanArray val0
, jsize val1
, jsize val2
, jboolean
* val3
)
1491 { p
->SetBooleanArrayRegion (this, val0
, val1
, val2
, val3
); }
1493 void SetByteArrayRegion (jbyteArray val0
, jsize val1
, jsize val2
, jbyte
* val3
)
1494 { p
->SetByteArrayRegion (this, val0
, val1
, val2
, val3
); }
1496 void SetCharArrayRegion (jcharArray val0
, jsize val1
, jsize val2
, jchar
* val3
)
1497 { p
->SetCharArrayRegion (this, val0
, val1
, val2
, val3
); }
1499 void SetShortArrayRegion (jshortArray val0
, jsize val1
, jsize val2
, jshort
* val3
)
1500 { p
->SetShortArrayRegion (this, val0
, val1
, val2
, val3
); }
1502 void SetIntArrayRegion (jintArray val0
, jsize val1
, jsize val2
, jint
* val3
)
1503 { p
->SetIntArrayRegion (this, val0
, val1
, val2
, val3
); }
1505 void SetLongArrayRegion (jlongArray val0
, jsize val1
, jsize val2
, jlong
* val3
)
1506 { p
->SetLongArrayRegion (this, val0
, val1
, val2
, val3
); }
1508 void SetFloatArrayRegion (jfloatArray val0
, jsize val1
, jsize val2
, jfloat
* val3
)
1509 { p
->SetFloatArrayRegion (this, val0
, val1
, val2
, val3
); }
1511 void SetDoubleArrayRegion (jdoubleArray val0
, jsize val1
, jsize val2
, jdouble
* val3
)
1512 { p
->SetDoubleArrayRegion (this, val0
, val1
, val2
, val3
); }
1514 jint
RegisterNatives (jclass cl0
, const JNINativeMethod
* val1
, jint val2
)
1515 { return p
->RegisterNatives (this, cl0
, val1
, val2
); }
1517 jint
UnregisterNatives (jclass cl0
)
1518 { return p
->UnregisterNatives (this, cl0
); }
1520 jint
MonitorEnter (jobject obj0
)
1521 { return p
->MonitorEnter (this, obj0
); }
1523 jint
MonitorExit (jobject obj0
)
1524 { return p
->MonitorExit (this, obj0
); }
1526 jint
GetJavaVM (JavaVM
** val0
)
1527 { return p
->GetJavaVM (this, val0
); }
1529 void GetStringRegion (jstring val0
, jsize val1
, jsize val2
, jchar
* val3
)
1530 { p
->GetStringRegion (this, val0
, val1
, val2
, val3
); }
1532 void GetStringUTFRegion (jstring val0
, jsize val1
, jsize val2
, char * val3
)
1533 { p
->GetStringUTFRegion (this, val0
, val1
, val2
, val3
); }
1535 void * GetPrimitiveArrayCritical (jarray val0
, jboolean
* val1
)
1536 { return p
->GetPrimitiveArrayCritical (this, val0
, val1
); }
1538 void ReleasePrimitiveArrayCritical (jarray val0
, void * val1
, jint val2
)
1539 { p
->ReleasePrimitiveArrayCritical (this, val0
, val1
, val2
); }
1541 const jchar
* GetStringCritical (jstring val0
, jboolean
* val1
)
1542 { return p
->GetStringCritical (this, val0
, val1
); }
1544 void ReleaseStringCritical (jstring val0
, const jchar
* val1
)
1545 { p
->ReleaseStringCritical (this, val0
, val1
); }
1547 jweak
NewWeakGlobalRef (jobject obj0
)
1548 { return p
->NewWeakGlobalRef (this, obj0
); }
1550 void DeleteWeakGlobalRef (jweak val0
)
1551 { p
->DeleteWeakGlobalRef (this, val0
); }
1553 jboolean
ExceptionCheck ()
1554 { return p
->ExceptionCheck (this); }
1556 jobject
NewDirectByteBuffer (void *addr
, jlong capacity
)
1557 { return p
->NewDirectByteBuffer (this, addr
, capacity
); }
1559 void *GetDirectBufferAddress (jobject buf
)
1560 { return p
->GetDirectBufferAddress (this, buf
); }
1562 jlong
GetDirectBufferCapacity (jobject buf
)
1563 { return p
->GetDirectBufferCapacity (this, buf
); }
1565 #endif /* __cplusplus */
1571 struct JNIInvokeInterface
1577 jint (JNICALL
*DestroyJavaVM
) (JavaVM
*);
1578 jint (JNICALL
*AttachCurrentThread
) (JavaVM
*, void **, void *);
1579 jint (JNICALL
*DetachCurrentThread
) (JavaVM
*);
1580 jint (JNICALL
*GetEnv
) (JavaVM
*, void **, jint
);
1581 jint (JNICALL
*AttachCurrentThreadAsDaemon
) (JavaVM
*, void **, void *);
1589 const struct JNIInvokeInterface
*functions
;
1592 /* FIXME: other fields. */
1595 jint
DestroyJavaVM ()
1596 { return functions
->DestroyJavaVM (this); }
1598 jint
AttachCurrentThread (void **penv
, void *args
)
1599 { return functions
->AttachCurrentThread (this, penv
, args
); }
1601 jint
DetachCurrentThread ()
1602 { return functions
->DetachCurrentThread (this); }
1604 jint
GetEnv (void **penv
, jint version
)
1605 { return functions
->GetEnv (this, penv
, version
); }
1607 jint
AttachCurrentThreadAsDaemon (void **penv
, void *args
)
1608 { return functions
->AttachCurrentThreadAsDaemon (this, penv
, args
); }
1610 #endif /* __cplusplus */
1612 typedef struct JavaVMAttachArgs
1614 jint version
; /* Must be JNI_VERSION_1_2. */
1615 char *name
; /* The name of the thread (or NULL). */
1616 jobject group
; /* Global ref of a ThreadGroup object
1620 typedef struct JavaVMOption
1626 typedef struct JavaVMInitArgs
1628 /* Must be JNI_VERSION_1_2. */
1631 /* Number of options. */
1634 /* Options to the VM. */
1635 JavaVMOption
*options
;
1637 /* Whether we should ignore unrecognized options. */
1638 jboolean ignoreUnrecognized
;
1641 #endif /* __GCJ_JNI_H__ */