theSq3Lite 10.0
Loading...
Searching...
No Matches
Sq3Call_jv.c
Go to the documentation of this file.
1
9/* LABEL-NO */
10
11#include <jni.h>
12#include "LibSq3Lite_jv.h"
13
16{
18
19 struct MkProcCallS const * const call = callV1;
20 JNIEnv *env = call->env;
21 MkRtSetup_RT(call->mkrt);
22
23 jobjectArray valsO = (*env)->NewObjectArray(env, num, MK(Class_String), NULL);
24 jobjectArray colsO = (*env)->NewObjectArray(env, num, MK(Class_String), NULL);
25
26 for (int i=0; i<num; i++) {
27 (*env)->SetObjectArrayElement(env, valsO, i, (*env)->NewStringUTF(env,vals[i]));
28 (*env)->SetObjectArrayElement(env, colsO, i, (*env)->NewStringUTF(env,cols[i]));
29 }
30
31 // call the function
32 if (call->class == NULL) {
33 // method call of the same class
34 (*env)->CallObjectMethod(env, call->object, call->method, valsO, colsO);
35 } else if (call->object == NULL) {
36 // static method call returning an object
37 (*env)->CallStaticObjectMethod(env, call->class, call->method, valsO, colsO);
38 } else {
39 // method call of an other class
40 (*env)->CallNonvirtualObjectMethod(env, call->object, call->class, call->method, valsO, colsO);
41 }
42 if((*env)->ExceptionCheck(env) != JNI_FALSE) goto error_lng;
43
44 return 0;
45error_lng:
46 OT_ERROR_LNG_2_META(NULL);
48 return 1;
49}
50
52NS(LiteExecV2Call) ( Sq3LiteExecV2CB_args )
53{
55
56 struct MkProcCallS const * const call = callV2;
57 JNIEnv *env = call->env;
58
59 jobject valsO = MK(MkBufferListC_ObjNew)(MK_RT_CALL env,vals);
60 jobject colsO = MK(MkBufferListC_ObjNew)(MK_RT_CALL env,cols);
61
62 // call the function
63 if (call->class == NULL) {
64 // method call of the same class
65 (*env)->CallObjectMethod(env, call->object, call->method, valsO, colsO);
66 } else if (call->object == NULL) {
67 // static method call returning an object
68 (*env)->CallStaticObjectMethod(env, call->class, call->method, valsO, colsO);
69 } else {
70 // method call of an other class
71 (*env)->CallNonvirtualObjectMethod(env, call->object, call->class, call->method, valsO, colsO);
72 }
73
74 // check on error
75 if((*env)->ExceptionCheck(env) != JNI_FALSE) {
76 // is the ERROR from "java" or "jvmkkernel"
77 OT_ERROR_LNG_2_META(NULL);
78 }
79 return MkErrorStack_0E_Check();
80}
81
82//}
#define MkErrorStack_0E_Check()
#define MkErrorStack_0E()
#define MK_RT_CALL
#define MkRtSetup_RT(r)
#define Sq3Fupu_Sq3LiteExecV2CB_callback_call_check
#define Sq3LiteExecV2CB_ret
#define Sq3Fupu_Sq3LiteExec_callback_call_check
#define Sq3Fupu_Sq3LiteExec_callback_call_args
#define Sq3Fupu_Sq3LiteExec_callback_call_ret
#define Sq3LiteExecV2CB_args