From 09fc4ea761b6b774a6423bdfd92049be78e32a49 Mon Sep 17 00:00:00 2001 From: Jari Vetoniemi Date: Mon, 19 Feb 2018 13:33:53 +0200 Subject: jvm: implement more java apis --- src/jvm/jvm.c | 7 ++++--- src/libjvm-android.c | 6 ++++++ src/libjvm-java.c | 7 ++++--- 3 files changed, 14 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/jvm/jvm.c b/src/jvm/jvm.c index 130c017..72529df 100644 --- a/src/jvm/jvm.c +++ b/src/jvm/jvm.c @@ -769,9 +769,10 @@ static void JNIEnv_CallVoidMethodV(JNIEnv* p0, jobject p1, jmethodID p2, va_list p3) { assert(p0 && p1 && p2); - struct jvm *jvm = jnienv_get_jvm(p0); - struct jvm_method *method = &jvm_get_object(jvm, p2)->method; - printf("%s::%s\n", jvm_get_object(jvm, method->klass)->klass.name.data, method->name.data); + char symbol[255]; + jvm_form_symbol(jnienv_get_jvm(p0), p2, symbol, sizeof(symbol)); + void (*fun)(JNIEnv*, jobject, va_list) = create_wrapper(symbol, dlsym(RTLD_DEFAULT, symbol)); + fun(p0, p1, p3); } static void diff --git a/src/libjvm-android.c b/src/libjvm-android.c index 7cece38..d9fff44 100644 --- a/src/libjvm-android.c +++ b/src/libjvm-android.c @@ -46,3 +46,9 @@ android_content_SharedPreferences_Editor_putInt(JNIEnv *env, jobject object, va_ va_end(args); return object; } + +void +android_content_SharedPreferences_Editor_apply(JNIEnv *env, jobject object, va_list args) +{ + assert(env && object); +} diff --git a/src/libjvm-java.c b/src/libjvm-java.c index 64dee13..25e93c0 100644 --- a/src/libjvm-java.c +++ b/src/libjvm-java.c @@ -22,10 +22,11 @@ jobject java_lang_ClassLoader_findLibrary(JNIEnv *env, jobject object, va_list args) { assert(env && object); - jstring str = va_arg(args, jstring); - printf("%s\n", (*env)->GetStringUTFChars(env, str, NULL)); + char lib[255]; + snprintf(lib, sizeof(lib), "lib%s.so", (*env)->GetStringUTFChars(env, va_arg(args, jstring), NULL)); va_end(args); - return NULL; + printf("%s\n", lib); + return (*env)->NewStringUTF(env, lib); } jobject -- cgit v1.2.3