12#include "LibMkKernel_jv.h"
24 if (
object == NULL &&
class == NULL) {
29 JavaErrorCheckNULL (call->object = (*env)->NewGlobalRef(env,
object));
32 JavaErrorCheckNULL (call->class = (*env)->NewGlobalRef(env,
class));
35 call->hasArg = hasArg;
37 call->method = method;
40 if (call->object) (*env)->DeleteGlobalRef(env, call->object);
41 if (call->class) (*env)->DeleteGlobalRef(env, call->class);
46void MK(ProcFree) (
struct MkProcCallS ** callP)
48 if (callP == NULL)
return;
49 struct MkProcCallS * call = *callP;
50 JNIEnv *env = call->env;
51 if (call->object != NULL) (*env)->DeleteGlobalRef(env, call->object);
52 if (call->class != NULL) (*env)->DeleteGlobalRef(env, call->class );
61 if (dataP == NULL)
return;
62 MK(ProcFree)((
struct MkProcCallS **)dataP);
73 struct MkProcCallS const *
const call = (
struct MkProcCallS const *
const) __data__;
74 JNIEnv *env = call->env;
76 jstring typeNameO = (*env)->NewStringUTF(env,typeName);
79 if (call->class == NULL) {
81 (*env)->CallVoidMethod(env, call->object, call->method, typeNameO, typeHdl, objHdl);
82 }
else if (call->object == NULL) {
84 (*env)->CallStaticVoidMethod(env, call->class, call->method, typeNameO, typeHdl, objHdl);
87 (*env)->CallNonvirtualVoidMethod(env, call->object, call->class, call->method, typeNameO, typeHdl, objHdl);
91 if((*env)->ExceptionCheck(env) != JNI_FALSE) {
#define MkErrorStack_0E_Check()
MkErrorE
collection for the different error-codes …
@ MK_OK
(persistent) everything is OK.
MK_PTRB * MK_PTR
generic pointer data-type
#define MkObjectC_TT
class as MkTypeS-class-type, useable in a class-macro as: class##_TT …
static bool MkSelfExists(MK_OBJN obj)
Check if the MkObjectS::self exists …
MK_PTR MkSysCalloc(MK_OBJN fmtobj, size_t const nmemb, size_t const size)
calloc syscall with jvmkkernel error plugin
#define MkSysFree(pointer)
#define MkObjectDeleteCallF_CHECK
validate call to MkObjectDeleteCallF
#define MkObjectDeleteCallF_ARGS
the MkObjectDeleteCallF arguments with default names
#define MkObjectDeleteFreeF_ARGS
the MkObjectDeleteFreeF arguments with default names