summaryrefslogtreecommitdiff
path: root/src/jvm
diff options
context:
space:
mode:
authorJari Vetoniemi <mailroxas@gmail.com>2018-02-27 13:36:46 +0200
committerJari Vetoniemi <mailroxas@gmail.com>2018-02-27 13:43:05 +0200
commit12bfb391c7ad6d14eca2c401bf4a15636b231b33 (patch)
tree7ffc827805dca0dee770570ebfd7b184c86ef4e4 /src/jvm
parent73001513015f3dcbcd9172ee3bc4686a1e983bcb (diff)
jvm: Make java implementations optional
No need to implement crap that doesn't matter for app's functionality.
Diffstat (limited to 'src/jvm')
-rw-r--r--src/jvm/jvm.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/src/jvm/jvm.c b/src/jvm/jvm.c
index 8c1e44e..701f876 100644
--- a/src/jvm/jvm.c
+++ b/src/jvm/jvm.c
@@ -503,7 +503,7 @@ JNIEnv_CallObjectMethodV(JNIEnv *p0, jobject p1, jmethodID p2, va_list p3)
char symbol[255];
jvm_form_symbol(jnienv_get_jvm(p0), p2, symbol, sizeof(symbol));
jobject (*fun)(JNIEnv*, jobject, va_list) = wrapper_create(symbol, dlsym(RTLD_DEFAULT, symbol));
- return fun(p0, p1, p3);
+ return (fun ? fun(p0, p1, p3) : NULL);
}
static jobject
@@ -533,7 +533,7 @@ JNIEnv_CallBooleanMethodV(JNIEnv* p0, jobject p1, jmethodID p2, va_list p3)
char symbol[255];
jvm_form_symbol(jnienv_get_jvm(p0), p2, symbol, sizeof(symbol));
jboolean (*fun)(JNIEnv*, jobject, va_list) = wrapper_create(symbol, dlsym(RTLD_DEFAULT, symbol));
- return fun(p0, p1, p3);
+ return (fun ? fun(p0, p1, p3) : false);
}
static jboolean
@@ -653,7 +653,7 @@ JNIEnv_CallIntMethodV(JNIEnv* p0, jobject p1, jmethodID p2, va_list p3)
char symbol[255];
jvm_form_symbol(jnienv_get_jvm(p0), p2, symbol, sizeof(symbol));
jint (*fun)(JNIEnv*, jobject, va_list) = wrapper_create(symbol, dlsym(RTLD_DEFAULT, symbol));
- return fun(p0, p1, p3);
+ return (fun ? fun(p0, p1, p3) : 0);
}
static jint
@@ -771,8 +771,9 @@ JNIEnv_CallVoidMethodV(JNIEnv* p0, jobject p1, jmethodID p2, va_list p3)
assert(p0 && p1 && p2);
char symbol[255];
jvm_form_symbol(jnienv_get_jvm(p0), p2, symbol, sizeof(symbol));
- void (*fun)(JNIEnv*, jobject, va_list) = wrapper_create(symbol, dlsym(RTLD_DEFAULT, symbol));
- fun(p0, p1, p3);
+ void (*fun)(JNIEnv*, jobject, va_list);
+ if ((fun = wrapper_create(symbol, dlsym(RTLD_DEFAULT, symbol))))
+ fun(p0, p1, p3);
}
static void
@@ -1211,7 +1212,7 @@ JNIEnv_CallStaticObjectMethodV(JNIEnv* p0, jclass p1, jmethodID p2, va_list p3)
char symbol[255];
jvm_form_symbol(jnienv_get_jvm(p0), p2, symbol, sizeof(symbol));
jobject (*fun)(JNIEnv*, jobject, va_list) = wrapper_create(symbol, dlsym(RTLD_DEFAULT, symbol));
- return fun(p0, p1, p3);
+ return (fun ? fun(p0, p1, p3) : NULL);
}
static jobject
@@ -1479,8 +1480,9 @@ JNIEnv_CallStaticVoidMethodV(JNIEnv* p0, jclass p1, jmethodID p2, va_list p3)
assert(p0 && p1 && p2);
char symbol[255];
jvm_form_symbol(jnienv_get_jvm(p0), p2, symbol, sizeof(symbol));
- void (*fun)(JNIEnv*, jobject, va_list) = wrapper_create(symbol, dlsym(RTLD_DEFAULT, symbol));
- fun(p0, p1, p3);
+ void (*fun)(JNIEnv*, jobject, va_list);
+ if ((fun = wrapper_create(symbol, dlsym(RTLD_DEFAULT, symbol))))
+ fun(p0, p1, p3);
}
static void
@@ -1505,7 +1507,7 @@ JNIEnv_GetStaticObjectField(JNIEnv* p0, jclass p1, jfieldID p2)
char symbol[255];
jvm_form_symbol(jnienv_get_jvm(p0), (jmethodID)p2, symbol, sizeof(symbol));
jobject (*fun)(JNIEnv*, jobject) = wrapper_create(symbol, dlsym(RTLD_DEFAULT, symbol));
- return fun(p0, p1);
+ return (fun ? fun(p0, p1) : NULL);
}
static jboolean