From c4f2f8449ad09301e5725f69b7374d958cc5dff8 Mon Sep 17 00:00:00 2001 From: Jari Vetoniemi Date: Thu, 22 Feb 2018 18:40:15 +0200 Subject: refactor commit --- src/libjvm-java.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'src/libjvm-java.c') diff --git a/src/libjvm-java.c b/src/libjvm-java.c index e87b9a4..a043a30 100644 --- a/src/libjvm-java.c +++ b/src/libjvm-java.c @@ -6,6 +6,8 @@ #include #include #include "jvm/jni.h" +#include "linker/dlfcn.h" +#include "wrapper/verbose.h" void java_lang_System_load(JNIEnv *env, jobject object, va_list args) @@ -13,16 +15,20 @@ java_lang_System_load(JNIEnv *env, jobject object, va_list args) assert(env && object); const char *lib = (*env)->GetStringUTFChars(env, va_arg(args, jstring), NULL); va_end(args); - printf("%s\n", lib); + verbose("%s", lib); void *handle = bionic_dlopen(lib, RTLD_NOW | RTLD_GLOBAL); assert(handle); - void* (*JNI_OnLoad)(void*, void*); - if ((JNI_OnLoad = bionic_dlsym(handle, "JNI_OnLoad"))) { + union { + void *ptr; + void* (*fun)(void*, void*); + } JNI_OnLoad; + + if ((JNI_OnLoad.ptr = bionic_dlsym(handle, "JNI_OnLoad"))) { JavaVM *vm; (*env)->GetJavaVM(env, &vm); - JNI_OnLoad(vm, NULL); + JNI_OnLoad.fun(vm, NULL); } } -- cgit v1.2.3