diff options
author | Jari Vetoniemi <mailroxas@gmail.com> | 2018-02-19 15:51:56 +0200 |
---|---|---|
committer | Jari Vetoniemi <mailroxas@gmail.com> | 2018-02-19 15:51:56 +0200 |
commit | da200d3ac0204abadd5992820486321970d689b8 (patch) | |
tree | 31b559749ff7487a420cd7f1b1b7a67aa0a9d021 /src/libjvm-java.c | |
parent | 09fc4ea761b6b774a6423bdfd92049be78e32a49 (diff) |
refactoring, fixing and implementing
messy commits yay
Diffstat (limited to 'src/libjvm-java.c')
-rw-r--r-- | src/libjvm-java.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/libjvm-java.c b/src/libjvm-java.c index 25e93c0..ed2b6ce 100644 --- a/src/libjvm-java.c +++ b/src/libjvm-java.c @@ -1,8 +1,23 @@ +#include <stdlib.h> #include <stdarg.h> #include <stdio.h> +#include <stdbool.h> #include <assert.h> +#include <err.h> +#include <dlfcn.h> #include "jvm/jni.h" +void +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); + // FIXME: should handle loading properly + // bionic_dlopen(lib, RTLD_NOW | RTLD_GLOBAL); +} + jclass java_lang_Object_getClass(JNIEnv *env, jobject object, va_list args) { @@ -22,6 +37,8 @@ jobject java_lang_ClassLoader_findLibrary(JNIEnv *env, jobject object, va_list args) { assert(env && object); + // XXX: according to docs should return absolute path, but relative is more convenient for us. + // fix if breaks anything because of this. char lib[255]; snprintf(lib, sizeof(lib), "lib%s.so", (*env)->GetStringUTFChars(env, va_arg(args, jstring), NULL)); va_end(args); @@ -44,3 +61,10 @@ java_util_Set_iterator(JNIEnv *env, jobject object, va_list args) static jobject sv; return (sv ? sv : (sv = (*env)->AllocObject(env, (*env)->FindClass(env, "java/util/Iterator")))); } + +jboolean +java_util_Iterator_hasNext(JNIEnv *env, jobject object, va_list args) +{ + assert(env && object); + return false; +} |