111 #include "xmog-config.h"
118 #if !defined(XMOG_DOTNET_WORKAROUND)
119 # if( XMOG_WINDOWS == 1 ) && defined(_MSC_VER)
120 # define XMOG_DOTNET_WORKAROUND 0
122 # define XMOG_DOTNET_WORKAROUND 0
126 #if (XMOG_DOTNET_WORKAROUND == 1)
127 # define XMOG_SEH_NO_RETVAL_0(x) __try { functions->x(this); } __except(1) { functions->x(this); }
128 # define XMOG_SEH_NO_RETVAL_1(x,a1) __try { functions->x(this,a1); } __except(1) { functions->x(this,a1); }
129 # define XMOG_SEH_NO_RETVAL_2(x,a1,a2) __try { functions->x(this,a1,a2); } __except(1) { functions->x(this,a1,a2); }
130 # define XMOG_SEH_NO_RETVAL_3(x,a1,a2,a3) __try { functions->x(this,a1,a2,a3); } __except(1) { functions->x(this,a1,a2,a3); }
131 # define XMOG_SEH_NO_RETVAL_4(x,a1,a2,a3,a4) __try { functions->x(this,a1,a2,a3,a4); } __except(1) { functions->x(this,a1,a2,a3,a4); }
132 # define XMOG_SEH_NO_RETVAL_5(x,a1,a2,a3,a4,a5) __try { functions->x(this,a1,a2,a3,a4,a5); } __except(1) { functions->x(this,a1,a2,a3,a4,a5); }
133 # define XMOG_SEH_RETVAL_0(x) __try { return functions->x(this); } __except(1) { return functions->x(this); }
134 # define XMOG_SEH_RETVAL_1(x,a1) __try { return functions->x(this,a1); } __except(1) { return functions->x(this,a1); }
135 # define XMOG_SEH_RETVAL_2(x,a1,a2) __try { return functions->x(this,a1,a2); } __except(1) { return functions->x(this,a1,a2); }
136 # define XMOG_SEH_RETVAL_3(x,a1,a2,a3) __try { return functions->x(this,a1,a2,a3); } __except(1) { return functions->x(this,a1,a2,a3); }
137 # define XMOG_SEH_RETVAL_4(x,a1,a2,a3,a4) __try { return functions->x(this,a1,a2,a3,a4); } __except(1) { return functions->x(this,a1,a2,a3,a4); }
138 # define XMOG_SEH_RETVAL_5(x,a1,a2,a3,a4,a5) __try { return functions->x(this,a1,a2,a3,a4,a5); } __except(1) { return functions->x(this,a1,a2,a3,a4,a5); }
140 # define XMOG_SEH_NO_RETVAL_0(x) functions->x(this);
141 # define XMOG_SEH_NO_RETVAL_1(x,a1) functions->x(this,a1);
142 # define XMOG_SEH_NO_RETVAL_2(x,a1,a2) functions->x(this,a1,a2);
143 # define XMOG_SEH_NO_RETVAL_3(x,a1,a2,a3) functions->x(this,a1,a2,a3);
144 # define XMOG_SEH_NO_RETVAL_4(x,a1,a2,a3,a4) functions->x(this,a1,a2,a3,a4);
145 # define XMOG_SEH_NO_RETVAL_5(x,a1,a2,a3,a4,a5) functions->x(this,a1,a2,a3,a4,a5);
146 # define XMOG_SEH_RETVAL_0(x) return functions->x(this);
147 # define XMOG_SEH_RETVAL_1(x,a1) return functions->x(this,a1);
148 # define XMOG_SEH_RETVAL_2(x,a1,a2) return functions->x(this,a1,a2);
149 # define XMOG_SEH_RETVAL_3(x,a1,a2,a3) return functions->x(this,a1,a2,a3);
150 # define XMOG_SEH_RETVAL_4(x,a1,a2,a3,a4) return functions->x(this,a1,a2,a3,a4);
151 # define XMOG_SEH_RETVAL_5(x,a1,a2,a3,a4,a5) return functions->x(this,a1,a2,a3,a4,a5);
155 #if (XMOG_USE_EXTERNAL_JNI_DEFINITIONS==1)
163 # if (XMOG_HAS_SYS_INTTYPES==1)
164 # include <sys/inttypes.h>
167 # if (XMOG_WINDOWS==1)
169 # define JNIEXPORT __declspec(dllexport)
170 # define JNIIMPORT __declspec(dllimport)
171 # define JNICALL __stdcall
174 typedef __int64 jlong;
175 typedef signed char jbyte;
184 typedef int32_t jint;
185 typedef int64_t jlong;
188 # if defined(_LP64) || defined(__64BIT__)
191 typedef long long jlong;
195 typedef signed char jbyte;
204 typedef unsigned char jboolean;
205 typedef unsigned short jchar;
206 typedef short jshort;
207 typedef float jfloat;
208 typedef double jdouble;
210 #if (XMOG_AIX==1) && defined(__64BIT__)
219 class _jclass :
public _jobject {};
220 class _jthrowable :
public _jobject {};
221 class _jstring :
public _jobject {};
222 class _jarray :
public _jobject {};
223 class _jbooleanArray :
public _jarray {};
224 class _jbyteArray :
public _jarray {};
225 class _jcharArray :
public _jarray {};
226 class _jshortArray :
public _jarray {};
227 class _jintArray :
public _jarray {};
228 class _jlongArray :
public _jarray {};
229 class _jfloatArray :
public _jarray {};
230 class _jdoubleArray :
public _jarray {};
231 class _jobjectArray :
public _jarray {};
233 typedef _jobject *jobject;
234 typedef _jclass *jclass;
235 typedef _jthrowable *jthrowable;
236 typedef _jstring *jstring;
237 typedef _jarray *jarray;
238 typedef _jbooleanArray *jbooleanArray;
239 typedef _jbyteArray *jbyteArray;
240 typedef _jcharArray *jcharArray;
241 typedef _jshortArray *jshortArray;
242 typedef _jintArray *jintArray;
243 typedef _jlongArray *jlongArray;
244 typedef _jfloatArray *jfloatArray;
245 typedef _jdoubleArray *jdoubleArray;
246 typedef _jobjectArray *jobjectArray;
252 typedef struct _jobject *jobject;
253 typedef jobject jclass;
254 typedef jobject jthrowable;
255 typedef jobject jstring;
256 typedef jobject jarray;
257 typedef jarray jbooleanArray;
258 typedef jarray jbyteArray;
259 typedef jarray jcharArray;
260 typedef jarray jshortArray;
261 typedef jarray jintArray;
262 typedef jarray jlongArray;
263 typedef jarray jfloatArray;
264 typedef jarray jdoubleArray;
265 typedef jarray jobjectArray;
269 typedef jobject jweak;
278 typedef union jvalue {
291 typedef struct _jfieldID *jfieldID;
294 typedef struct _jmethodID *jmethodID;
309 #define JNI_EDETACHED (-2)
310 #define JNI_EVERSION (-3)
311 #define JNI_ENOMEM (-4)
312 #define JNI_EEXIST (-5)
313 #define JNI_EINVAL (-6)
337 struct JNINativeInterface_;
342 typedef JNIEnv_ JNIEnv;
344 typedef const struct JNINativeInterface_ *JNIEnv;
351 struct JNIInvokeInterface_;
356 typedef JavaVM_ JavaVM;
358 typedef const struct JNIInvokeInterface_ *JavaVM;
361 struct JNINativeInterface_ {
367 jint (JNICALL *GetVersion)(JNIEnv *env);
369 jclass (JNICALL *DefineClass)
370 (JNIEnv *env,
const char *name, jobject loader,
const jbyte *buf,
372 jclass (JNICALL *FindClass)
373 (JNIEnv *env,
const char *name);
375 jmethodID (JNICALL *FromReflectedMethod)
376 (JNIEnv *env, jobject method);
377 jfieldID (JNICALL *FromReflectedField)
378 (JNIEnv *env, jobject field);
380 jobject (JNICALL *ToReflectedMethod)
381 (JNIEnv *env, jclass cls, jmethodID methodID, jboolean isStatic);
383 jclass (JNICALL *GetSuperclass)
384 (JNIEnv *env, jclass sub);
385 jboolean (JNICALL *IsAssignableFrom)
386 (JNIEnv *env, jclass sub, jclass sup);
388 jobject (JNICALL *ToReflectedField)
389 (JNIEnv *env, jclass cls, jfieldID fieldID, jboolean isStatic);
391 jint (JNICALL *Throw)
392 (JNIEnv *env, jthrowable obj);
393 jint (JNICALL *ThrowNew)
394 (JNIEnv *env, jclass clazz,
const char *msg);
395 jthrowable (JNICALL *ExceptionOccurred)
397 void (JNICALL *ExceptionDescribe)
399 void (JNICALL *ExceptionClear)
402 (JNIEnv *env,
const char *msg);
404 jint (JNICALL *PushLocalFrame)
405 (JNIEnv *env, jint capacity);
406 jobject (JNICALL *PopLocalFrame)
407 (JNIEnv *env, jobject result);
409 jobject (JNICALL *NewGlobalRef)
410 (JNIEnv *env, jobject lobj);
411 void (JNICALL *DeleteGlobalRef)
412 (JNIEnv *env, jobject gref);
413 void (JNICALL *DeleteLocalRef)
414 (JNIEnv *env, jobject obj);
415 jboolean (JNICALL *IsSameObject)
416 (JNIEnv *env, jobject obj1, jobject obj2);
417 jobject (JNICALL *NewLocalRef)
418 (JNIEnv *env, jobject ref);
419 jint (JNICALL *EnsureLocalCapacity)
420 (JNIEnv *env, jint capacity);
422 jobject (JNICALL *AllocObject)
423 (JNIEnv *env, jclass clazz);
424 jobject (JNICALL *NewObject)
425 (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
426 jobject (JNICALL *NewObjectV)
427 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
428 jobject (JNICALL *NewObjectA)
429 (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
431 jclass (JNICALL *GetObjectClass)
432 (JNIEnv *env, jobject obj);
433 jboolean (JNICALL *IsInstanceOf)
434 (JNIEnv *env, jobject obj, jclass clazz);
436 jmethodID (JNICALL *GetMethodID)
437 (JNIEnv *env, jclass clazz,
const char *name,
const char *sig);
439 jobject (JNICALL *CallObjectMethod)
440 (JNIEnv *env, jobject obj, jmethodID methodID, ...);
441 jobject (JNICALL *CallObjectMethodV)
442 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
443 jobject (JNICALL *CallObjectMethodA)
444 (JNIEnv *env, jobject obj, jmethodID methodID, jvalue * args);
446 jboolean (JNICALL *CallBooleanMethod)
447 (JNIEnv *env, jobject obj, jmethodID methodID, ...);
448 jboolean (JNICALL *CallBooleanMethodV)
449 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
450 jboolean (JNICALL *CallBooleanMethodA)
451 (JNIEnv *env, jobject obj, jmethodID methodID, jvalue * args);
453 jbyte (JNICALL *CallByteMethod)
454 (JNIEnv *env, jobject obj, jmethodID methodID, ...);
455 jbyte (JNICALL *CallByteMethodV)
456 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
457 jbyte (JNICALL *CallByteMethodA)
458 (JNIEnv *env, jobject obj, jmethodID methodID, jvalue *args);
460 jchar (JNICALL *CallCharMethod)
461 (JNIEnv *env, jobject obj, jmethodID methodID, ...);
462 jchar (JNICALL *CallCharMethodV)
463 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
464 jchar (JNICALL *CallCharMethodA)
465 (JNIEnv *env, jobject obj, jmethodID methodID, jvalue *args);
467 jshort (JNICALL *CallShortMethod)
468 (JNIEnv *env, jobject obj, jmethodID methodID, ...);
469 jshort (JNICALL *CallShortMethodV)
470 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
471 jshort (JNICALL *CallShortMethodA)
472 (JNIEnv *env, jobject obj, jmethodID methodID, jvalue *args);
474 jint (JNICALL *CallIntMethod)
475 (JNIEnv *env, jobject obj, jmethodID methodID, ...);
476 jint (JNICALL *CallIntMethodV)
477 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
478 jint (JNICALL *CallIntMethodA)
479 (JNIEnv *env, jobject obj, jmethodID methodID, jvalue *args);
481 jlong (JNICALL *CallLongMethod)
482 (JNIEnv *env, jobject obj, jmethodID methodID, ...);
483 jlong (JNICALL *CallLongMethodV)
484 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
485 jlong (JNICALL *CallLongMethodA)
486 (JNIEnv *env, jobject obj, jmethodID methodID, jvalue *args);
488 jfloat (JNICALL *CallFloatMethod)
489 (JNIEnv *env, jobject obj, jmethodID methodID, ...);
490 jfloat (JNICALL *CallFloatMethodV)
491 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
492 jfloat (JNICALL *CallFloatMethodA)
493 (JNIEnv *env, jobject obj, jmethodID methodID, jvalue *args);
495 jdouble (JNICALL *CallDoubleMethod)
496 (JNIEnv *env, jobject obj, jmethodID methodID, ...);
497 jdouble (JNICALL *CallDoubleMethodV)
498 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
499 jdouble (JNICALL *CallDoubleMethodA)
500 (JNIEnv *env, jobject obj, jmethodID methodID, jvalue *args);
502 void (JNICALL *CallVoidMethod)
503 (JNIEnv *env, jobject obj, jmethodID methodID, ...);
504 void (JNICALL *CallVoidMethodV)
505 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
506 void (JNICALL *CallVoidMethodA)
507 (JNIEnv *env, jobject obj, jmethodID methodID, jvalue * args);
509 jobject (JNICALL *CallNonvirtualObjectMethod)
510 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
511 jobject (JNICALL *CallNonvirtualObjectMethodV)
512 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
514 jobject (JNICALL *CallNonvirtualObjectMethodA)
515 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
518 jboolean (JNICALL *CallNonvirtualBooleanMethod)
519 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
520 jboolean (JNICALL *CallNonvirtualBooleanMethodV)
521 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
523 jboolean (JNICALL *CallNonvirtualBooleanMethodA)
524 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
527 jbyte (JNICALL *CallNonvirtualByteMethod)
528 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
529 jbyte (JNICALL *CallNonvirtualByteMethodV)
530 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
532 jbyte (JNICALL *CallNonvirtualByteMethodA)
533 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
536 jchar (JNICALL *CallNonvirtualCharMethod)
537 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
538 jchar (JNICALL *CallNonvirtualCharMethodV)
539 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
541 jchar (JNICALL *CallNonvirtualCharMethodA)
542 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
545 jshort (JNICALL *CallNonvirtualShortMethod)
546 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
547 jshort (JNICALL *CallNonvirtualShortMethodV)
548 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
550 jshort (JNICALL *CallNonvirtualShortMethodA)
551 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
554 jint (JNICALL *CallNonvirtualIntMethod)
555 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
556 jint (JNICALL *CallNonvirtualIntMethodV)
557 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
559 jint (JNICALL *CallNonvirtualIntMethodA)
560 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
563 jlong (JNICALL *CallNonvirtualLongMethod)
564 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
565 jlong (JNICALL *CallNonvirtualLongMethodV)
566 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
568 jlong (JNICALL *CallNonvirtualLongMethodA)
569 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
572 jfloat (JNICALL *CallNonvirtualFloatMethod)
573 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
574 jfloat (JNICALL *CallNonvirtualFloatMethodV)
575 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
577 jfloat (JNICALL *CallNonvirtualFloatMethodA)
578 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
581 jdouble (JNICALL *CallNonvirtualDoubleMethod)
582 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
583 jdouble (JNICALL *CallNonvirtualDoubleMethodV)
584 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
586 jdouble (JNICALL *CallNonvirtualDoubleMethodA)
587 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
590 void (JNICALL *CallNonvirtualVoidMethod)
591 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
592 void (JNICALL *CallNonvirtualVoidMethodV)
593 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
595 void (JNICALL *CallNonvirtualVoidMethodA)
596 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
599 jfieldID (JNICALL *GetFieldID)
600 (JNIEnv *env, jclass clazz,
const char *name,
const char *sig);
602 jobject (JNICALL *GetObjectField)
603 (JNIEnv *env, jobject obj, jfieldID fieldID);
604 jboolean (JNICALL *GetBooleanField)
605 (JNIEnv *env, jobject obj, jfieldID fieldID);
606 jbyte (JNICALL *GetByteField)
607 (JNIEnv *env, jobject obj, jfieldID fieldID);
608 jchar (JNICALL *GetCharField)
609 (JNIEnv *env, jobject obj, jfieldID fieldID);
610 jshort (JNICALL *GetShortField)
611 (JNIEnv *env, jobject obj, jfieldID fieldID);
612 jint (JNICALL *GetIntField)
613 (JNIEnv *env, jobject obj, jfieldID fieldID);
614 jlong (JNICALL *GetLongField)
615 (JNIEnv *env, jobject obj, jfieldID fieldID);
616 jfloat (JNICALL *GetFloatField)
617 (JNIEnv *env, jobject obj, jfieldID fieldID);
618 jdouble (JNICALL *GetDoubleField)
619 (JNIEnv *env, jobject obj, jfieldID fieldID);
621 void (JNICALL *SetObjectField)
622 (JNIEnv *env, jobject obj, jfieldID fieldID, jobject val);
623 void (JNICALL *SetBooleanField)
624 (JNIEnv *env, jobject obj, jfieldID fieldID, jboolean val);
625 void (JNICALL *SetByteField)
626 (JNIEnv *env, jobject obj, jfieldID fieldID, jbyte val);
627 void (JNICALL *SetCharField)
628 (JNIEnv *env, jobject obj, jfieldID fieldID, jchar val);
629 void (JNICALL *SetShortField)
630 (JNIEnv *env, jobject obj, jfieldID fieldID, jshort val);
631 void (JNICALL *SetIntField)
632 (JNIEnv *env, jobject obj, jfieldID fieldID, jint val);
633 void (JNICALL *SetLongField)
634 (JNIEnv *env, jobject obj, jfieldID fieldID, jlong val);
635 void (JNICALL *SetFloatField)
636 (JNIEnv *env, jobject obj, jfieldID fieldID, jfloat val);
637 void (JNICALL *SetDoubleField)
638 (JNIEnv *env, jobject obj, jfieldID fieldID, jdouble val);
640 jmethodID (JNICALL *GetStaticMethodID)
641 (JNIEnv *env, jclass clazz,
const char *name,
const char *sig);
643 jobject (JNICALL *CallStaticObjectMethod)
644 (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
645 jobject (JNICALL *CallStaticObjectMethodV)
646 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
647 jobject (JNICALL *CallStaticObjectMethodA)
648 (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
650 jboolean (JNICALL *CallStaticBooleanMethod)
651 (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
652 jboolean (JNICALL *CallStaticBooleanMethodV)
653 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
654 jboolean (JNICALL *CallStaticBooleanMethodA)
655 (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
657 jbyte (JNICALL *CallStaticByteMethod)
658 (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
659 jbyte (JNICALL *CallStaticByteMethodV)
660 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
661 jbyte (JNICALL *CallStaticByteMethodA)
662 (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
664 jchar (JNICALL *CallStaticCharMethod)
665 (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
666 jchar (JNICALL *CallStaticCharMethodV)
667 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
668 jchar (JNICALL *CallStaticCharMethodA)
669 (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
671 jshort (JNICALL *CallStaticShortMethod)
672 (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
673 jshort (JNICALL *CallStaticShortMethodV)
674 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
675 jshort (JNICALL *CallStaticShortMethodA)
676 (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
678 jint (JNICALL *CallStaticIntMethod)
679 (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
680 jint (JNICALL *CallStaticIntMethodV)
681 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
682 jint (JNICALL *CallStaticIntMethodA)
683 (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
685 jlong (JNICALL *CallStaticLongMethod)
686 (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
687 jlong (JNICALL *CallStaticLongMethodV)
688 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
689 jlong (JNICALL *CallStaticLongMethodA)
690 (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
692 jfloat (JNICALL *CallStaticFloatMethod)
693 (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
694 jfloat (JNICALL *CallStaticFloatMethodV)
695 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
696 jfloat (JNICALL *CallStaticFloatMethodA)
697 (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
699 jdouble (JNICALL *CallStaticDoubleMethod)
700 (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
701 jdouble (JNICALL *CallStaticDoubleMethodV)
702 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
703 jdouble (JNICALL *CallStaticDoubleMethodA)
704 (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
706 void (JNICALL *CallStaticVoidMethod)
707 (JNIEnv *env, jclass cls, jmethodID methodID, ...);
708 void (JNICALL *CallStaticVoidMethodV)
709 (JNIEnv *env, jclass cls, jmethodID methodID, va_list args);
710 void (JNICALL *CallStaticVoidMethodA)
711 (JNIEnv *env, jclass cls, jmethodID methodID, jvalue * args);
713 jfieldID (JNICALL *GetStaticFieldID)
714 (JNIEnv *env, jclass clazz,
const char *name,
const char *sig);
715 jobject (JNICALL *GetStaticObjectField)
716 (JNIEnv *env, jclass clazz, jfieldID fieldID);
717 jboolean (JNICALL *GetStaticBooleanField)
718 (JNIEnv *env, jclass clazz, jfieldID fieldID);
719 jbyte (JNICALL *GetStaticByteField)
720 (JNIEnv *env, jclass clazz, jfieldID fieldID);
721 jchar (JNICALL *GetStaticCharField)
722 (JNIEnv *env, jclass clazz, jfieldID fieldID);
723 jshort (JNICALL *GetStaticShortField)
724 (JNIEnv *env, jclass clazz, jfieldID fieldID);
725 jint (JNICALL *GetStaticIntField)
726 (JNIEnv *env, jclass clazz, jfieldID fieldID);
727 jlong (JNICALL *GetStaticLongField)
728 (JNIEnv *env, jclass clazz, jfieldID fieldID);
729 jfloat (JNICALL *GetStaticFloatField)
730 (JNIEnv *env, jclass clazz, jfieldID fieldID);
731 jdouble (JNICALL *GetStaticDoubleField)
732 (JNIEnv *env, jclass clazz, jfieldID fieldID);
734 void (JNICALL *SetStaticObjectField)
735 (JNIEnv *env, jclass clazz, jfieldID fieldID, jobject value);
736 void (JNICALL *SetStaticBooleanField)
737 (JNIEnv *env, jclass clazz, jfieldID fieldID, jboolean value);
738 void (JNICALL *SetStaticByteField)
739 (JNIEnv *env, jclass clazz, jfieldID fieldID, jbyte value);
740 void (JNICALL *SetStaticCharField)
741 (JNIEnv *env, jclass clazz, jfieldID fieldID, jchar value);
742 void (JNICALL *SetStaticShortField)
743 (JNIEnv *env, jclass clazz, jfieldID fieldID, jshort value);
744 void (JNICALL *SetStaticIntField)
745 (JNIEnv *env, jclass clazz, jfieldID fieldID, jint value);
746 void (JNICALL *SetStaticLongField)
747 (JNIEnv *env, jclass clazz, jfieldID fieldID, jlong value);
748 void (JNICALL *SetStaticFloatField)
749 (JNIEnv *env, jclass clazz, jfieldID fieldID, jfloat value);
750 void (JNICALL *SetStaticDoubleField)
751 (JNIEnv *env, jclass clazz, jfieldID fieldID, jdouble value);
753 jstring (JNICALL *NewString)
754 (JNIEnv *env,
const jchar *unicode, jsize len);
755 jsize (JNICALL *GetStringLength)
756 (JNIEnv *env, jstring str);
757 const jchar *(JNICALL *GetStringChars)
758 (JNIEnv *env, jstring str, jboolean *isCopy);
759 void (JNICALL *ReleaseStringChars)
760 (JNIEnv *env, jstring str,
const jchar *chars);
762 jstring (JNICALL *NewStringUTF)
763 (JNIEnv *env,
const char *utf);
764 jsize (JNICALL *GetStringUTFLength)
765 (JNIEnv *env, jstring str);
766 const char* (JNICALL *GetStringUTFChars)
767 (JNIEnv *env, jstring str, jboolean *isCopy);
768 void (JNICALL *ReleaseStringUTFChars)
769 (JNIEnv *env, jstring str,
const char* chars);
772 jsize (JNICALL *GetArrayLength)
773 (JNIEnv *env, jarray array);
775 jobjectArray (JNICALL *NewObjectArray)
776 (JNIEnv *env, jsize len, jclass clazz, jobject init);
777 jobject (JNICALL *GetObjectArrayElement)
778 (JNIEnv *env, jobjectArray array, jsize index);
779 void (JNICALL *SetObjectArrayElement)
780 (JNIEnv *env, jobjectArray array, jsize index, jobject val);
782 jbooleanArray (JNICALL *NewBooleanArray)
783 (JNIEnv *env, jsize len);
784 jbyteArray (JNICALL *NewByteArray)
785 (JNIEnv *env, jsize len);
786 jcharArray (JNICALL *NewCharArray)
787 (JNIEnv *env, jsize len);
788 jshortArray (JNICALL *NewShortArray)
789 (JNIEnv *env, jsize len);
790 jintArray (JNICALL *NewIntArray)
791 (JNIEnv *env, jsize len);
792 jlongArray (JNICALL *NewLongArray)
793 (JNIEnv *env, jsize len);
794 jfloatArray (JNICALL *NewFloatArray)
795 (JNIEnv *env, jsize len);
796 jdoubleArray (JNICALL *NewDoubleArray)
797 (JNIEnv *env, jsize len);
799 jboolean * (JNICALL *GetBooleanArrayElements)
800 (JNIEnv *env, jbooleanArray array, jboolean *isCopy);
801 jbyte * (JNICALL *GetByteArrayElements)
802 (JNIEnv *env, jbyteArray array, jboolean *isCopy);
803 jchar * (JNICALL *GetCharArrayElements)
804 (JNIEnv *env, jcharArray array, jboolean *isCopy);
805 jshort * (JNICALL *GetShortArrayElements)
806 (JNIEnv *env, jshortArray array, jboolean *isCopy);
807 jint * (JNICALL *GetIntArrayElements)
808 (JNIEnv *env, jintArray array, jboolean *isCopy);
809 jlong * (JNICALL *GetLongArrayElements)
810 (JNIEnv *env, jlongArray array, jboolean *isCopy);
811 jfloat * (JNICALL *GetFloatArrayElements)
812 (JNIEnv *env, jfloatArray array, jboolean *isCopy);
813 jdouble * (JNICALL *GetDoubleArrayElements)
814 (JNIEnv *env, jdoubleArray array, jboolean *isCopy);
816 void (JNICALL *ReleaseBooleanArrayElements)
817 (JNIEnv *env, jbooleanArray array, jboolean *elems, jint mode);
818 void (JNICALL *ReleaseByteArrayElements)
819 (JNIEnv *env, jbyteArray array, jbyte *elems, jint mode);
820 void (JNICALL *ReleaseCharArrayElements)
821 (JNIEnv *env, jcharArray array, jchar *elems, jint mode);
822 void (JNICALL *ReleaseShortArrayElements)
823 (JNIEnv *env, jshortArray array, jshort *elems, jint mode);
824 void (JNICALL *ReleaseIntArrayElements)
825 (JNIEnv *env, jintArray array, jint *elems, jint mode);
826 void (JNICALL *ReleaseLongArrayElements)
827 (JNIEnv *env, jlongArray array, jlong *elems, jint mode);
828 void (JNICALL *ReleaseFloatArrayElements)
829 (JNIEnv *env, jfloatArray array, jfloat *elems, jint mode);
830 void (JNICALL *ReleaseDoubleArrayElements)
831 (JNIEnv *env, jdoubleArray array, jdouble *elems, jint mode);
833 void (JNICALL *GetBooleanArrayRegion)
834 (JNIEnv *env, jbooleanArray array, jsize start, jsize l, jboolean *buf);
835 void (JNICALL *GetByteArrayRegion)
836 (JNIEnv *env, jbyteArray array, jsize start, jsize len, jbyte *buf);
837 void (JNICALL *GetCharArrayRegion)
838 (JNIEnv *env, jcharArray array, jsize start, jsize len, jchar *buf);
839 void (JNICALL *GetShortArrayRegion)
840 (JNIEnv *env, jshortArray array, jsize start, jsize len, jshort *buf);
841 void (JNICALL *GetIntArrayRegion)
842 (JNIEnv *env, jintArray array, jsize start, jsize len, jint *buf);
843 void (JNICALL *GetLongArrayRegion)
844 (JNIEnv *env, jlongArray array, jsize start, jsize len, jlong *buf);
845 void (JNICALL *GetFloatArrayRegion)
846 (JNIEnv *env, jfloatArray array, jsize start, jsize len, jfloat *buf);
847 void (JNICALL *GetDoubleArrayRegion)
848 (JNIEnv *env, jdoubleArray array, jsize start, jsize len, jdouble *buf);
850 void (JNICALL *SetBooleanArrayRegion)
851 (JNIEnv *env, jbooleanArray array, jsize start, jsize l, jboolean *buf);
852 void (JNICALL *SetByteArrayRegion)
853 (JNIEnv *env, jbyteArray array, jsize start, jsize len, jbyte *buf);
854 void (JNICALL *SetCharArrayRegion)
855 (JNIEnv *env, jcharArray array, jsize start, jsize len, jchar *buf);
856 void (JNICALL *SetShortArrayRegion)
857 (JNIEnv *env, jshortArray array, jsize start, jsize len, jshort *buf);
858 void (JNICALL *SetIntArrayRegion)
859 (JNIEnv *env, jintArray array, jsize start, jsize len, jint *buf);
860 void (JNICALL *SetLongArrayRegion)
861 (JNIEnv *env, jlongArray array, jsize start, jsize len, jlong *buf);
862 void (JNICALL *SetFloatArrayRegion)
863 (JNIEnv *env, jfloatArray array, jsize start, jsize len, jfloat *buf);
864 void (JNICALL *SetDoubleArrayRegion)
865 (JNIEnv *env, jdoubleArray array, jsize start, jsize len, jdouble *buf);
867 jint (JNICALL *RegisterNatives)
868 (JNIEnv *env, jclass clazz,
const JNINativeMethod *methods,
870 jint (JNICALL *UnregisterNatives)
871 (JNIEnv *env, jclass clazz);
873 jint (JNICALL *MonitorEnter)
874 (JNIEnv *env, jobject obj);
875 jint (JNICALL *MonitorExit)
876 (JNIEnv *env, jobject obj);
878 jint (JNICALL *GetJavaVM)
879 (JNIEnv *env, JavaVM **vm);
881 void (JNICALL *GetStringRegion)
882 (JNIEnv *env, jstring str, jsize start, jsize len, jchar *buf);
883 void (JNICALL *GetStringUTFRegion)
884 (JNIEnv *env, jstring str, jsize start, jsize len,
char *buf);
886 void * (JNICALL *GetPrimitiveArrayCritical)
887 (JNIEnv *env, jarray array, jboolean *isCopy);
888 void (JNICALL *ReleasePrimitiveArrayCritical)
889 (JNIEnv *env, jarray array,
void *carray, jint mode);
891 const jchar * (JNICALL *GetStringCritical)
892 (JNIEnv *env, jstring
string, jboolean *isCopy);
893 void (JNICALL *ReleaseStringCritical)
894 (JNIEnv *env, jstring string,
const jchar *cstring);
896 jweak (JNICALL *NewWeakGlobalRef)
897 (JNIEnv *env, jobject obj);
898 void (JNICALL *DeleteWeakGlobalRef)
899 (JNIEnv *env, jweak ref);
901 jboolean (JNICALL *ExceptionCheck)
904 jobject (JNICALL *NewDirectByteBuffer)
905 (JNIEnv* env,
void* address, jlong capacity);
906 void* (JNICALL *GetDirectBufferAddress)
907 (JNIEnv* env, jobject buf);
908 jlong (JNICALL *GetDirectBufferCapacity)
909 (JNIEnv* env, jobject buf);
913 const struct JNINativeInterface_ *functions;
917 return functions->GetVersion(
this);
919 jclass DefineClass(
const char *name, jobject loader,
const jbyte *buf,
921 XMOG_SEH_RETVAL_4(DefineClass, name, loader, buf, len)
923 jclass FindClass(
const char *name) {
924 XMOG_SEH_RETVAL_1(FindClass, name)
926 jmethodID FromReflectedMethod(jobject method) {
927 return functions->FromReflectedMethod(
this,method);
929 jfieldID FromReflectedField(jobject field) {
930 return functions->FromReflectedField(
this,field);
933 jobject ToReflectedMethod(jclass cls, jmethodID methodID, jboolean isStatic) {
934 return functions->ToReflectedMethod(
this, cls, methodID, isStatic);
937 jclass GetSuperclass(jclass sub) {
938 XMOG_SEH_RETVAL_1(GetSuperclass, sub)
941 jboolean IsAssignableFrom(jclass sub, jclass sup) {
942 XMOG_SEH_RETVAL_2(IsAssignableFrom, sub, sup)
945 jobject ToReflectedField(jclass cls, jfieldID fieldID, jboolean isStatic) {
946 return functions->ToReflectedField(
this,cls,fieldID,isStatic);
949 jint Throw(jthrowable obj) {
950 XMOG_SEH_RETVAL_1(Throw, obj)
952 jint ThrowNew(jclass clazz,
const char *msg) {
953 XMOG_SEH_RETVAL_2(ThrowNew, clazz, msg)
955 jthrowable ExceptionOccurred() {
956 XMOG_SEH_RETVAL_0(ExceptionOccurred)
958 void ExceptionDescribe() {
959 XMOG_SEH_NO_RETVAL_0(ExceptionDescribe)
961 void ExceptionClear() {
962 XMOG_SEH_NO_RETVAL_0(ExceptionClear)
968 jint PushLocalFrame(jint capacity) {
969 return functions->PushLocalFrame(
this,capacity);
971 jobject PopLocalFrame(jobject result) {
972 return functions->PopLocalFrame(
this,result);
975 jobject NewGlobalRef(jobject lobj) {
976 XMOG_SEH_RETVAL_1(NewGlobalRef,lobj)
978 void DeleteGlobalRef(jobject gref) {
979 XMOG_SEH_NO_RETVAL_1(DeleteGlobalRef,gref)
981 void DeleteLocalRef(jobject obj) {
982 XMOG_SEH_NO_RETVAL_1(DeleteLocalRef,obj)
985 jboolean IsSameObject(jobject obj1, jobject obj2) {
986 XMOG_SEH_RETVAL_2(IsSameObject,obj1,obj2)
989 jobject NewLocalRef(jobject ref) {
990 XMOG_SEH_RETVAL_1(NewLocalRef,ref)
992 jint EnsureLocalCapacity(jint capacity) {
993 return functions->EnsureLocalCapacity(
this,capacity);
996 jobject AllocObject(jclass clazz) {
997 return functions->AllocObject(
this,clazz);
999 jobject NewObject(jclass clazz, jmethodID methodID, ...) {
1002 va_start(args, methodID);
1003 result = functions->NewObjectV(
this,clazz,methodID,args);
1007 jobject NewObjectV(jclass clazz, jmethodID methodID,
1009 XMOG_SEH_RETVAL_3(NewObjectV,clazz,methodID,args)
1011 jobject NewObjectA(jclass clazz, jmethodID methodID,
1013 XMOG_SEH_RETVAL_3(NewObjectA,clazz,methodID,args)
1016 jclass GetObjectClass(jobject obj) {
1017 XMOG_SEH_RETVAL_1(GetObjectClass,obj)
1019 jboolean IsInstanceOf(jobject obj, jclass clazz) {
1020 XMOG_SEH_RETVAL_2(IsInstanceOf,obj,clazz)
1023 jmethodID GetMethodID(jclass clazz,
const char *name,
1025 XMOG_SEH_RETVAL_3(GetMethodID,clazz,name,sig)
1028 jobject CallObjectMethod(jobject obj, jmethodID methodID, ...) {
1031 va_start(args,methodID);
1032 result = functions->CallObjectMethodV(
this,obj,methodID,args);
1036 jobject CallObjectMethodV(jobject obj, jmethodID methodID,
1038 XMOG_SEH_RETVAL_3(CallObjectMethodV,obj,methodID,args)
1040 jobject CallObjectMethodA(jobject obj, jmethodID methodID,
1042 XMOG_SEH_RETVAL_3(CallObjectMethodA,obj,methodID,args)
1045 jboolean CallBooleanMethod(jobject obj,
1046 jmethodID methodID, ...) {
1049 va_start(args,methodID);
1050 result = functions->CallBooleanMethodV(
this,obj,methodID,args);
1054 jboolean CallBooleanMethodV(jobject obj, jmethodID methodID,
1056 XMOG_SEH_RETVAL_3(CallBooleanMethodV,obj,methodID,args)
1058 jboolean CallBooleanMethodA(jobject obj, jmethodID methodID,
1060 XMOG_SEH_RETVAL_3(CallBooleanMethodA,obj,methodID,args)
1063 jbyte CallByteMethod(jobject obj, jmethodID methodID, ...) {
1066 va_start(args,methodID);
1067 result = functions->CallByteMethodV(
this,obj,methodID,args);
1071 jbyte CallByteMethodV(jobject obj, jmethodID methodID,
1073 XMOG_SEH_RETVAL_3(CallByteMethodV,obj,methodID,args)
1075 jbyte CallByteMethodA(jobject obj, jmethodID methodID,
1077 XMOG_SEH_RETVAL_3(CallByteMethodA,obj,methodID,args)
1080 jchar CallCharMethod(jobject obj, jmethodID methodID, ...) {
1083 va_start(args,methodID);
1084 result = functions->CallCharMethodV(
this,obj,methodID,args);
1088 jchar CallCharMethodV(jobject obj, jmethodID methodID,
1090 XMOG_SEH_RETVAL_3(CallCharMethodV,obj,methodID,args)
1092 jchar CallCharMethodA(jobject obj, jmethodID methodID,
1094 XMOG_SEH_RETVAL_3(CallCharMethodA,obj,methodID,args)
1097 jshort CallShortMethod(jobject obj, jmethodID methodID, ...) {
1100 va_start(args,methodID);
1101 result = functions->CallShortMethodV(
this,obj,methodID,args);
1105 jshort CallShortMethodV(jobject obj, jmethodID methodID,
1107 XMOG_SEH_RETVAL_3(CallShortMethodV,obj,methodID,args)
1109 jshort CallShortMethodA(jobject obj, jmethodID methodID,
1111 XMOG_SEH_RETVAL_3(CallShortMethodA,obj,methodID,args)
1114 jint CallIntMethod(jobject obj, jmethodID methodID, ...) {
1117 va_start(args,methodID);
1118 result = functions->CallIntMethodV(
this,obj,methodID,args);
1122 jint CallIntMethodV(jobject obj, jmethodID methodID,
1124 XMOG_SEH_RETVAL_3(CallIntMethodV,obj,methodID,args)
1126 jint CallIntMethodA(jobject obj, jmethodID methodID,
1128 XMOG_SEH_RETVAL_3(CallIntMethodA,obj,methodID,args)
1131 jlong CallLongMethod(jobject obj, jmethodID methodID, ...) {
1134 va_start(args,methodID);
1135 result = functions->CallLongMethodV(
this,obj,methodID,args);
1139 jlong CallLongMethodV(jobject obj, jmethodID methodID,
1141 XMOG_SEH_RETVAL_3(CallLongMethodV,obj,methodID,args)
1143 jlong CallLongMethodA(jobject obj, jmethodID methodID,
1145 XMOG_SEH_RETVAL_3(CallLongMethodA,obj,methodID,args)
1148 jfloat CallFloatMethod(jobject obj, jmethodID methodID, ...) {
1151 va_start(args,methodID);
1152 result = functions->CallFloatMethodV(
this,obj,methodID,args);
1156 jfloat CallFloatMethodV(jobject obj, jmethodID methodID,
1158 XMOG_SEH_RETVAL_3(CallFloatMethodV,obj,methodID,args)
1160 jfloat CallFloatMethodA(jobject obj, jmethodID methodID,
1162 XMOG_SEH_RETVAL_3(CallFloatMethodA,obj,methodID,args)
1165 jdouble CallDoubleMethod(jobject obj, jmethodID methodID, ...) {
1168 va_start(args,methodID);
1169 result = functions->CallDoubleMethodV(
this,obj,methodID,args);
1173 jdouble CallDoubleMethodV(jobject obj, jmethodID methodID,
1175 XMOG_SEH_RETVAL_3(CallDoubleMethodV,obj,methodID,args)
1177 jdouble CallDoubleMethodA(jobject obj, jmethodID methodID,
1179 XMOG_SEH_RETVAL_3(CallDoubleMethodA,obj,methodID,args)
1182 void CallVoidMethod(jobject obj, jmethodID methodID, ...) {
1184 va_start(args,methodID);
1185 functions->CallVoidMethodV(
this,obj,methodID,args);
1188 void CallVoidMethodV(jobject obj, jmethodID methodID,
1190 XMOG_SEH_NO_RETVAL_3(CallVoidMethodV,obj,methodID,args)
1192 void CallVoidMethodA(jobject obj, jmethodID methodID,
1194 XMOG_SEH_NO_RETVAL_3(CallVoidMethodA,obj,methodID,args)
1197 jobject CallNonvirtualObjectMethod(jobject obj, jclass clazz,
1198 jmethodID methodID, ...) {
1201 va_start(args,methodID);
1202 result = functions->CallNonvirtualObjectMethodV(
this,obj,clazz,
1207 jobject CallNonvirtualObjectMethodV(jobject obj, jclass clazz,
1208 jmethodID methodID, va_list args) {
1209 XMOG_SEH_RETVAL_4(CallNonvirtualObjectMethodV,obj,clazz,methodID,args)
1211 jobject CallNonvirtualObjectMethodA(jobject obj, jclass clazz,
1212 jmethodID methodID, jvalue * args) {
1213 XMOG_SEH_RETVAL_4(CallNonvirtualObjectMethodA,obj,clazz,methodID,args)
1216 jboolean CallNonvirtualBooleanMethod(jobject obj, jclass clazz,
1217 jmethodID methodID, ...) {
1220 va_start(args,methodID);
1221 result = functions->CallNonvirtualBooleanMethodV(
this,obj,clazz,
1226 jboolean CallNonvirtualBooleanMethodV(jobject obj, jclass clazz,
1227 jmethodID methodID, va_list args) {
1228 XMOG_SEH_RETVAL_4(CallNonvirtualBooleanMethodV,obj,clazz,methodID,args)
1230 jboolean CallNonvirtualBooleanMethodA(jobject obj, jclass clazz,
1231 jmethodID methodID, jvalue * args) {
1232 XMOG_SEH_RETVAL_4(CallNonvirtualBooleanMethodA,obj,clazz,methodID,args)
1235 jbyte CallNonvirtualByteMethod(jobject obj, jclass clazz,
1236 jmethodID methodID, ...) {
1239 va_start(args,methodID);
1240 result = functions->CallNonvirtualByteMethodV(
this,obj,clazz,
1245 jbyte CallNonvirtualByteMethodV(jobject obj, jclass clazz,
1246 jmethodID methodID, va_list args) {
1247 XMOG_SEH_RETVAL_4(CallNonvirtualByteMethodV,obj,clazz,methodID,args)
1249 jbyte CallNonvirtualByteMethodA(jobject obj, jclass clazz,
1250 jmethodID methodID, jvalue * args) {
1251 XMOG_SEH_RETVAL_4(CallNonvirtualByteMethodA,obj,clazz,methodID,args)
1254 jchar CallNonvirtualCharMethod(jobject obj, jclass clazz,
1255 jmethodID methodID, ...) {
1258 va_start(args,methodID);
1259 result = functions->CallNonvirtualCharMethodV(
this,obj,clazz,
1264 jchar CallNonvirtualCharMethodV(jobject obj, jclass clazz,
1265 jmethodID methodID, va_list args) {
1266 XMOG_SEH_RETVAL_4(CallNonvirtualCharMethodV,obj,clazz,methodID,args)
1268 jchar CallNonvirtualCharMethodA(jobject obj, jclass clazz,
1269 jmethodID methodID, jvalue * args) {
1270 XMOG_SEH_RETVAL_4(CallNonvirtualCharMethodA,obj,clazz,methodID,args)
1273 jshort CallNonvirtualShortMethod(jobject obj, jclass clazz,
1274 jmethodID methodID, ...) {
1277 va_start(args,methodID);
1278 result = functions->CallNonvirtualShortMethodV(
this,obj,clazz,
1283 jshort CallNonvirtualShortMethodV(jobject obj, jclass clazz,
1284 jmethodID methodID, va_list args) {
1285 XMOG_SEH_RETVAL_4(CallNonvirtualShortMethodV,obj,clazz,methodID,args)
1287 jshort CallNonvirtualShortMethodA(jobject obj, jclass clazz,
1288 jmethodID methodID, jvalue * args) {
1289 XMOG_SEH_RETVAL_4(CallNonvirtualShortMethodA,obj,clazz,methodID,args)
1292 jint CallNonvirtualIntMethod(jobject obj, jclass clazz,
1293 jmethodID methodID, ...) {
1296 va_start(args,methodID);
1297 result = functions->CallNonvirtualIntMethodV(
this,obj,clazz,
1302 jint CallNonvirtualIntMethodV(jobject obj, jclass clazz,
1303 jmethodID methodID, va_list args) {
1304 XMOG_SEH_RETVAL_4(CallNonvirtualIntMethodV,obj,clazz,methodID,args)
1306 jint CallNonvirtualIntMethodA(jobject obj, jclass clazz,
1307 jmethodID methodID, jvalue * args) {
1308 XMOG_SEH_RETVAL_4(CallNonvirtualIntMethodA,obj,clazz,methodID,args)
1311 jlong CallNonvirtualLongMethod(jobject obj, jclass clazz,
1312 jmethodID methodID, ...) {
1315 va_start(args,methodID);
1316 result = functions->CallNonvirtualLongMethodV(
this,obj,clazz,
1321 jlong CallNonvirtualLongMethodV(jobject obj, jclass clazz,
1322 jmethodID methodID, va_list args) {
1323 XMOG_SEH_RETVAL_4(CallNonvirtualLongMethodV,obj,clazz,methodID,args)
1325 jlong CallNonvirtualLongMethodA(jobject obj, jclass clazz,
1326 jmethodID methodID, jvalue * args) {
1327 XMOG_SEH_RETVAL_4(CallNonvirtualLongMethodA,obj,clazz,methodID,args)
1330 jfloat CallNonvirtualFloatMethod(jobject obj, jclass clazz,
1331 jmethodID methodID, ...) {
1334 va_start(args,methodID);
1335 result = functions->CallNonvirtualFloatMethodV(
this,obj,clazz,
1340 jfloat CallNonvirtualFloatMethodV(jobject obj, jclass clazz,
1343 XMOG_SEH_RETVAL_4(CallNonvirtualFloatMethodV,obj,clazz,methodID,args)
1345 jfloat CallNonvirtualFloatMethodA(jobject obj, jclass clazz,
1348 XMOG_SEH_RETVAL_4(CallNonvirtualFloatMethodA,obj,clazz,methodID,args)
1351 jdouble CallNonvirtualDoubleMethod(jobject obj, jclass clazz,
1352 jmethodID methodID, ...) {
1355 va_start(args,methodID);
1356 result = functions->CallNonvirtualDoubleMethodV(
this,obj,clazz,
1361 jdouble CallNonvirtualDoubleMethodV(jobject obj, jclass clazz,
1364 XMOG_SEH_RETVAL_4(CallNonvirtualDoubleMethodV,obj,clazz,methodID,args)
1366 jdouble CallNonvirtualDoubleMethodA(jobject obj, jclass clazz,
1369 XMOG_SEH_RETVAL_4(CallNonvirtualDoubleMethodA,obj,clazz,methodID,args)
1372 void CallNonvirtualVoidMethod(jobject obj, jclass clazz,
1373 jmethodID methodID, ...) {
1375 va_start(args,methodID);
1376 functions->CallNonvirtualVoidMethodV(
this,obj,clazz,methodID,args);
1379 void CallNonvirtualVoidMethodV(jobject obj, jclass clazz,
1382 XMOG_SEH_NO_RETVAL_4(CallNonvirtualVoidMethodV,obj,clazz,methodID,args)
1384 void CallNonvirtualVoidMethodA(jobject obj, jclass clazz,
1387 XMOG_SEH_NO_RETVAL_4(CallNonvirtualVoidMethodA,obj,clazz,methodID,args)
1390 jfieldID GetFieldID(jclass clazz,
const char *name,
1392 XMOG_SEH_RETVAL_3(GetFieldID,clazz,name,sig)
1395 jobject GetObjectField(jobject obj, jfieldID fieldID) {
1396 XMOG_SEH_RETVAL_2(GetObjectField,obj,fieldID)
1398 jboolean GetBooleanField(jobject obj, jfieldID fieldID) {
1399 XMOG_SEH_RETVAL_2(GetBooleanField,obj,fieldID)
1401 jbyte GetByteField(jobject obj, jfieldID fieldID) {
1402 XMOG_SEH_RETVAL_2(GetByteField,obj,fieldID)
1404 jchar GetCharField(jobject obj, jfieldID fieldID) {
1405 XMOG_SEH_RETVAL_2(GetCharField,obj,fieldID)
1407 jshort GetShortField(jobject obj, jfieldID fieldID) {
1408 XMOG_SEH_RETVAL_2(GetShortField,obj,fieldID)
1410 jint GetIntField(jobject obj, jfieldID fieldID) {
1411 XMOG_SEH_RETVAL_2(GetIntField,obj,fieldID)
1413 jlong GetLongField(jobject obj, jfieldID fieldID) {
1414 XMOG_SEH_RETVAL_2(GetLongField,obj,fieldID)
1416 jfloat GetFloatField(jobject obj, jfieldID fieldID) {
1417 XMOG_SEH_RETVAL_2(GetFloatField,obj,fieldID)
1419 jdouble GetDoubleField(jobject obj, jfieldID fieldID) {
1420 XMOG_SEH_RETVAL_2(GetDoubleField,obj,fieldID)
1423 void SetObjectField(jobject obj, jfieldID fieldID, jobject val) {
1424 XMOG_SEH_NO_RETVAL_3(SetObjectField,obj,fieldID,val)
1426 void SetBooleanField(jobject obj, jfieldID fieldID,
1428 XMOG_SEH_NO_RETVAL_3(SetBooleanField,obj,fieldID,val)
1430 void SetByteField(jobject obj, jfieldID fieldID,
1432 XMOG_SEH_NO_RETVAL_3(SetByteField,obj,fieldID,val)
1434 void SetCharField(jobject obj, jfieldID fieldID,
1436 XMOG_SEH_NO_RETVAL_3(SetCharField,obj,fieldID,val)
1438 void SetShortField(jobject obj, jfieldID fieldID,
1440 XMOG_SEH_NO_RETVAL_3(SetShortField,obj,fieldID,val)
1442 void SetIntField(jobject obj, jfieldID fieldID,
1444 XMOG_SEH_NO_RETVAL_3(SetIntField,obj,fieldID,val)
1446 void SetLongField(jobject obj, jfieldID fieldID,
1448 XMOG_SEH_NO_RETVAL_3(SetLongField,obj,fieldID,val)
1450 void SetFloatField(jobject obj, jfieldID fieldID,
1452 XMOG_SEH_NO_RETVAL_3(SetFloatField,obj,fieldID,val)
1454 void SetDoubleField(jobject obj, jfieldID fieldID,
1456 XMOG_SEH_NO_RETVAL_3(SetDoubleField,obj,fieldID,val)
1459 jmethodID GetStaticMethodID(jclass clazz,
const char *name,
1461 XMOG_SEH_RETVAL_3(GetStaticMethodID,clazz,name,sig)
1464 jobject CallStaticObjectMethod(jclass clazz, jmethodID methodID,
1468 va_start(args,methodID);
1469 result = functions->CallStaticObjectMethodV(
this,clazz,methodID,args);
1473 jobject CallStaticObjectMethodV(jclass clazz, jmethodID methodID,
1475 XMOG_SEH_RETVAL_3(CallStaticObjectMethodV,clazz,methodID,args)
1477 jobject CallStaticObjectMethodA(jclass clazz, jmethodID methodID,
1479 XMOG_SEH_RETVAL_3(CallStaticObjectMethodA,clazz,methodID,args)
1482 jboolean CallStaticBooleanMethod(jclass clazz,
1483 jmethodID methodID, ...) {
1486 va_start(args,methodID);
1487 result = functions->CallStaticBooleanMethodV(
this,clazz,methodID,args);
1491 jboolean CallStaticBooleanMethodV(jclass clazz,
1492 jmethodID methodID, va_list args) {
1493 XMOG_SEH_RETVAL_3(CallStaticBooleanMethodV,clazz,methodID,args)
1495 jboolean CallStaticBooleanMethodA(jclass clazz,
1496 jmethodID methodID, jvalue *args) {
1497 XMOG_SEH_RETVAL_3(CallStaticBooleanMethodA,clazz,methodID,args)
1500 jbyte CallStaticByteMethod(jclass clazz,
1501 jmethodID methodID, ...) {
1504 va_start(args,methodID);
1505 result = functions->CallStaticByteMethodV(
this,clazz,methodID,args);
1509 jbyte CallStaticByteMethodV(jclass clazz,
1510 jmethodID methodID, va_list args) {
1511 XMOG_SEH_RETVAL_3(CallStaticByteMethodV,clazz,methodID,args)
1513 jbyte CallStaticByteMethodA(jclass clazz,
1514 jmethodID methodID, jvalue *args) {
1515 XMOG_SEH_RETVAL_3(CallStaticByteMethodA,clazz,methodID,args)
1518 jchar CallStaticCharMethod(jclass clazz,
1519 jmethodID methodID, ...) {
1522 va_start(args,methodID);
1523 result = functions->CallStaticCharMethodV(
this,clazz,methodID,args);
1527 jchar CallStaticCharMethodV(jclass clazz,
1528 jmethodID methodID, va_list args) {
1529 XMOG_SEH_RETVAL_3(CallStaticCharMethodV,clazz,methodID,args)
1531 jchar CallStaticCharMethodA(jclass clazz,
1532 jmethodID methodID, jvalue *args) {
1533 XMOG_SEH_RETVAL_3(CallStaticCharMethodA,clazz,methodID,args)
1536 jshort CallStaticShortMethod(jclass clazz,
1537 jmethodID methodID, ...) {
1540 va_start(args,methodID);
1541 result = functions->CallStaticShortMethodV(
this,clazz,methodID,args);
1545 jshort CallStaticShortMethodV(jclass clazz,
1546 jmethodID methodID, va_list args) {
1547 XMOG_SEH_RETVAL_3(CallStaticShortMethodV,clazz,methodID,args)
1549 jshort CallStaticShortMethodA(jclass clazz,
1550 jmethodID methodID, jvalue *args) {
1551 XMOG_SEH_RETVAL_3(CallStaticShortMethodA,clazz,methodID,args)
1554 jint CallStaticIntMethod(jclass clazz,
1555 jmethodID methodID, ...) {
1558 va_start(args,methodID);
1559 result = functions->CallStaticIntMethodV(
this,clazz,methodID,args);
1563 jint CallStaticIntMethodV(jclass clazz,
1564 jmethodID methodID, va_list args) {
1565 XMOG_SEH_RETVAL_3(CallStaticIntMethodV,clazz,methodID,args)
1567 jint CallStaticIntMethodA(jclass clazz,
1568 jmethodID methodID, jvalue *args) {
1569 XMOG_SEH_RETVAL_3(CallStaticIntMethodA,clazz,methodID,args)
1572 jlong CallStaticLongMethod(jclass clazz,
1573 jmethodID methodID, ...) {
1576 va_start(args,methodID);
1577 result = functions->CallStaticLongMethodV(
this,clazz,methodID,args);
1581 jlong CallStaticLongMethodV(jclass clazz,
1582 jmethodID methodID, va_list args) {
1583 XMOG_SEH_RETVAL_3(CallStaticLongMethodV,clazz,methodID,args)
1585 jlong CallStaticLongMethodA(jclass clazz,
1586 jmethodID methodID, jvalue *args) {
1587 XMOG_SEH_RETVAL_3(CallStaticLongMethodA,clazz,methodID,args)
1590 jfloat CallStaticFloatMethod(jclass clazz,
1591 jmethodID methodID, ...) {
1594 va_start(args,methodID);
1595 result = functions->CallStaticFloatMethodV(
this,clazz,methodID,args);
1599 jfloat CallStaticFloatMethodV(jclass clazz,
1600 jmethodID methodID, va_list args) {
1601 XMOG_SEH_RETVAL_3(CallStaticFloatMethodV,clazz,methodID,args)
1603 jfloat CallStaticFloatMethodA(jclass clazz,
1604 jmethodID methodID, jvalue *args) {
1605 XMOG_SEH_RETVAL_3(CallStaticFloatMethodA,clazz,methodID,args)
1608 jdouble CallStaticDoubleMethod(jclass clazz,
1609 jmethodID methodID, ...) {
1612 va_start(args,methodID);
1613 result = functions->CallStaticDoubleMethodV(
this,clazz,methodID,args);
1617 jdouble CallStaticDoubleMethodV(jclass clazz,
1618 jmethodID methodID, va_list args) {
1619 XMOG_SEH_RETVAL_3(CallStaticDoubleMethodV,clazz,methodID,args)
1621 jdouble CallStaticDoubleMethodA(jclass clazz,
1622 jmethodID methodID, jvalue *args) {
1623 XMOG_SEH_RETVAL_3(CallStaticDoubleMethodA,clazz,methodID,args)
1626 void CallStaticVoidMethod(jclass cls, jmethodID methodID, ...) {
1628 va_start(args,methodID);
1629 functions->CallStaticVoidMethodV(
this,cls,methodID,args);
1632 void CallStaticVoidMethodV(jclass cls, jmethodID methodID,
1634 XMOG_SEH_NO_RETVAL_3(CallStaticVoidMethodV,cls,methodID,args)
1636 void CallStaticVoidMethodA(jclass cls, jmethodID methodID,
1638 XMOG_SEH_NO_RETVAL_3(CallStaticVoidMethodA,cls,methodID,args)
1641 jfieldID GetStaticFieldID(jclass clazz,
const char *name,
1643 XMOG_SEH_RETVAL_3(GetStaticFieldID,clazz,name,sig)
1645 jobject GetStaticObjectField(jclass clazz, jfieldID fieldID) {
1646 XMOG_SEH_RETVAL_2(GetStaticObjectField,clazz,fieldID)
1648 jboolean GetStaticBooleanField(jclass clazz, jfieldID fieldID) {
1649 XMOG_SEH_RETVAL_2(GetStaticBooleanField,clazz,fieldID)
1651 jbyte GetStaticByteField(jclass clazz, jfieldID fieldID) {
1652 XMOG_SEH_RETVAL_2(GetStaticByteField,clazz,fieldID)
1654 jchar GetStaticCharField(jclass clazz, jfieldID fieldID) {
1655 XMOG_SEH_RETVAL_2(GetStaticCharField,clazz,fieldID)
1657 jshort GetStaticShortField(jclass clazz, jfieldID fieldID) {
1658 XMOG_SEH_RETVAL_2(GetStaticShortField,clazz,fieldID)
1660 jint GetStaticIntField(jclass clazz, jfieldID fieldID) {
1661 XMOG_SEH_RETVAL_2(GetStaticIntField,clazz,fieldID)
1663 jlong GetStaticLongField(jclass clazz, jfieldID fieldID) {
1664 XMOG_SEH_RETVAL_2(GetStaticLongField,clazz,fieldID)
1666 jfloat GetStaticFloatField(jclass clazz, jfieldID fieldID) {
1667 XMOG_SEH_RETVAL_2(GetStaticFloatField,clazz,fieldID)
1669 jdouble GetStaticDoubleField(jclass clazz, jfieldID fieldID) {
1670 XMOG_SEH_RETVAL_2(GetStaticDoubleField,clazz,fieldID)
1673 void SetStaticObjectField(jclass clazz, jfieldID fieldID,
1675 XMOG_SEH_NO_RETVAL_3(SetStaticObjectField,clazz,fieldID,value)
1677 void SetStaticBooleanField(jclass clazz, jfieldID fieldID,
1679 XMOG_SEH_NO_RETVAL_3(SetStaticBooleanField,clazz,fieldID,value)
1681 void SetStaticByteField(jclass clazz, jfieldID fieldID,
1683 XMOG_SEH_NO_RETVAL_3(SetStaticByteField,clazz,fieldID,value)
1685 void SetStaticCharField(jclass clazz, jfieldID fieldID,
1687 XMOG_SEH_NO_RETVAL_3(SetStaticCharField,clazz,fieldID,value)
1689 void SetStaticShortField(jclass clazz, jfieldID fieldID,
1691 XMOG_SEH_NO_RETVAL_3(SetStaticShortField,clazz,fieldID,value)
1693 void SetStaticIntField(jclass clazz, jfieldID fieldID,
1695 XMOG_SEH_NO_RETVAL_3(SetStaticIntField,clazz,fieldID,value)
1697 void SetStaticLongField(jclass clazz, jfieldID fieldID,
1699 XMOG_SEH_NO_RETVAL_3(SetStaticLongField,clazz,fieldID,value)
1701 void SetStaticFloatField(jclass clazz, jfieldID fieldID,
1703 XMOG_SEH_NO_RETVAL_3(SetStaticFloatField,clazz,fieldID,value)
1705 void SetStaticDoubleField(jclass clazz, jfieldID fieldID,
1707 XMOG_SEH_NO_RETVAL_3(SetStaticDoubleField,clazz,fieldID,value)
1710 jstring NewString(
const jchar *unicode, jsize len) {
1711 XMOG_SEH_RETVAL_2(NewString,unicode,len)
1713 jsize GetStringLength(jstring str) {
1714 XMOG_SEH_RETVAL_1(GetStringLength,str)
1716 const jchar *GetStringChars(jstring str, jboolean *isCopy) {
1717 XMOG_SEH_RETVAL_2(GetStringChars,str,isCopy)
1719 void ReleaseStringChars(jstring str,
const jchar *chars) {
1720 XMOG_SEH_NO_RETVAL_2(ReleaseStringChars,str,chars)
1723 jstring NewStringUTF(
const char *utf) {
1724 XMOG_SEH_RETVAL_1(NewStringUTF,utf)
1726 jsize GetStringUTFLength(jstring str) {
1727 XMOG_SEH_RETVAL_1(GetStringUTFLength,str)
1729 const char* GetStringUTFChars(jstring str, jboolean *isCopy) {
1730 XMOG_SEH_RETVAL_2(GetStringUTFChars,str,isCopy)
1732 void ReleaseStringUTFChars(jstring str,
const char* chars) {
1733 XMOG_SEH_NO_RETVAL_2(ReleaseStringUTFChars,str,chars)
1736 jsize GetArrayLength(jarray array) {
1737 XMOG_SEH_RETVAL_1(GetArrayLength,array)
1740 jobjectArray NewObjectArray(jsize len, jclass clazz,
1742 XMOG_SEH_RETVAL_3(NewObjectArray,len,clazz,init)
1744 jobject GetObjectArrayElement(jobjectArray array, jsize index) {
1745 XMOG_SEH_RETVAL_2(GetObjectArrayElement,array,index)
1747 void SetObjectArrayElement(jobjectArray array, jsize index,
1749 XMOG_SEH_NO_RETVAL_3(SetObjectArrayElement,array,index,val)
1752 jbooleanArray NewBooleanArray(jsize len) {
1753 XMOG_SEH_RETVAL_1(NewBooleanArray,len)
1755 jbyteArray NewByteArray(jsize len) {
1756 XMOG_SEH_RETVAL_1(NewByteArray,len)
1758 jcharArray NewCharArray(jsize len) {
1759 XMOG_SEH_RETVAL_1(NewCharArray,len)
1761 jshortArray NewShortArray(jsize len) {
1762 XMOG_SEH_RETVAL_1(NewShortArray,len)
1764 jintArray NewIntArray(jsize len) {
1765 XMOG_SEH_RETVAL_1(NewIntArray,len)
1767 jlongArray NewLongArray(jsize len) {
1768 XMOG_SEH_RETVAL_1(NewLongArray,len)
1770 jfloatArray NewFloatArray(jsize len) {
1771 XMOG_SEH_RETVAL_1(NewFloatArray,len)
1773 jdoubleArray NewDoubleArray(jsize len) {
1774 XMOG_SEH_RETVAL_1(NewDoubleArray,len)
1777 jboolean * GetBooleanArrayElements(jbooleanArray array, jboolean *isCopy) {
1778 XMOG_SEH_RETVAL_2(GetBooleanArrayElements,array,isCopy)
1780 jbyte * GetByteArrayElements(jbyteArray array, jboolean *isCopy) {
1781 XMOG_SEH_RETVAL_2(GetByteArrayElements,array,isCopy)
1783 jchar * GetCharArrayElements(jcharArray array, jboolean *isCopy) {
1784 XMOG_SEH_RETVAL_2(GetCharArrayElements,array,isCopy)
1786 jshort * GetShortArrayElements(jshortArray array, jboolean *isCopy) {
1787 XMOG_SEH_RETVAL_2(GetShortArrayElements,array,isCopy)
1789 jint * GetIntArrayElements(jintArray array, jboolean *isCopy) {
1790 XMOG_SEH_RETVAL_2(GetIntArrayElements,array,isCopy)
1792 jlong * GetLongArrayElements(jlongArray array, jboolean *isCopy) {
1793 XMOG_SEH_RETVAL_2(GetLongArrayElements,array,isCopy)
1795 jfloat * GetFloatArrayElements(jfloatArray array, jboolean *isCopy) {
1796 XMOG_SEH_RETVAL_2(GetFloatArrayElements,array,isCopy)
1798 jdouble * GetDoubleArrayElements(jdoubleArray array, jboolean *isCopy) {
1799 XMOG_SEH_RETVAL_2(GetDoubleArrayElements,array,isCopy)
1802 void ReleaseBooleanArrayElements(jbooleanArray array,
1805 XMOG_SEH_NO_RETVAL_3(ReleaseBooleanArrayElements,array,elems,mode)
1807 void ReleaseByteArrayElements(jbyteArray array,
1810 XMOG_SEH_NO_RETVAL_3(ReleaseByteArrayElements,array,elems,mode)
1812 void ReleaseCharArrayElements(jcharArray array,
1815 XMOG_SEH_NO_RETVAL_3(ReleaseCharArrayElements,array,elems,mode)
1817 void ReleaseShortArrayElements(jshortArray array,
1820 XMOG_SEH_NO_RETVAL_3(ReleaseShortArrayElements,array,elems,mode)
1822 void ReleaseIntArrayElements(jintArray array,
1825 XMOG_SEH_NO_RETVAL_3(ReleaseIntArrayElements,array,elems,mode)
1827 void ReleaseLongArrayElements(jlongArray array,
1830 XMOG_SEH_NO_RETVAL_3(ReleaseLongArrayElements,array,elems,mode)
1832 void ReleaseFloatArrayElements(jfloatArray array,
1835 XMOG_SEH_NO_RETVAL_3(ReleaseFloatArrayElements,array,elems,mode)
1837 void ReleaseDoubleArrayElements(jdoubleArray array,
1840 XMOG_SEH_NO_RETVAL_3(ReleaseDoubleArrayElements,array,elems,mode)
1843 void GetBooleanArrayRegion(jbooleanArray array,
1844 jsize start, jsize len, jboolean *buf) {
1845 XMOG_SEH_NO_RETVAL_4(GetBooleanArrayRegion,array,start,len,buf)
1847 void GetByteArrayRegion(jbyteArray array,
1848 jsize start, jsize len, jbyte *buf) {
1849 XMOG_SEH_NO_RETVAL_4(GetByteArrayRegion,array,start,len,buf)
1851 void GetCharArrayRegion(jcharArray array,
1852 jsize start, jsize len, jchar *buf) {
1853 XMOG_SEH_NO_RETVAL_4(GetCharArrayRegion,array,start,len,buf)
1855 void GetShortArrayRegion(jshortArray array,
1856 jsize start, jsize len, jshort *buf) {
1857 XMOG_SEH_NO_RETVAL_4(GetShortArrayRegion,array,start,len,buf)
1859 void GetIntArrayRegion(jintArray array,
1860 jsize start, jsize len, jint *buf) {
1861 XMOG_SEH_NO_RETVAL_4(GetIntArrayRegion,array,start,len,buf)
1863 void GetLongArrayRegion(jlongArray array,
1864 jsize start, jsize len, jlong *buf) {
1865 XMOG_SEH_NO_RETVAL_4(GetLongArrayRegion,array,start,len,buf)
1867 void GetFloatArrayRegion(jfloatArray array,
1868 jsize start, jsize len, jfloat *buf) {
1869 XMOG_SEH_NO_RETVAL_4(GetFloatArrayRegion,array,start,len,buf)
1871 void GetDoubleArrayRegion(jdoubleArray array,
1872 jsize start, jsize len, jdouble *buf) {
1873 XMOG_SEH_NO_RETVAL_4(GetDoubleArrayRegion,array,start,len,buf)
1876 void SetBooleanArrayRegion(jbooleanArray array, jsize start, jsize len,
1878 XMOG_SEH_NO_RETVAL_4(SetBooleanArrayRegion,array,start,len,buf)
1880 void SetByteArrayRegion(jbyteArray array, jsize start, jsize len,
1882 XMOG_SEH_NO_RETVAL_4(SetByteArrayRegion,array,start,len,buf)
1884 void SetCharArrayRegion(jcharArray array, jsize start, jsize len,
1886 XMOG_SEH_NO_RETVAL_4(SetCharArrayRegion,array,start,len,buf)
1888 void SetShortArrayRegion(jshortArray array, jsize start, jsize len,
1890 XMOG_SEH_NO_RETVAL_4(SetShortArrayRegion,array,start,len,buf)
1892 void SetIntArrayRegion(jintArray array, jsize start, jsize len,
1894 XMOG_SEH_NO_RETVAL_4(SetIntArrayRegion,array,start,len,buf)
1896 void SetLongArrayRegion(jlongArray array, jsize start, jsize len,
1898 XMOG_SEH_NO_RETVAL_4(SetLongArrayRegion,array,start,len,buf)
1900 void SetFloatArrayRegion(jfloatArray array, jsize start, jsize len,
1902 XMOG_SEH_NO_RETVAL_4(SetFloatArrayRegion,array,start,len,buf)
1904 void SetDoubleArrayRegion(jdoubleArray array, jsize start, jsize len,
1906 XMOG_SEH_NO_RETVAL_4(SetDoubleArrayRegion,array,start,len,buf)
1909 jint RegisterNatives(jclass clazz,
const JNINativeMethod *methods,
1911 XMOG_SEH_RETVAL_3(RegisterNatives,clazz,methods,nMethods)
1913 jint UnregisterNatives(jclass clazz) {
1914 XMOG_SEH_RETVAL_1(UnregisterNatives,clazz)
1917 jint MonitorEnter(jobject obj) {
1918 XMOG_SEH_RETVAL_1(MonitorEnter,obj)
1920 jint MonitorExit(jobject obj) {
1921 XMOG_SEH_RETVAL_1(MonitorExit,obj)
1924 jint GetJavaVM(JavaVM **vm) {
1925 return functions->GetJavaVM(
this,vm);
1928 void GetStringRegion(jstring str, jsize start, jsize len, jchar *buf) {
1929 XMOG_SEH_NO_RETVAL_4(GetStringRegion,str,start,len,buf)
1931 void GetStringUTFRegion(jstring str, jsize start, jsize len,
char *buf) {
1932 XMOG_SEH_NO_RETVAL_4(GetStringUTFRegion,str,start,len,buf)
1935 void * GetPrimitiveArrayCritical(jarray array, jboolean *isCopy) {
1936 XMOG_SEH_RETVAL_2(GetPrimitiveArrayCritical,array,isCopy)
1938 void ReleasePrimitiveArrayCritical(jarray array,
void *carray, jint mode) {
1939 XMOG_SEH_NO_RETVAL_3(ReleasePrimitiveArrayCritical,array,carray,mode)
1942 const jchar * GetStringCritical(jstring
string, jboolean *isCopy) {
1943 XMOG_SEH_RETVAL_2(GetStringCritical,
string,isCopy)
1945 void ReleaseStringCritical(jstring
string,
const jchar *cstring) {
1946 XMOG_SEH_NO_RETVAL_2(ReleaseStringCritical,
string,cstring)
1949 jweak NewWeakGlobalRef(jobject obj) {
1950 XMOG_SEH_RETVAL_1(NewWeakGlobalRef,obj)
1952 void DeleteWeakGlobalRef(jweak ref) {
1953 XMOG_SEH_NO_RETVAL_1(DeleteWeakGlobalRef,ref)
1956 jboolean ExceptionCheck() {
1957 XMOG_SEH_RETVAL_0(ExceptionCheck)
1960 jobject NewDirectByteBuffer(
void* address, jlong capacity) {
1961 XMOG_SEH_RETVAL_2(NewDirectByteBuffer,address,capacity)
1963 void* GetDirectBufferAddress(jobject buf) {
1964 XMOG_SEH_RETVAL_1(GetDirectBufferAddress,buf)
1966 jlong GetDirectBufferCapacity(jobject buf) {
1967 XMOG_SEH_RETVAL_1(GetDirectBufferCapacity,buf)
1973 typedef struct JavaVMOption {
1978 typedef struct JavaVMInitArgs {
1982 JavaVMOption *options;
1983 jboolean ignoreUnrecognized;
1986 typedef struct JavaVMAttachArgs {
1995 typedef struct JDK1_1InitArgs {
2000 jint nativeStackSize;
2007 jint (JNICALL *vfprintf)(FILE *fp,
const char *format, va_list args);
2008 void (JNICALL *exit)(jint code);
2009 void (JNICALL *abort)(void);
2012 jint enableVerboseGC;
2013 jint disableAsyncGC;
2019 typedef struct JDK1_1AttachArgs {
2028 struct JNIInvokeInterface_ {
2033 jint (JNICALL *DestroyJavaVM)(JavaVM *vm);
2035 jint (JNICALL *AttachCurrentThread)(JavaVM *vm,
void **penv,
void *args);
2037 jint (JNICALL *DetachCurrentThread)(JavaVM *vm);
2039 jint (JNICALL *GetEnv)(JavaVM *vm,
void **penv, jint version);
2041 jint (JNICALL *AttachCurrentThreadAsDaemon)(JavaVM *vm,
void **penv,
void *args);
2045 const struct JNIInvokeInterface_ *functions;
2048 jint DestroyJavaVM() {
2049 return functions->DestroyJavaVM(
this);
2051 jint AttachCurrentThread(
void **penv,
void *args) {
2052 return functions->AttachCurrentThread(
this, penv, args);
2054 jint DetachCurrentThread() {
2055 return functions->DetachCurrentThread(
this);
2058 jint GetEnv(
void **penv, jint version) {
2059 return functions->GetEnv(
this, penv, version);
2061 jint AttachCurrentThreadAsDaemon(
void **penv,
void *args) {
2062 return functions->AttachCurrentThreadAsDaemon(
this, penv, args);
2067 #ifdef _JNI_IMPLEMENTATION_
2068 #define _JNI_IMPORT_OR_EXPORT_ JNIEXPORT
2070 #define _JNI_IMPORT_OR_EXPORT_ JNIIMPORT
2072 _JNI_IMPORT_OR_EXPORT_ jint JNICALL
2073 JNI_GetDefaultJavaVMInitArgs(
void *args);
2075 _JNI_IMPORT_OR_EXPORT_ jint JNICALL
2076 JNI_CreateJavaVM(JavaVM **pvm,
void **penv,
void *args);
2078 _JNI_IMPORT_OR_EXPORT_ jint JNICALL
2079 JNI_GetCreatedJavaVMs(JavaVM **, jsize, jsize *);
2082 JNIEXPORT jint JNICALL
2083 JNI_OnLoad(JavaVM *vm,
void *reserved);
2085 JNIEXPORT
void JNICALL
2086 JNI_OnUnload(JavaVM *vm,
void *reserved);
2088 #define JNI_VERSION_1_1 0x00010001
2089 #define JNI_VERSION_1_2 0x00010002
2090 #define JNI_VERSION_1_4 0x00010004
2091 #define JNI_VERSION_1_5 0x00010005
2092 #define JNI_VERSION_1_6 0x00010006
2093 #define JNI_VERSION_1_7 0x00010007
2094 #define JNI_VERSION_1_8 0x00010008
2095 #define JNI_VERSION_9 0x00090000
2096 #define JNI_VERSION_10 0x000a0000
2097 #define JNI_VERSION_11 0x000b0000
2098 #define JNI_VERSION_12 0x000c0000
2099 #define JNI_VERSION_13 0x000d0000
2100 #define JNI_VERSION_14 0x000e0000
2101 #define JNI_VERSION_15 0x000f0000
2115 #ifndef XMOG_UNDEFINE_MEM_OPERATORS
2116 # define XMOG_UNDEFINE_MEM_OPERATORS 1
2125 #if !defined(XMOG_BROKEN_SUPER_THIS)
2126 # define XMOG_BROKEN_SUPER_THIS 0
2128 #if (XMOG_BROKEN_SUPER_THIS==1)
2129 # if ((__GNUC__==3) && (__GNUC_MINOR__<4)) || ((__GNUC__==4) && (__GNUC_MINOR__)>=1)
2131 # define XMOG_SUPER_THIS(x) x( *this ) .
2134 # define XMOG_SUPER_THIS(x) x ::
2137 # define XMOG_SUPER_THIS(x) this-> x ::
2141 typedef char XMOGVERSION[ 16 ];
2142 typedef char XMOGCONFIG[ 128 ];
2143 typedef char XMOGPROPERTY[ 256 ];
2145 #if (XMOG_BUILD_XMOG==1)
2147 extern const char * NULL_STRING;
2148 extern const char * TRUE_STRING;
2149 extern const char * FALSE_STRING;
2151 # if !defined(XMOG_MAJOR)
2152 # define XMOG_MAJOR 3
2155 # if !defined(XMOG_MINOR)
2156 # define XMOG_MINOR 0
2159 # if !defined(XMOG_PATCH)
2160 # define XMOG_PATCH 0
2163 # if !defined(XMOG_BUILD)
2164 # define XMOG_BUILD 0
2169 extern "C" XMOG_DECLSPEC
int getXmogrtMajor();
2170 extern "C" XMOG_DECLSPEC
int getXmogrtMinor();
2171 extern "C" XMOG_DECLSPEC
int getXmogrtPatch();
2172 extern "C" XMOG_DECLSPEC
int getXmogrtBuild();
2177 typedef unsigned xmog_flags;
2196 #define XMOG_BEFORE_INITIALIZATION 0
2197 #define XMOG_AFTER_INITIALIZATION 1
2198 #define XMOG_BEFORE_LOADING 2
2199 #define XMOG_AFTER_LOADING 3
2200 #define XMOG_BEFORE XMOG_BEFORE_INITIALIZATION
2201 #define XMOG_AFTER XMOG_AFTER_INITIALIZATION
2207 #define XMOG_NOT_YET_IMPLEMENTED -1000
2208 #define XMOG_CLASSNAME_IS_NULL -1001
2209 #define XMOG_REF_IS_NULL -1002
2210 #define XMOG_CLASS_NOT_FOUND -1003
2211 #define XMOG_FIELD_NOT_FOUND -1004
2212 #define XMOG_SET_FIELD_FAILED -1005
2213 #define XMOG_GET_FIELD_FAILED -1006
2214 #define XMOG_UNKNOWN_OWNER -1007
2215 #define XMOG_METHOD_NOT_FOUND -1008
2216 #define XMOG_NEW_STRING -1009
2217 #define XMOG_NEW_STRING_UTF -1010
2218 #define XMOG_METHOD_CALL_FAILED -1011
2219 #define XMOG_CREATE_JAVA_PEER -1012
2220 #define XMOG_TO_JAVA_PEER -1013
2221 #define XMOG_ARRAY_GET_ELEMENT -1014
2222 #define XMOG_ARRAY_SET_ELEMENT -1015
2223 #define XMOG_ARRAY_CREATE -1016
2224 #define XMOG_BUFFER_OVERRUN -1017
2225 #define XMOG_NULL_ENV -1018
2226 #define XMOG_NO_PEER_TYPE -1019
2227 #define XMOG_ARRAY_GET_ELEMENTS -1020
2228 #define XMOG_ARRAY_SET_ELEMENTS -1021
2229 #define XMOG_XML_PARSER -1022
2230 #define XMOG_CONFIGFILE_NOT_FOUND -1023
2231 #define XMOG_LEGACY_PARSER -1024
2232 #define XMOG_CANT_LOAD_JVM -1025
2233 #define XMOG_MONITOR_ENTER -1026
2234 #define XMOG_MONITOR_EXIT -1027
2235 #define XMOG_TLS_FAILURE -1028