6#ifndef _JNIUtil_MethodWrapper_h_
7#define _JNIUtil_MethodWrapper_h_
16 #ifndef _JNIUtilWrapPrint
18 #include <android/log.h>
19 #define _JNIUtilWrapPrint(fmt, ...) \
20 ((void)__android_log_print(ANDROID_LOG_ERROR, "JNILog", fmt, ##__VA_ARGS__))
23 inline const char *_JNIUtilMacro_fileToName(
const char *callerFile) {
24 for(
const char *p = callerFile; *p; ++p) {
25 if(*p ==
'/' || *p ==
'\\') {
33 T
const &_JNIUtilWrap_Created(T
const &obj,
const char *callerFile,
const char *callerFunction,
int callerLine,
const char *actionName) {
34 _JNIUtilWrapPrint(
"JNI Created : %p [%s %s %d] %s", obj, _JNIUtilMacro_fileToName(callerFile), callerFunction, callerLine, actionName);
38 T
const &_JNIUtilWrap_Released(T
const &obj,
const char *callerFile,
const char *callerFunction,
int callerLine,
const char *actionName) {
39 _JNIUtilWrapPrint(
"JNI Released : %p [%s %s %d] %s", obj, _JNIUtilMacro_fileToName(callerFile), callerFunction, callerLine, actionName);
42 inline void _JNIUtilWrap_FuncCalled(
const char *callerFile,
const char *callerFunction,
int callerLine,
const char *actionName) {
43 _JNIUtilWrapPrint(
"JNI FuncCalled: [%s %s %d] %s", _JNIUtilMacro_fileToName(callerFile), callerFunction, callerLine, actionName);
45 inline void _JNIUtilWrap_CallbackCalled(
const char *callerFile,
const char *callerFunction,
int callerLine,
const char *actionName) {
46 _JNIUtilWrapPrint(
"JNI Callback : [%s %s %d] %s", _JNIUtilMacro_fileToName(callerFile), callerFunction, callerLine, actionName);
49 #define JNIUtilWrap_Created(obj, callerFile, callerFunction, callerLine, actionName) \
50 _JNIUtilWrap_Created(obj, callerFile, callerFunction, callerLine, actionName)
51 #define JNIUtilWrap_Released(obj, callerFile, callerFunction, callerLine, actionName) \
52 _JNIUtilWrap_Released(obj, callerFile, callerFunction, callerLine, actionName)
53 #define JNIUtilWrap_FuncCalled(callerFile, callerFunction, callerLine, actionName) \
54 _JNIUtilWrap_FuncCalled(callerFile, callerFunction, callerLine, actionName)
55 #define JNIUtilWrap_CallbackCalled(callerFile, callerFunction, callerLine, actionName) \
56 _JNIUtilWrap_CallbackCalled(callerFile, callerFunction, callerLine, actionName)
63#ifndef JNIUtilWrap_Created
64 #define JNIUtilWrap_Created(obj, callerFile, callerFunction, callerLine, actionName) obj
66#ifndef JNIUtilWrap_Released
67 #define JNIUtilWrap_Released(obj, callerFile, callerFunction, callerLine, actionName) obj
69#ifndef JNIUtilWrap_FuncCalled
70 #define JNIUtilWrap_FuncCalled(callerFile, callerFunction, callerLine, actionName) NULL
72#ifndef JNIUtilWrap_CallbackCalled
73 #define JNIUtilWrap_CallbackCalled(callerFile, callerFunction, callerLine, actionName)
78#undef JNI_METHOD_DECLARE_BEGIN
79#define JNI_METHOD_DECLARE_BEGIN(OwnerClassId, ReturnType, MethodName, ...) \
80 _JNI_METHOD_DECLARE_BEGIN(OwnerClassId, ReturnType, MethodName, ##__VA_ARGS__) { \
81 JNIUtilWrap_CallbackCalled(__FILE__, __FUNCTION__, __LINE__, _JNIUtilMacro_toString(OwnerClassId) "::" _JNIUtilMacro_toString(MethodName));
82#undef JNI_METHOD_DECLARE_END
83#define JNI_METHOD_DECLARE_END() \
87 #undef JNIConvertPointerToJNIType
88 #define JNIConvertPointerToJNIType(jniEnv, p) JNIUtilWrap_Created(_JNIConvertPointerToJNIType(jniEnv, p), __FILE__, __FUNCTION__, __LINE__, "JNIConvertPointerToJNIType")
92namespace JNIUtilMethodWrapperPrivate {
95 LocalRefDel(jobject obj,
96 const char *callerFile,
97 const char *callerFunction,
100 , callerFile(callerFile)
101 , callerFunction(callerFunction)
102 , callerLine(callerLine)
107 JNIUtilWrap_Released(this->objSaved, this->callerFile, this->callerFunction, this->callerLine,
"DeleteLocalRef");
108 JNIGetJNIEnv()->DeleteLocalRef(this->objSaved);
113 const char *callerFile;
114 const char *callerFunction;
119 GlobalRefDel(jobject obj,
120 const char *callerFile,
121 const char *callerFunction,
124 , callerFile(callerFile)
125 , callerFunction(callerFunction)
126 , callerLine(callerLine)
129 ~GlobalRefDel(
void) {
131 JNIUtilWrap_Released(this->objSaved, this->callerFile, this->callerFunction, this->callerLine,
"DeleteGlobalRef");
132 JNIGetJNIEnv()->DeleteGlobalRef(this->objSaved);
137 const char *callerFile;
138 const char *callerFunction;
144#undef JNILineDeleteLocalRef
145#define JNILineDeleteLocalRef(obj_) \
146 (JNIUtilMethodWrapperPrivate::LocalRefDel(obj_, __FILE__, __FUNCTION__, __LINE__).objSaved)
147#undef JNILineDeleteGlobalRef
148#define JNILineDeleteGlobalRef(obj_) \
149 (JNIUtilMethodWrapperPrivate::GlobalRefDel(obj_, __FILE__, __FUNCTION__, __LINE__).objSaved)
151#undef JNIBlockedDeleteLocalRef
152#define JNIBlockedDeleteLocalRef(obj_) \
153 JNIUtilMethodWrapperPrivate::LocalRefDel _JNIUtil_uniqueName(jniRef)(obj_, __FILE__, __FUNCTION__, __LINE__)
154#undef JNIBlockedDeleteGlobalRef
155#define JNIBlockedDeleteGlobalRef(obj_) \
156 JNIUtilMethodWrapperPrivate::GlobalRefDel _JNIUtil_uniqueName(jniRef)(obj_, __FILE__, __FUNCTION__, __LINE__)
160#define _JNIUtilMacro_toString(e) #e
161#define _JNIUtilWrapMacro_Created(func, jniEnv, ...) \
162 JNIUtilWrap_Created( \
163 (JNIUtilWrap_FuncCalled(__FILE__, __FUNCTION__, __LINE__, _JNIUtilMacro_toString(func)), \
164 (jniEnv)->func(__VA_ARGS__)), \
165 __FILE__, __FUNCTION__, __LINE__, _JNIUtilMacro_toString(func))
166#define _JNIUtilWrapMacro_Released_0(func, jniEnv, obj, ...) \
167 (JNIUtilWrap_FuncCalled(__FILE__, __FUNCTION__, __LINE__, _JNIUtilMacro_toString(func)), \
169 JNIUtilWrap_Released(obj, __FILE__, __FUNCTION__, __LINE__, _JNIUtilMacro_toString(func)), \
171#define _JNIUtilWrapMacro_Released_1(func, jniEnv, param0, obj, ...) \
172 (JNIUtilWrap_FuncCalled(__FILE__, __FUNCTION__, __LINE__, _JNIUtilMacro_toString(func)), \
175 JNIUtilWrap_Released(obj, __FILE__, __FUNCTION__, __LINE__, _JNIUtilMacro_toString(func)), \
177#define _JNIUtilWrapMacro_Released_2(func, jniEnv, param0, param1, obj, ...) \
178 (JNIUtilWrap_FuncCalled(__FILE__, __FUNCTION__, __LINE__, _JNIUtilMacro_toString(func)), \
181 JNIUtilWrap_Released(obj, __FILE__, __FUNCTION__, __LINE__, _JNIUtilMacro_toString(func)), \
183#define _JNIUtilWrapMacro_FuncCalled(func, jniEnv, ...) \
184 (JNIUtilWrap_FuncCalled(__FILE__, __FUNCTION__, __LINE__, _JNIUtilMacro_toString(func)), \
185 (jniEnv)->func(__VA_ARGS__))
189#ifndef JNIUtilGetVersion
190#define JNIUtilGetVersion(jniEnv) \
191 _JNIUtilWrapMacro_FuncCalled(GetVersion, jniEnv)
194#ifndef JNIUtilDefineClass
195#define JNIUtilDefineClass(jniEnv, name, loader, buf, bufLen) \
196 _JNIUtilWrapMacro_Created(DefineClass, jniEnv, name, loader, buf, bufLen)
199#ifndef JNIUtilFindClass
200#define JNIUtilFindClass(jniEnv, name) \
201 _JNIUtilWrapMacro_Created(FindClass, jniEnv, name)
204#ifndef JNIUtilFromReflectedMethod
205#define JNIUtilFromReflectedMethod(jniEnv, method) \
206 _JNIUtilWrapMacro_FuncCalled(FromReflectedMethod, jniEnv, method)
209#ifndef JNIUtilFromReflectedField
210#define JNIUtilFromReflectedField(jniEnv, field) \
211 _JNIUtilWrapMacro_FuncCalled(FromReflectedMethod, jniEnv, field)
214#ifndef JNIUtilToReflectedMethod
215#define JNIUtilToReflectedMethod(jniEnv, cls, methodID, isStatic) \
216 _JNIUtilWrapMacro_Created(ToReflectMethod, jniEnv, cls, methodID, isStatic)
219#ifndef JNIUtilGetSuperclass
220#define JNIUtilGetSuperclass(jniEnv, clazz) \
221 _JNIUtilWrapMacro_Created(GetSuperclass, jniEnv, clazz)
224#ifndef JNIUtilIsAssignableFrom
225#define JNIUtilIsAssignableFrom(jniEnv, clazz1, clazz2) \
226 _JNIUtilWrapMacro_FuncCalled(IsAssignableFrom, jniEnv, clazz1, clazz2)
229#ifndef JNIUtilToReflectedField
230#define JNIUtilToReflectedField(jniEnv, cls, fieldID, isStatic) \
231 _JNIUtilWrapMacro_Created(ToReflectedField, jniEnv, cls, fieldID, isStatic)
235#define JNIUtilThrow(jniEnv, obj) \
236 _JNIUtilWrapMacro_FuncCalled(Throw, jniEnv, obj)
239#ifndef JNIUtilThrowNew
240#define JNIUtilThrowNew(jniEnv, clazz, message) \
241 _JNIUtilWrapMacro_FuncCalled(ThrowNew, jniEnv, clazz, message)
244#ifndef JNIUtilExceptionOccurred
245#define JNIUtilExceptionOccurred(jniEnv) \
246 _JNIUtilWrapMacro_FuncCalled(ExceptionOccurred, jniEnv)
249#ifndef JNIUtilExceptionDescribe
250#define JNIUtilExceptionDescribe(jniEnv) \
251 _JNIUtilWrapMacro_FuncCalled(ExceptionDescribe, jniEnv)
254#ifndef JNIUtilExceptionClear
255#define JNIUtilExceptionClear(jniEnv) \
256 _JNIUtilWrapMacro_FuncCalled(ExceptionClear, jniEnv)
259#ifndef JNIUtilFatalError
260#define JNIUtilFatalError(jniEnv, msg) \
261 _JNIUtilWrapMacro_FuncCalled(FatalError, jniEnv, msg)
264#ifndef JNIUtilPushLocalFrame
265#define JNIUtilPushLocalFrame(jniEnv, capacity) \
266 _JNIUtilWrapMacro_FuncCalled(PushLocalFrame, jniEnv, capacity)
269#ifndef JNIUtilPopLocalFrame
270#define JNIUtilPopLocalFrame(jniEnv, result) \
271 _JNIUtilWrapMacro_Created(PopLocalFrame, jniEnv, result)
274#ifndef JNIUtilNewGlobalRef
275#define JNIUtilNewGlobalRef(jniEnv, obj) \
276 _JNIUtilWrapMacro_Created(NewGlobalRef, jniEnv, obj)
279#ifndef JNIUtilDeleteGlobalRef
280#define JNIUtilDeleteGlobalRef(jniEnv, globalRef) \
281 _JNIUtilWrapMacro_Released_0(DeleteGlobalRef, jniEnv, globalRef)
284#ifndef JNIUtilDeleteLocalRef
285#define JNIUtilDeleteLocalRef(jniEnv, localRef) \
286 _JNIUtilWrapMacro_Released_0(DeleteLocalRef, jniEnv, localRef)
289#ifndef JNIUtilIsSameObject
290#define JNIUtilIsSameObject(jniEnv, ref1, ref2) \
291 _JNIUtilWrapMacro_FuncCalled(IsSameObject, jniEnv, ref1, ref2)
294#ifndef JNIUtilNewLocalRef
295#define JNIUtilNewLocalRef(jniEnv, ref) \
296 _JNIUtilWrapMacro_Created(NewLocalRef, jniEnv, ref)
299#ifndef JNIUtilEnsureLocalCapacity
300#define JNIUtilEnsureLocalCapacity(jniEnv, capacity) \
301 _JNIUtilWrapMacro_FuncCalled(EnsureLocalCapacity, jniEnv, capacity)
304#ifndef JNIUtilAllocObject
305#define JNIUtilAllocObject(jniEnv, clazz) \
306 _JNIUtilWrapMacro_Created(AllocObject, jniEnv, clazz)
309#ifndef JNIUtilNewObject
310#define JNIUtilNewObject(jniEnv, clazz, methodID, ...) \
311 _JNIUtilWrapMacro_Created(NewObject, jniEnv, clazz, methodID, ##__VA_ARGS__)
314#ifndef JNIUtilNewObjectV
315#define JNIUtilNewObjectV(jniEnv, clazz, methodID, args) \
316 _JNIUtilWrapMacro_Created(NewObjectV, jniEnv, clazz, methodID, args)
319#ifndef JNIUtilNewObjectA
320#define JNIUtilNewObjectA(jniEnv, clazz, methodID, args) \
321 _JNIUtilWrapMacro_Created(NewObjectA, jniEnv, clazz, methodID, args)
324#ifndef JNIUtilGetObjectClass
325#define JNIUtilGetObjectClass(jniEnv, obj) \
326 _JNIUtilWrapMacro_Created(GetObjectClass, jniEnv, obj)
329#ifndef JNIUtilIsInstanceOf
330#define JNIUtilIsInstanceOf(jniEnv, obj, clazz) \
331 _JNIUtilWrapMacro_FuncCalled(IsInstanceOf, jniEnv, obj, clazz)
334#ifndef JNIUtilGetMethodID
335#define JNIUtilGetMethodID(jniEnv, clazz, name, sig) \
336 _JNIUtilWrapMacro_FuncCalled(GetMethodID, jniEnv, clazz, name, sig)
339#ifndef JNIUtilCallObjectMethod
340#define JNIUtilCallObjectMethod(jniEnv, obj, methodID, ...) \
341 _JNIUtilWrapMacro_Created(CallObjectMethod, jniEnv, obj, methodID, ##__VA_ARGS__)
344#ifndef JNIUtilCallObjectMethodV
345#define JNIUtilCallObjectMethodV(jniEnv, obj, methodID, args) \
346 _JNIUtilWrapMacro_Created(CallObjectMethodV, jniEnv, obj, methodID, args)
349#ifndef JNIUtilCallObjectMethodA
350#define JNIUtilCallObjectMethodA(jniEnv, obj, methodID, args) \
351 _JNIUtilWrapMacro_Created(CallObjectMethodA, jniEnv, obj, methodID, args)
354#ifndef JNIUtilCallBooleanMethod
355#define JNIUtilCallBooleanMethod(jniEnv, obj, methodID, ...) \
356 _JNIUtilWrapMacro_FuncCalled(CallBooleanMethod, jniEnv, obj, methodID, ##__VA_ARGS__)
359#ifndef JNIUtilCallBooleanMethodV
360#define JNIUtilCallBooleanMethodV(jniEnv, obj, methodID, args) \
361 _JNIUtilWrapMacro_FuncCalled(CallBooleanMethodV, jniEnv, obj, methodID, args)
364#ifndef JNIUtilCallBooleanMethodA
365#define JNIUtilCallBooleanMethodA(jniEnv, obj, methodID, args) \
366 _JNIUtilWrapMacro_FuncCalled(CallBooleanMethodA, jniEnv, obj, methodID, args)
369#ifndef JNIUtilCallByteMethod
370#define JNIUtilCallByteMethod(jniEnv, obj, methodID, ...) \
371 _JNIUtilWrapMacro_FuncCalled(CallByteMethod, jniEnv, obj, methodID, ##__VA_ARGS__)
374#ifndef JNIUtilCallByteMethodV
375#define JNIUtilCallByteMethodV(jniEnv, obj, methodID, args) \
376 _JNIUtilWrapMacro_FuncCalled(CallByteMethodV, jniEnv, obj, methodID, args)
379#ifndef JNIUtilCallByteMethodA
380#define JNIUtilCallByteMethodA(jniEnv, obj, methodID, args) \
381 _JNIUtilWrapMacro_FuncCalled(CallByteMethodA, jniEnv, obj, methodID, args)
384#ifndef JNIUtilCallCharMethod
385#define JNIUtilCallCharMethod(jniEnv, obj, methodID, ...) \
386 _JNIUtilWrapMacro_FuncCalled(CallCharMethod, jniEnv, obj, methodID, ##__VA_ARGS__)
389#ifndef JNIUtilCallCharMethodV
390#define JNIUtilCallCharMethodV(jniEnv, obj, methodID, args) \
391 _JNIUtilWrapMacro_FuncCalled(CallCharMethodV, jniEnv, obj, methodID, args)
394#ifndef JNIUtilCallCharMethodA
395#define JNIUtilCallCharMethodA(jniEnv, obj, methodID, args) \
396 _JNIUtilWrapMacro_FuncCalled(CallCharMethodA, jniEnv, obj, methodID, args)
399#ifndef JNIUtilCallShortMethod
400#define JNIUtilCallShortMethod(jniEnv, obj, methodID, ...) \
401 _JNIUtilWrapMacro_FuncCalled(CallShortMethod, jniEnv, obj, methodID, ##__VA_ARGS__)
404#ifndef JNIUtilCallShortMethodV
405#define JNIUtilCallShortMethodV(jniEnv, obj, methodID, args) \
406 _JNIUtilWrapMacro_FuncCalled(CallShortMethodV, jniEnv, obj, methodID, args)
409#ifndef JNIUtilCallShortMethodA
410#define JNIUtilCallShortMethodA(jniEnv, obj, methodID, args) \
411 _JNIUtilWrapMacro_FuncCalled(CallShortMethodA, jniEnv, obj, methodID, args)
414#ifndef JNIUtilCallIntMethod
415#define JNIUtilCallIntMethod(jniEnv, obj, methodID, ...) \
416 _JNIUtilWrapMacro_FuncCalled(CallIntMethod, jniEnv, obj, methodID, ##__VA_ARGS__)
419#ifndef JNIUtilCallIntMethodV
420#define JNIUtilCallIntMethodV(jniEnv, obj, methodID, args) \
421 _JNIUtilWrapMacro_FuncCalled(CallIntMethodV, jniEnv, obj, methodId, args)
424#ifndef JNIUtilCallIntMethodA
425#define JNIUtilCallIntMethodA(jniEnv, obj, methodID, args) \
426 _JNIUtilWrapMacro_FuncCalled(CallIntMethodA, jniEnv, obj, methodID, args)
429#ifndef JNIUtilCallLongMethod
430#define JNIUtilCallLongMethod(jniEnv, obj, methodID, ...) \
431 _JNIUtilWrapMacro_FuncCalled(CallLongMethod, jniEnv, obj, methodID, ##__VA_ARGS__)
434#ifndef JNIUtilCallLongMethodV
435#define JNIUtilCallLongMethodV(jniEnv, obj, methodID, args) \
436 _JNIUtilWrapMacro_FuncCalled(CallLongMethodV, jniEnv, obj, methodID, args)
439#ifndef JNIUtilCallLongMethodA
440#define JNIUtilCallLongMethodA(jniEnv, obj, methodID, args) \
441 _JNIUtilWrapMacro_FuncCalled(CallLongMethodA, jniEnv, obj, methodID, args)
444#ifndef JNIUtilCallFloatMethod
445#define JNIUtilCallFloatMethod(jniEnv, obj, methodID, ...) \
446 _JNIUtilWrapMacro_FuncCalled(CallFloatMethod, jniEnv, obj, methodID, ##__VA_ARGS__)
449#ifndef JNIUtilCallFloatMethodV
450#define JNIUtilCallFloatMethodV(jniEnv, obj, methodID, args) \
451 _JNIUtilWrapMacro_FuncCalled(CallFloatMethodV, jniEnv, obj, methodID, args)
454#ifndef JNIUtilCallFloatMethodA
455#define JNIUtilCallFloatMethodA(jniEnv, obj, methodID, args) \
456 _JNIUtilWrapMacro_FuncCalled(CallFloatMethodA, jniEnv, obj, methodID, args)
459#ifndef JNIUtilCallDoubleMethod
460#define JNIUtilCallDoubleMethod(jniEnv, obj, methodID, ...) \
461 _JNIUtilWrapMacro_FuncCalled(CallDoubleMethod, jniEnv, obj, methodID, ##__VA_ARGS__)
464#ifndef JNIUtilCallDoubleMethodV
465#define JNIUtilCallDoubleMethodV(jniEnv, obj, methodID, args) \
466 _JNIUtilWrapMacro_FuncCalled(CallDoubleMethodV, jniEnv, obj, methodID, args)
469#ifndef JNIUtilCallDoubleMethodA
470#define JNIUtilCallDoubleMethodA(jniEnv, obj, methodID, args) \
471 _JNIUtilWrapMacro_FuncCalled(CallDoubleMethodA, jniEnv, obj, methodID, args)
474#ifndef JNIUtilCallVoidMethod
475#define JNIUtilCallVoidMethod(jniEnv, obj, methodID, ...) \
476 _JNIUtilWrapMacro_FuncCalled(CallVoidMethod, jniEnv, obj, methodID, ##__VA_ARGS__)
479#ifndef JNIUtilCallVoidMethodV
480#define JNIUtilCallVoidMethodV(jniEnv, obj, methodID, args) \
481 _JNIUtilWrapMacro_FuncCalled(CallVoidMethodV, jniEnv, obj, methodID, args)
484#ifndef JNIUtilCallVoidMethodA
485#define JNIUtilCallVoidMethodA(jniEnv, obj, methodID, args) \
486 _JNIUtilWrapMacro_FuncCalled(CallVoidMethodA, jniEnv, obj, methodID, args)
489#ifndef JNIUtilCallNonvirtualObjectMethod
490#define JNIUtilCallNonvirtualObjectMethod(jniEnv, obj, methodID, ...) \
491 _JNIUtilWrapMacro_Created(CallNonvirtualObjectMethod, jniEnv, obj, methodID, ##__VA_ARGS__)
494#ifndef JNIUtilCallNonvirtualObjectMethodV
495#define JNIUtilCallNonvirtualObjectMethodV(jniEnv, obj, methodID, args) \
496 _JNIUtilWrapMacro_Created(CallNonvirtualObjectMethodV, jniEnv, obj, methodID, args)
499#ifndef JNIUtilCallNonvirtualObjectMethodA
500#define JNIUtilCallNonvirtualObjectMethodA(jniEnv, obj, methodID, args) \
501 _JNIUtilWrapMacro_Created(CallNonvirtualObjectMethodA, jniEnv, obj, methodID, args)
504#ifndef JNIUtilCallNonvirtualBooleanMethod
505#define JNIUtilCallNonvirtualBooleanMethod(jniEnv, obj, methodID, ...) \
506 _JNIUtilWrapMacro_FuncCalled(CallNonvirtualBooleanMethod, jniEnv, obj, methodID, ##__VA_ARGS__)
509#ifndef JNIUtilCallNonvirtualBooleanMethodV
510#define JNIUtilCallNonvirtualBooleanMethodV(jniEnv, obj, methodID, args) \
511 _JNIUtilWrapMacro_FuncCalled(CallNonvirtualBooleanMethodV, jniEnv, obj, methodID, args)
514#ifndef JNIUtilCallNonvirtualBooleanMethodA
515#define JNIUtilCallNonvirtualBooleanMethodA(jniEnv, obj, methodID, args) \
516 _JNIUtilWrapMacro_FuncCalled(CallNonvirtualBooleanMethodA, jniEnv, obj, methodID, args)
519#ifndef JNIUtilCallNonvirtualByteMethod
520#define JNIUtilCallNonvirtualByteMethod(jniEnv, obj, methodID, ...) \
521 _JNIUtilWrapMacro_FuncCalled(CallNonvirtualByteMethod, jniEnv, obj, methodID, ##__VA_ARGS__)
524#ifndef JNIUtilCallNonvirtualByteMethodV
525#define JNIUtilCallNonvirtualByteMethodV(jniEnv, obj, methodID, args) \
526 _JNIUtilWrapMacro_FuncCalled(CallNonvirtualByteMethodV, jniEnv, obj, methodID, args)
529#ifndef JNIUtilCallNonvirtualByteMethodA
530#define JNIUtilCallNonvirtualByteMethodA(jniEnv, obj, methodID, args) \
531 _JNIUtilWrapMacro_FuncCalled(CallNonvirtualByteMethodA, jniEnv, obj, methodID, args)
534#ifndef JNIUtilCallNonvirtualCharMethod
535#define JNIUtilCallNonvirtualCharMethod(jniEnv, obj, methodID, ...) \
536 _JNIUtilWrapMacro_FuncCalled(CallNonvirtualCharMethod, jniEnv, obj, methodID, ##__VA_ARGS__)
539#ifndef JNIUtilCallNonvirtualCharMethodV
540#define JNIUtilCallNonvirtualCharMethodV(jniEnv, obj, methodID, args) \
541 _JNIUtilWrapMacro_FuncCalled(CallNonvirtualCharMethodV, jniEnv, obj, methodID, args)
544#ifndef JNIUtilCallNonvirtualCharMethodA
545#define JNIUtilCallNonvirtualCharMethodA(jniEnv, obj, methodID, args) \
546 _JNIUtilWrapMacro_FuncCalled(CallNonvirtualCharMethodA, jniEnv, obj, methodID, args)
549#ifndef JNIUtilCallNonvirtualShortMethod
550#define JNIUtilCallNonvirtualShortMethod(jniEnv, obj, methodID, ...) \
551 _JNIUtilWrapMacro_FuncCalled(CallNonvirtualShortMethod, jniEnv, obj, methodID, ##__VA_ARGS__)
554#ifndef JNIUtilCallNonvirtualShortMethodV
555#define JNIUtilCallNonvirtualShortMethodV(jniEnv, obj, methodID, args) \
556 _JNIUtilWrapMacro_FuncCalled(CallNonvirtualShortMethodV, jniEnv, obj, methodID, args)
559#ifndef JNIUtilCallNonvirtualShortMethodA
560#define JNIUtilCallNonvirtualShortMethodA(jniEnv, obj, methodID, args) \
561 _JNIUtilWrapMacro_FuncCalled(CallNonvirtualShortMethodA, jniEnv, obj, methodID, args)
564#ifndef JNIUtilCallNonvirtualIntMethod
565#define JNIUtilCallNonvirtualIntMethod(jniEnv, obj, methodID, ...) \
566 _JNIUtilWrapMacro_FuncCalled(CallNonvirtualIntMethod, jniEnv, obj, methodID, ##__VA_ARGS__)
569#ifndef JNIUtilCallNonvirtualIntMethodV
570#define JNIUtilCallNonvirtualIntMethodV(jniEnv, obj, methodID, args) \
571 _JNIUtilWrapMacro_FuncCalled(CallNonvirtualIntMethodV, jniEnv, obj, methodID, args)
574#ifndef JNIUtilCallNonvirtualIntMethodA
575#define JNIUtilCallNonvirtualIntMethodA(jniEnv, obj, methodID, args) \
576 _JNIUtilWrapMacro_FuncCalled(CallNonvirtualIntMethodA, jniEnv, obj, methodID, args)
579#ifndef JNIUtilCallNonvirtualLongMethod
580#define JNIUtilCallNonvirtualLongMethod(jniEnv, obj, methodID, ...) \
581 _JNIUtilWrapMacro_FuncCalled(CallNonvirtualLongMethod, jniEnv, obj, methodID, ##__VA_ARGS__)
584#ifndef JNIUtilCallNonvirtualLongMethodV
585#define JNIUtilCallNonvirtualLongMethodV(jniEnv, obj, methodID, args) \
586 _JNIUtilWrapMacro_FuncCalled(CallNonvirtualLongMethodV, jniEnv, obj, methodID, args)
589#ifndef JNIUtilCallNonvirtualLongMethodA
590#define JNIUtilCallNonvirtualLongMethodA(jniEnv, obj, methodID, args) \
591 _JNIUtilWrapMacro_FuncCalled(CallNonvirtualLongMethodA, jniEnv, obj, methodID, args)
594#ifndef JNIUtilCallNonvirtualFloatMethod
595#define JNIUtilCallNonvirtualFloatMethod(jniEnv, obj, methodID, ...) \
596 _JNIUtilWrapMacro_FuncCalled(CallNonvirtualFloatMethod, jniEnv, obj, methodID, ##__VA_ARGS__)
599#ifndef JNIUtilCallNonvirtualFloatMethodV
600#define JNIUtilCallNonvirtualFloatMethodV(jniEnv, obj, methodID, args) \
601 _JNIUtilWrapMacro_FuncCalled(CallNonvirtualFloatMethodV, jniEnv, obj, methodID, args)
604#ifndef JNIUtilCallNonvirtualFloatMethodA
605#define JNIUtilCallNonvirtualFloatMethodA(jniEnv, obj, methodID, args) \
606 _JNIUtilWrapMacro_FuncCalled(CallNonvirtualFloatMethodA, jniEnv, obj, methodID, args)
609#ifndef JNIUtilCallNonvirtualDoubleMethod
610#define JNIUtilCallNonvirtualDoubleMethod(jniEnv, obj, methodID, ...) \
611 _JNIUtilWrapMacro_FuncCalled(CallNonvirtualDoubleMethod, jniEnv, obj, methodID, ##__VA_ARGS__)
614#ifndef JNIUtilCallNonvirtualDoubleMethodV
615#define JNIUtilCallNonvirtualDoubleMethodV(jniEnv, obj, methodID, args) \
616 _JNIUtilWrapMacro_FuncCalled(CallNonvirtualDoubleMethodV, jniEnv, obj, methodID, args)
619#ifndef JNIUtilCallNonvirtualDoubleMethodA
620#define JNIUtilCallNonvirtualDoubleMethodA(jniEnv, obj, methodID, args) \
621 _JNIUtilWrapMacro_FuncCalled(CallNonvirtualDoubleMethodA, jniEnv, obj, methodID, args)
624#ifndef JNIUtilCallNonvirtualVoidMethod
625#define JNIUtilCallNonvirtualVoidMethod(jniEnv, obj, methodID, ...) \
626 _JNIUtilWrapMacro_FuncCalled(CallNonvirtualVoidMethod, jniEnv, obj, methodID, ##__VA_ARGS__)
629#ifndef JNIUtilCallNonvirtualVoidMethodV
630#define JNIUtilCallNonvirtualVoidMethodV(jniEnv, obj, methodID, args) \
631 _JNIUtilWrapMacro_FuncCalled(CallNonvirtualVoidMethodV, jniEnv, obj, methodID, args)
634#ifndef JNIUtilCallNonvirtualVoidMethodA
635#define JNIUtilCallNonvirtualVoidMethodA(jniEnv, obj, methodID, args) \
636 _JNIUtilWrapMacro_FuncCalled(CallNonvirtualVoidMethodA, jniEnv, obj, methodID, args)
639#ifndef JNIUtilGetFieldID
640#define JNIUtilGetFieldID(jniEnv, clazz, name, sig) \
641 _JNIUtilWrapMacro_FuncCalled(GetFieldID, jniEnv, clazz, name, sig)
644#ifndef JNIUtilGetObjectField
645#define JNIUtilGetObjectField(jniEnv, obj, fieldID) \
646 _JNIUtilWrapMacro_Created(GetObjectField, jniEnv, obj, fieldID)
649#ifndef JNIUtilGetBooleanField
650#define JNIUtilGetBooleanField(jniEnv, obj, fieldID) \
651 _JNIUtilWrapMacro_FuncCalled(GetBooleanField, jniEnv, obj, fieldID)
654#ifndef JNIUtilGetByteField
655#define JNIUtilGetByteField(jniEnv, obj, fieldID) \
656 _JNIUtilWrapMacro_FuncCalled(GetByteField, jniEnv, obj, fieldID)
659#ifndef JNIUtilGetCharField
660#define JNIUtilGetCharField(jniEnv, obj, fieldID) \
661 _JNIUtilWrapMacro_FuncCalled(GetCharField, jniEnv, obj, fieldID)
664#ifndef JNIUtilGetShortField
665#define JNIUtilGetShortField(jniEnv, obj, fieldID) \
666 _JNIUtilWrapMacro_FuncCalled(GetShortField, jniEnv, obj, fieldID)
669#ifndef JNIUtilGetIntField
670#define JNIUtilGetIntField(jniEnv, obj, fieldID) \
671 _JNIUtilWrapMacro_FuncCalled(GetIntField, jniEnv, obj, fieldID)
674#ifndef JNIUtilGetLongField
675#define JNIUtilGetLongField(jniEnv, obj, fieldID) \
676 _JNIUtilWrapMacro_FuncCalled(GetLongField, jniEnv, obj, fieldID)
679#ifndef JNIUtilGetFloatField
680#define JNIUtilGetFloatField(jniEnv, obj, fieldID) \
681 _JNIUtilWrapMacro_FuncCalled(GetFloatField, jniEnv, obj, fieldID)
684#ifndef JNIUtilGetDoubleField
685#define JNIUtilGetDoubleField(jniEnv, obj, fieldID) \
686 _JNIUtilWrapMacro_FuncCalled(GetDoubleField, jniEnv, obj, fieldID)
689#ifndef JNIUtilSetObjectField
690#define JNIUtilSetObjectField(jniEnv, obj, fieldID, value) \
691 _JNIUtilWrapMacro_FuncCalled(SetObjectField, jniEnv, obj, fieldID, value)
694#ifndef JNIUtilSetBooleanField
695#define JNIUtilSetBooleanField(jniEnv, obj, fieldID, value) \
696 _JNIUtilWrapMacro_FuncCalled(SetBooleanField, jniEnv, obj, fieldID, value)
699#ifndef JNIUtilSetByteField
700#define JNIUtilSetByteField(jniEnv, obj, fieldID, value) \
701 _JNIUtilWrapMacro_FuncCalled(SetByteField, jniEnv, obj, fieldID, value)
704#ifndef JNIUtilSetCharField
705#define JNIUtilSetCharField(jniEnv, obj, fieldID, value) \
706 _JNIUtilWrapMacro_FuncCalled(SetCharField, jniEnv, obj, fieldID, value)
709#ifndef JNIUtilSetShortField
710#define JNIUtilSetShortField(jniEnv, obj, fieldID, value) \
711 _JNIUtilWrapMacro_FuncCalled(SetShortField, jniEnv, obj, fieldID, value)
714#ifndef JNIUtilSetIntField
715#define JNIUtilSetIntField(jniEnv, obj, fieldID, value) \
716 _JNIUtilWrapMacro_FuncCalled(SetIntField, jniEnv, obj, fieldID, value)
719#ifndef JNIUtilSetLongField
720#define JNIUtilSetLongField(jniEnv, obj, fieldID, value) \
721 _JNIUtilWrapMacro_FuncCalled(SetLongField, jniEnv, obj, fieldID, value)
724#ifndef JNIUtilSetFloatField
725#define JNIUtilSetFloatField(jniEnv, obj, fieldID, value) \
726 _JNIUtilWrapMacro_FuncCalled(SetFloatField, jniEnv, obj, fieldID, value)
729#ifndef JNIUtilSetDoubleField
730#define JNIUtilSetDoubleField(jniEnv, obj, fieldID, value) \
731 _JNIUtilWrapMacro_FuncCalled(SetDoubleField, jniEnv, obj, fieldID, value)
734#ifndef JNIUtilGetStaticMethodID
735#define JNIUtilGetStaticMethodID(jniEnv, clazz, name, sig) \
736 _JNIUtilWrapMacro_FuncCalled(GetStaticMethodID, jniEnv, clazz, name, sig)
739#ifndef JNIUtilCallStaticObjectMethod
740#define JNIUtilCallStaticObjectMethod(jniEnv, clazz, methodID, ...) \
741 _JNIUtilWrapMacro_Created(CallStaticObjectMethod, jniEnv, clazz, methodID, ##__VA_ARGS__)
744#ifndef JNIUtilCallStaticObjectMethodV
745#define JNIUtilCallStaticObjectMethodV(jniEnv, clazz, methodID, args) \
746 _JNIUtilWrapMacro_Created(CallStaticObjectMethodV, jniEnv, clazz, methodID, args)
749#ifndef JNIUtilCallStaticObjectMethodA
750#define JNIUtilCallStaticObjectMethodA(jniEnv, clazz, methodID, args) \
751 _JNIUtilWrapMacro_Created(CallStaticObjectMethodA, jniEnv, clazz, methodID, args)
754#ifndef JNIUtilCallStaticBooleanMethod
755#define JNIUtilCallStaticBooleanMethod(jniEnv, clazz, methodID, ...) \
756 _JNIUtilWrapMacro_FuncCalled(CallStaticBooleanMethod, jniEnv, clazz, methodID, ##__VA_ARGS__)
759#ifndef JNIUtilCallStaticBooleanMethodV
760#define JNIUtilCallStaticBooleanMethodV(jniEnv, clazz, methodID, args) \
761 _JNIUtilWrapMacro_FuncCalled(CallStaticBooleanMethodV, jniEnv, clazz, methodID, args)
764#ifndef JNIUtilCallStaticBooleanMethodA
765#define JNIUtilCallStaticBooleanMethodA(jniEnv, clazz, methodID, args) \
766 _JNIUtilWrapMacro_FuncCalled(CallStaticBooleanMethodA, jniEnv, clazz, methodID, args)
769#ifndef JNIUtilCallStaticByteMethod
770#define JNIUtilCallStaticByteMethod(jniEnv, clazz, methodID, ...) \
771 _JNIUtilWrapMacro_FuncCalled(CallStaticByteMethod, jniEnv, clazz, methodID, ##__VA_ARGS__)
774#ifndef JNIUtilCallStaticByteMethodV
775#define JNIUtilCallStaticByteMethodV(jniEnv, clazz, methodID, args) \
776 _JNIUtilWrapMacro_FuncCalled(CallStaticByteMethodV, jniEnv, clazz, methodID, args)
779#ifndef JNIUtilCallStaticByteMethodA
780#define JNIUtilCallStaticByteMethodA(jniEnv, clazz, methodID, args) \
781 _JNIUtilWrapMacro_FuncCalled(CallStaticByteMethodA, jniEnv, clazz, methodID, args)
784#ifndef JNIUtilCallStaticCharMethod
785#define JNIUtilCallStaticCharMethod(jniEnv, clazz, methodID, ...) \
786 _JNIUtilWrapMacro_FuncCalled(CallStaticCharMethod, jniEnv, clazz, methodID, ##__VA_ARGS__)
789#ifndef JNIUtilCallStaticCharMethodV
790#define JNIUtilCallStaticCharMethodV(jniEnv, clazz, methodID, args) \
791 _JNIUtilWrapMacro_FuncCalled(CallStaticCharMethodV, jniEnv, clazz, methodID, args)
794#ifndef JNIUtilCallStaticCharMethodA
795#define JNIUtilCallStaticCharMethodA(jniEnv, clazz, methodID, args) \
796 _JNIUtilWrapMacro_FuncCalled(CallStaticCharMethodA, jniEnv, clazz, methodID, args)
799#ifndef JNIUtilCallStaticShortMethod
800#define JNIUtilCallStaticShortMethod(jniEnv, clazz, methodID, ...) \
801 _JNIUtilWrapMacro_FuncCalled(CallStaticShortMethod, jniEnv, clazz, methodID, ##__VA_ARGS__)
804#ifndef JNIUtilCallStaticShortMethodV
805#define JNIUtilCallStaticShortMethodV(jniEnv, clazz, methodID, args) \
806 _JNIUtilWrapMacro_FuncCalled(CallStaticShortMethodV, jniEnv, clazz, methodID, args)
809#ifndef JNIUtilCallStaticShortMethodA
810#define JNIUtilCallStaticShortMethodA(jniEnv, clazz, methodID, args) \
811 _JNIUtilWrapMacro_FuncCalled(CallStaticShortMethodA, jniEnv, clazz, methodID, args)
814#ifndef JNIUtilCallStaticIntMethod
815#define JNIUtilCallStaticIntMethod(jniEnv, clazz, methodID, ...) \
816 _JNIUtilWrapMacro_FuncCalled(CallStaticIntMethod, jniEnv, clazz, methodID, ##__VA_ARGS__)
819#ifndef JNIUtilCallStaticIntMethodV
820#define JNIUtilCallStaticIntMethodV(jniEnv, clazz, methodID, args) \
821 _JNIUtilWrapMacro_FuncCalled(CallStaticIntMethodV, jniEnv, clazz, methodID, args)
824#ifndef JNIUtilCallStaticIntMethodA
825#define JNIUtilCallStaticIntMethodA(jniEnv, clazz, methodID, args) \
826 _JNIUtilWrapMacro_FuncCalled(CallStaticIntMethodA, jniEnv, clazz, methodID, args)
829#ifndef JNIUtilCallStaticLongMethod
830#define JNIUtilCallStaticLongMethod(jniEnv, clazz, methodID, ...) \
831 _JNIUtilWrapMacro_FuncCalled(CallStaticLongMethod, jniEnv, clazz, methodID, ##__VA_ARGS__)
834#ifndef JNIUtilCallStaticLongMethodV
835#define JNIUtilCallStaticLongMethodV(jniEnv, clazz, methodID, args) \
836 _JNIUtilWrapMacro_FuncCalled(CallStaticLongMethodV, jniEnv, clazz, methodID, args)
839#ifndef JNIUtilCallStaticLongMethodA
840#define JNIUtilCallStaticLongMethodA(jniEnv, clazz, methodID, args) \
841 _JNIUtilWrapMacro_FuncCalled(CallStaticLongMethodA, jniEnv, clazz, methodID, args)
844#ifndef JNIUtilCallStaticFloatMethod
845#define JNIUtilCallStaticFloatMethod(jniEnv, clazz, methodID, ...) \
846 _JNIUtilWrapMacro_FuncCalled(CallStaticFloatMethod, jniEnv, clazz, methodID, ##__VA_ARGS__)
849#ifndef JNIUtilCallStaticFloatMethodV
850#define JNIUtilCallStaticFloatMethodV(jniEnv, clazz, methodID, args) \
851 _JNIUtilWrapMacro_FuncCalled(CallStaticFloatMethodV, jniEnv, clazz, methodID, args)
854#ifndef JNIUtilCallStaticFloatMethodA
855#define JNIUtilCallStaticFloatMethodA(jniEnv, clazz, methodID, args) \
856 _JNIUtilWrapMacro_FuncCalled(CallStaticFloatMethodA, jniEnv, clazz, methodID, args)
859#ifndef JNIUtilCallStaticDoubleMethod
860#define JNIUtilCallStaticDoubleMethod(jniEnv, clazz, methodID, ...) \
861 _JNIUtilWrapMacro_FuncCalled(CallStaticDoubleMethod, jniEnv, clazz, methodID, ##__VA_ARGS__)
864#ifndef JNIUtilCallStaticDoubleMethodV
865#define JNIUtilCallStaticDoubleMethodV(jniEnv, clazz, methodID, args) \
866 _JNIUtilWrapMacro_FuncCalled(CallStaticDoubleMethodV, jniEnv, clazz, methodID, args)
869#ifndef JNIUtilCallStaticDoubleMethodA
870#define JNIUtilCallStaticDoubleMethodA(jniEnv, clazz, methodID, args) \
871 _JNIUtilWrapMacro_FuncCalled(CallStaticDoubleMethodA, jniEnv, clazz, methodID, args)
874#ifndef JNIUtilCallStaticVoidMethod
875#define JNIUtilCallStaticVoidMethod(jniEnv, clazz, methodID, ...) \
876 _JNIUtilWrapMacro_FuncCalled(CallStaticVoidMethod, jniEnv, clazz, methodID, ##__VA_ARGS__)
879#ifndef JNIUtilCallStaticVoidMethodV
880#define JNIUtilCallStaticVoidMethodV(jniEnv, clazz, methodID, args) \
881 _JNIUtilWrapMacro_FuncCalled(CallStaticVoidMethodV, jniEnv, clazz, methodID, args)
884#ifndef JNIUtilCallStaticVoidMethodA
885#define JNIUtilCallStaticVoidMethodA(jniEnv, clazz, methodID, args) \
886 _JNIUtilWrapMacro_FuncCalled(CallStaticVoidMethodA, jniEnv, clazz, methodID, args)
889#ifndef JNIUtilGetStaticFieldID
890#define JNIUtilGetStaticFieldID(jniEnv, clazz, name, sig) \
891 _JNIUtilWrapMacro_FuncCalled(GetStaticFieldID, jniEnv, clazz, name, sig)
894#ifndef JNIUtilGetStaticObjectField
895#define JNIUtilGetStaticObjectField(jniEnv, clazz, fieldID) \
896 _JNIUtilWrapMacro_Created(GetStaticObjectField, jniEnv, clazz, fieldID)
899#ifndef JNIUtilGetStaticBooleanField
900#define JNIUtilGetStaticBooleanField(jniEnv, clazz, fieldID) \
901 _JNIUtilWrapMacro_FuncCalled(GetStaticBooleanField, jniEnv, clazz, fieldID)
904#ifndef JNIUtilGetStaticByteField
905#define JNIUtilGetStaticByteField(jniEnv, clazz, fieldID) \
906 _JNIUtilWrapMacro_FuncCalled(GetStaticByteField, jniEnv, clazz, fieldID)
909#ifndef JNIUtilGetStaticCharField
910#define JNIUtilGetStaticCharField(jniEnv, clazz, fieldID) \
911 _JNIUtilWrapMacro_FuncCalled(GetStaticCharField, jniEnv, clazz, fieldID)
914#ifndef JNIUtilGetStaticShortField
915#define JNIUtilGetStaticShortField(jniEnv, clazz, fieldID) \
916 _JNIUtilWrapMacro_FuncCalled(GetStaticShortField, jniEnv, clazz, fieldID)
919#ifndef JNIUtilGetStaticIntField
920#define JNIUtilGetStaticIntField(jniEnv, clazz, fieldID) \
921 _JNIUtilWrapMacro_FuncCalled(GetStaticIntField, jniEnv, clazz, fieldID)
924#ifndef JNIUtilGetStaticLongField
925#define JNIUtilGetStaticLongField(jniEnv, clazz, fieldID) \
926 _JNIUtilWrapMacro_FuncCalled(GetStaticLongField, jniEnv, clazz, fieldID)
929#ifndef JNIUtilGetStaticFloatField
930#define JNIUtilGetStaticFloatField(jniEnv, clazz, fieldID) \
931 _JNIUtilWrapMacro_FuncCalled(GetStaticFloatField, jniEnv, clazz, fieldID)
934#ifndef JNIUtilGetStaticDoubleField
935#define JNIUtilGetStaticDoubleField(jniEnv, clazz, fieldID) \
936 _JNIUtilWrapMacro_FuncCalled(GetStaticDoubleField, jniEnv, clazz, fieldID)
939#ifndef JNIUtilSetStaticObjectField
940#define JNIUtilSetStaticObjectField(jniEnv, clazz, fieldID, value) \
941 _JNIUtilWrapMacro_FuncCalled(SetStaticObjectField, jniEnv, clazz, fieldID, value)
944#ifndef JNIUtilSetStaticBooleanField
945#define JNIUtilSetStaticBooleanField(jniEnv, clazz, fieldID, value) \
946 _JNIUtilWrapMacro_FuncCalled(SetStaticBooleanField, jniEnv, clazz, fieldID, value)
949#ifndef JNIUtilSetStaticByteField
950#define JNIUtilSetStaticByteField(jniEnv, clazz, fieldID, value) \
951 _JNIUtilWrapMacro_FuncCalled(SetStaticByteField, jniEnv, clazz, fieldID, value)
954#ifndef JNIUtilSetStaticCharField
955#define JNIUtilSetStaticCharField(jniEnv, clazz, fieldID, value) \
956 _JNIUtilWrapMacro_FuncCalled(SetStaticCharField, jniEnv, clazz, fieldID, value)
959#ifndef JNIUtilSetStaticShortField
960#define JNIUtilSetStaticShortField(jniEnv, clazz, fieldID, value) \
961 _JNIUtilWrapMacro_FuncCalled(SetStaticShortField, jniEnv, clazz, fieldID, value)
964#ifndef JNIUtilSetStaticIntField
965#define JNIUtilSetStaticIntField(jniEnv, clazz, fieldID, value) \
966 _JNIUtilWrapMacro_FuncCalled(SetStaticIntField, jniEnv, clazz, fieldID, value)
969#ifndef JNIUtilSetStaticLongField
970#define JNIUtilSetStaticLongField(jniEnv, clazz, fieldID, value) \
971 _JNIUtilWrapMacro_FuncCalled(SetStaticLongField, jniEnv, clazz, fieldID, value)
974#ifndef JNIUtilSetStaticFloatField
975#define JNIUtilSetStaticFloatField(jniEnv, clazz, fieldID, value) \
976 _JNIUtilWrapMacro_FuncCalled(SetStaticFloatField, jniEnv, clazz, fieldID, value)
979#ifndef JNIUtilSetStaticDoubleField
980#define JNIUtilSetStaticDoubleField(jniEnv, clazz, fieldID, value) \
981 _JNIUtilWrapMacro_FuncCalled(SetStaticDoubleField, jniEnv, clazz, fieldID, value)
984#ifndef JNIUtilNewString
985#define JNIUtilNewString(jniEnv, unicodeChars, len) \
986 _JNIUtilWrapMacro_Created(NewString, jniEnv, unicodeChars, len)
989#ifndef JNIUtilGetStringLength
990#define JNIUtilGetStringLength(jniEnv, string) \
991 _JNIUtilWrapMacro_FuncCalled(GetStringLength, jniEnv, string)
994#ifndef JNIUtilGetStringChars
995#define JNIUtilGetStringChars(jniEnv, string, isCopy) \
996 _JNIUtilWrapMacro_Created(GetStringChars, jniEnv, string, isCopy)
999#ifndef JNIUtilReleaseStringChars
1000#define JNIUtilReleaseStringChars(jniEnv, string, chars) \
1001 _JNIUtilWrapMacro_Released_1(ReleaseStringChars, jniEnv, string, chars)
1004#ifndef JNIUtilNewStringUTF
1005#define JNIUtilNewStringUTF(jniEnv, bytes) \
1006 _JNIUtilWrapMacro_Created(NewStringUTF, jniEnv, bytes)
1009#ifndef JNIUtilGetStringUTFLength
1010#define JNIUtilGetStringUTFLength(jniEnv, string) \
1011 _JNIUtilWrapMacro_FuncCalled(GetStringUTFLength, jniEnv, bytes)
1014#ifndef JNIUtilGetStringUTFChars
1015#define JNIUtilGetStringUTFChars(jniEnv, string, isCopy) \
1016 _JNIUtilWrapMacro_Created(GetStringUTFChars, jniEnv, string, isCopy)
1019#ifndef JNIUtilReleaseStringUTFChars
1020#define JNIUtilReleaseStringUTFChars(jniEnv, string, utf) \
1021 _JNIUtilWrapMacro_Released_1(ReleaseStringUTFChars, jniEnv, string, utf)
1024#ifndef JNIUtilGetArrayLength
1025#define JNIUtilGetArrayLength(jniEnv, array) \
1026 _JNIUtilWrapMacro_FuncCalled(GetArrayLength, jniEnv, array)
1029#ifndef JNIUtilNewObjectArray
1030#define JNIUtilNewObjectArray(jniEnv, length, elementClass, initialElement) \
1031 _JNIUtilWrapMacro_Created(NewObjectArray, jniEnv, length, elementClass, initialElement)
1034#ifndef JNIUtilGetObjectArrayElement
1035#define JNIUtilGetObjectArrayElement(jniEnv, array, index) \
1036 _JNIUtilWrapMacro_Created(GetObjectArrayElement, jniEnv, array, index)
1039#ifndef JNIUtilSetObjectArrayElement
1040#define JNIUtilSetObjectArrayElement(jniEnv, array, index, value) \
1041 _JNIUtilWrapMacro_FuncCalled(SetObjectArrayElement, jniEnv, array, index, value)
1044#ifndef JNIUtilNewBooleanArray
1045#define JNIUtilNewBooleanArray(jniEnv, length) \
1046 _JNIUtilWrapMacro_Created(NewBooleanArray, jniEnv, length)
1049#ifndef JNIUtilNewByteArray
1050#define JNIUtilNewByteArray(jniEnv, length) \
1051 _JNIUtilWrapMacro_Created(NewByteArray, jniEnv, length)
1054#ifndef JNIUtilNewCharArray
1055#define JNIUtilNewCharArray(jniEnv, length) \
1056 _JNIUtilWrapMacro_Created(NewCharArray, jniEnv, length)
1059#ifndef JNIUtilNewShortArray
1060#define JNIUtilNewShortArray(jniEnv, length) \
1061 _JNIUtilWrapMacro_Created(NewShortArray, jniEnv, length)
1064#ifndef JNIUtilNewIntArray
1065#define JNIUtilNewIntArray(jniEnv, length) \
1066 _JNIUtilWrapMacro_Created(NewIntArray, jniEnv, length)
1069#ifndef JNIUtilNewLongArray
1070#define JNIUtilNewLongArray(jniEnv, length) \
1071 _JNIUtilWrapMacro_Created(NewLongArray, jniEnv, length)
1074#ifndef JNIUtilNewFloatArray
1075#define JNIUtilNewFloatArray(jniEnv, length) \
1076 _JNIUtilWrapMacro_Created(NewFloatArray, jniEnv, length)
1079#ifndef JNIUtilNewDoubleArray
1080#define JNIUtilNewDoubleArray(jniEnv, length) \
1081 _JNIUtilWrapMacro_Created(NewDoubleArray, jniEnv, length)
1084#ifndef JNIUtilGetBooleanArrayElements
1085#define JNIUtilGetBooleanArrayElements(jniEnv, array, isCopy) \
1086 _JNIUtilWrapMacro_Created(GetBooleanArrayElements, jniEnv, array, isCopy)
1089#ifndef JNIUtilGetByteArrayElements
1090#define JNIUtilGetByteArrayElements(jniEnv, array, isCopy) \
1091 _JNIUtilWrapMacro_Created(GetByteArrayElements, jniEnv, array, isCopy)
1094#ifndef JNIUtilGetCharArrayElements
1095#define JNIUtilGetCharArrayElements(jniEnv, array, isCopy) \
1096 _JNIUtilWrapMacro_Created(GetCharArrayElements, jniEnv, array, isCopy)
1099#ifndef JNIUtilGetShortArrayElements
1100#define JNIUtilGetShortArrayElements(jniEnv, array, isCopy) \
1101 _JNIUtilWrapMacro_Created(GetShortArrayElements, jniEnv, array, isCopy)
1104#ifndef JNIUtilGetIntArrayElements
1105#define JNIUtilGetIntArrayElements(jniEnv, array, isCopy) \
1106 _JNIUtilWrapMacro_Created(GetIntArrayElements, jniEnv, array, isCopy)
1109#ifndef JNIUtilGetLongArrayElements
1110#define JNIUtilGetLongArrayElements(jniEnv, array, isCopy) \
1111 _JNIUtilWrapMacro_Created(GetLongArrayElements, jniEnv, array, isCopy)
1114#ifndef JNIUtilGetFloatArrayElements
1115#define JNIUtilGetFloatArrayElements(jniEnv, array, isCopy) \
1116 _JNIUtilWrapMacro_Created(GetFloatArrayElements, jniEnv, array, isCopy)
1119#ifndef JNIUtilGetDoubleArrayElements
1120#define JNIUtilGetDoubleArrayElements(jniEnv, array, isCopy) \
1121 _JNIUtilWrapMacro_Created(GetDoubleArrayElements, jniEnv, array, isCopy)
1124#ifndef JNIUtilReleaseBooleanArrayElements
1125#define JNIUtilReleaseBooleanArrayElements(jniEnv, array, elems, mode) \
1126 _JNIUtilWrapMacro_Released_1(ReleaseBooleanArrayElements, jniEnv, array, elems, mode)
1129#ifndef JNIUtilReleaseByteArrayElements
1130#define JNIUtilReleaseByteArrayElements(jniEnv, array, elems, mode) \
1131 _JNIUtilWrapMacro_Released_1(ReleaseByteArrayElements, jniEnv, array, elems, mode)
1134#ifndef JNIUtilReleaseCharArrayElements
1135#define JNIUtilReleaseCharArrayElements(jniEnv, array, elems, mode) \
1136 _JNIUtilWrapMacro_Released_1(ReleaseCharArrayElements, jniEnv, array, elems, mode)
1139#ifndef JNIUtilReleaseShortArrayElements
1140#define JNIUtilReleaseShortArrayElements(jniEnv, array, elems, mode) \
1141 _JNIUtilWrapMacro_Released_1(ReleaseShortArrayElements, jniEnv, array, elems, mode)
1144#ifndef JNIUtilReleaseIntArrayElements
1145#define JNIUtilReleaseIntArrayElements(jniEnv, array, elems, mode) \
1146 _JNIUtilWrapMacro_Released_1(ReleaseIntArrayElements, jniEnv, array, elems, mode)
1149#ifndef JNIUtilReleaseLongArrayElements
1150#define JNIUtilReleaseLongArrayElements(jniEnv, array, elems, mode) \
1151 _JNIUtilWrapMacro_Released_1(ReleaseLongArrayElements, jniEnv, array, elems, mode)
1154#ifndef JNIUtilReleaseFloatArrayElements
1155#define JNIUtilReleaseFloatArrayElements(jniEnv, array, elems, mode) \
1156 _JNIUtilWrapMacro_Released_1(ReleaseFloatArrayElements, jniEnv, array, elems, mode)
1159#ifndef JNIUtilReleaseDoubleArrayElements
1160#define JNIUtilReleaseDoubleArrayElements(jniEnv, array, elems, mode) \
1161 _JNIUtilWrapMacro_Released_1(ReleaseDoubleArrayElements, jniEnv, array, elems, mode)
1164#ifndef JNIUtilGetBooleanArrayRegion
1165#define JNIUtilGetBooleanArrayRegion(jniEnv, array, start, len, buf) \
1166 _JNIUtilWrapMacro_FuncCalled(GetBooleanArrayRegion, jniEnv, array, start, len, buf)
1169#ifndef JNIUtilGetByteArrayRegion
1170#define JNIUtilGetByteArrayRegion(jniEnv, array, start, len, buf) \
1171 _JNIUtilWrapMacro_FuncCalled(GetByteArrayRegion, jniEnv, array, start, len, buf)
1174#ifndef JNIUtilGetCharArrayRegion
1175#define JNIUtilGetCharArrayRegion(jniEnv, array, start, len, buf) \
1176 _JNIUtilWrapMacro_FuncCalled(GetCharArrayRegion, jniEnv, array, start, len, buf)
1179#ifndef JNIUtilGetShortArrayRegion
1180#define JNIUtilGetShortArrayRegion(jniEnv, array, start, len, buf) \
1181 _JNIUtilWrapMacro_FuncCalled(GetShortArrayRegion, jniEnv, array, start, len, buf)
1184#ifndef JNIUtilGetIntArrayRegion
1185#define JNIUtilGetIntArrayRegion(jniEnv, array, start, len, buf) \
1186 _JNIUtilWrapMacro_FuncCalled(GetIntArrayRegion, jniEnv, array, start, len, buf)
1189#ifndef JNIUtilGetLongArrayRegion
1190#define JNIUtilGetLongArrayRegion(jniEnv, array, start, len, buf) \
1191 _JNIUtilWrapMacro_FuncCalled(GetLongArrayRegion, jniEnv, array, start, len, buf)
1194#ifndef JNIUtilGetFloatArrayRegion
1195#define JNIUtilGetFloatArrayRegion(jniEnv, array, start, len, buf) \
1196 _JNIUtilWrapMacro_FuncCalled(GetFloatArrayRegion, jniEnv, array, start, len, buf)
1199#ifndef JNIUtilGetDoubleArrayRegion
1200#define JNIUtilGetDoubleArrayRegion(jniEnv, array, start, len, buf) \
1201 _JNIUtilWrapMacro_FuncCalled(GetDoubleArrayRegion, jniEnv, array, start, len, buf)
1204#ifndef JNIUtilSetBooleanArrayRegion
1205#define JNIUtilSetBooleanArrayRegion(jniEnv, array, start, len, buf) \
1206 _JNIUtilWrapMacro_FuncCalled(SetBooleanArrayRegion, jniEnv, array, start, len, buf)
1209#ifndef JNIUtilSetByteArrayRegion
1210#define JNIUtilSetByteArrayRegion(jniEnv, array, start, len, buf) \
1211 _JNIUtilWrapMacro_FuncCalled(SetByteArrayRegion, jniEnv, array, start, len, buf)
1214#ifndef JNIUtilSetCharArrayRegion
1215#define JNIUtilSetCharArrayRegion(jniEnv, array, start, len, buf) \
1216 _JNIUtilWrapMacro_FuncCalled(SetCharArrayRegion, jniEnv, array, start, len, buf)
1219#ifndef JNIUtilSetShortArrayRegion
1220#define JNIUtilSetShortArrayRegion(jniEnv, array, start, len, buf) \
1221 _JNIUtilWrapMacro_FuncCalled(SetShortArrayRegion, jniEnv, array, start, len, buf)
1224#ifndef JNIUtilSetIntArrayRegion
1225#define JNIUtilSetIntArrayRegion(jniEnv, array, start, len, buf) \
1226 _JNIUtilWrapMacro_FuncCalled(SetIntArrayRegion, jniEnv, array, start, len, buf)
1229#ifndef JNIUtilSetLongArrayRegion
1230#define JNIUtilSetLongArrayRegion(jniEnv, array, start, len, buf) \
1231 _JNIUtilWrapMacro_FuncCalled(SetLongArrayRegion, jniEnv, array, start, len, buf)
1234#ifndef JNIUtilSetFloatArrayRegion
1235#define JNIUtilSetFloatArrayRegion(jniEnv, array, start, len, buf) \
1236 _JNIUtilWrapMacro_FuncCalled(SetFloatArrayRegion, jniEnv, array, start, len, buf)
1239#ifndef JNIUtilSetDoubleArrayRegion
1240#define JNIUtilSetDoubleArrayRegion(jniEnv, array, start, len, buf) \
1241 _JNIUtilWrapMacro_FuncCalled(SetDoubleArrayRegion, jniEnv, array, start, len, buf)
1244#ifndef JNIUtilRegisterNatives
1245#define JNIUtilRegisterNatives(jniEnv, clazz, methods, nMethods) \
1246 _JNIUtilWrapMacro_FuncCalled(RegisterNatives, jniEnv, clazz, methods, nMethods)
1249#ifndef JNIUtilUnregisterNatives
1250#define JNIUtilUnregisterNatives(jniEnv, clazz) \
1251 _JNIUtilWrapMacro_FuncCalled(UnregisterNatives, jniEnv, clazz)
1254#ifndef JNIUtilMonitorEnter
1255#define JNIUtilMonitorEnter(jniEnv, obj) \
1256 _JNIUtilWrapMacro_FuncCalled(MonitorEnter, jniEnv, obj)
1259#ifndef JNIUtilMonitorExit
1260#define JNIUtilMonitorExit(jniEnv, obj) \
1261 _JNIUtilWrapMacro_FuncCalled(MonitorExit, jniEnv, obj)
1264#ifndef JNIUtilGetJavaVM
1265#define JNIUtilGetJavaVM(jniEnv, vm) \
1266 _JNIUtilWrapMacro_FuncCalled(GetJavaVM, jniEnv, vm)
1269#ifndef JNIUtilGetStringRegion
1270#define JNIUtilGetStringRegion(jniEnv, str, start, len, buf) \
1271 _JNIUtilWrapMacro_FuncCalled(GetStringRegion, jniEnv, str, start, len, buf)
1274#ifndef JNIUtilGetStringUTFRegion
1275#define JNIUtilGetStringUTFRegion(jniEnv, str, start, len, buf) \
1276 _JNIUtilWrapMacro_FuncCalled(GetStringUTFRegion, jniEnv, str, start, len, buf)
1279#ifndef JNIUtilGetPrimitiveArrayCritical
1280#define JNIUtilGetPrimitiveArrayCritical(jniEnv, array, isCopy) \
1281 _JNIUtilWrapMacro_Created(GetPrimitiveArrayCritical, jniEnv, array, isCopy)
1284#ifndef JNIUtilReleasePrimitiveArrayCritical
1285#define JNIUtilReleasePrimitiveArrayCritical(jniEnv, array, carray, mode) \
1286 _JNIUtilWrapMacro_Released_1(ReleasePrimitiveArrayCritical, jniEnv, array, carray, mode)
1289#ifndef JNIUtilGetStringCritical
1290#define JNIUtilGetStringCritical(jniEnv, string, isCopy) \
1291 _JNIUtilWrapMacro_Created(GetStringCritical, jniEnv, string, isCopy)
1294#ifndef JNIUtilReleaseStringCritical
1295#define JNIUtilReleaseStringCritical(jniEnv, string, carray) \
1296 _JNIUtilWrapMacro_Released_1(ReleaseStringCritical, jniEnv, string, carray)
1299#ifndef JNIUtilNewWeakGlobalRef
1300#define JNIUtilNewWeakGlobalRef(jniEnv, obj) \
1301 _JNIUtilWrapMacro_Created(NewWeakGlobalRef, jniEnv, obj)
1304#ifndef JNIUtilDeleteWeakGlobalRef
1305#define JNIUtilDeleteWeakGlobalRef(jniEnv, obj) \
1306 _JNIUtilWrapMacro_Released_0(DeleteWeakGlobalRef, jniEnv, obj)
1309#ifndef JNIUtilExceptionCheck
1310#define JNIUtilExceptionCheck(jniEnv) \
1311 _JNIUtilWrapMacro_FuncCalled(ExceptionCheck, jniEnv)
1314#ifndef JNIUtilNewDirectByteBuffer
1315#define JNIUtilNewDirectByteBuffer(jniEnv, address, capacity) \
1316 _JNIUtilWrapMacro_Created(NewDirectByteBuffer, jniEnv, address, capacity)
1319#ifndef JNIUtilGetDirectBufferAddress
1320#define JNIUtilGetDirectBufferAddress(jniEnv, buf) \
1321 _JNIUtilWrapMacro_FuncCalled(GetDirectBufferAddress, jniEnv, buf)
1324#ifndef JNIUtilGetDirectBufferCapacity
1325#define JNIUtilGetDirectBufferCapacity(jniEnv, buf) \
1326 _JNIUtilWrapMacro_FuncCalled(GetDirectBufferCapacity, jniEnv, buf)
1329#ifndef JNIUtilGetObjectRefType
1330#define JNIUtilGetObjectRefType(jniEnv, obj) \
1331 _JNIUtilWrapMacro_FuncCalled(GetObjectRefType, jniEnv, obj)
1344 JNIGlobalRef(
void) : _obj(NULL) {}
1346 JNIGlobalRef(jobject obj) : _obj(obj ? JNIUtilNewGlobalRef(JNIGetJNIEnv(), obj) : NULL) {}
1348 JNIGlobalRef(
const JNIGlobalRef &obj) : _obj(obj ? JNIUtilNewGlobalRef(JNIGetJNIEnv(), obj) : NULL) {}
1351 JNIGlobalRef &set(jobject obj) {
1352 JNIEnv *jniEnv = JNIGetJNIEnv();
1354 obj = JNIUtilNewGlobalRef(jniEnv, obj);
1359 JNIUtilDeleteGlobalRef(jniEnv, tmp);
1367 jobject get(
void)
const {
1372 JNIGlobalRef &operator = (jobject obj) {
1376 JNIGlobalRef &operator = (
const JNIGlobalRef &obj) {
1377 this->set(obj.get());
1380 operator bool (
void)
const {
1381 return _obj != NULL;
1383 operator jobject (
void)
const {
1386 operator jclass (
void)
const {
1387 return (jclass)_obj;
1389 operator jstring (
void)
const {
1390 return (jstring)_obj;
1392 operator jobjectArray (
void)
const {
1393 return (jobjectArray)_obj;
#define _JNI_EXPORT
used to export symbols
Definition JNIUtil.h:15