From 535779b6ff5cd21590e5ed3aff3c9ae4c785e34d Mon Sep 17 00:00:00 2001 From: Jari Vetoniemi Date: Mon, 19 Feb 2018 13:12:57 +0200 Subject: jvm: Implement more java apis --- src/libjvm-java.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/libjvm-java.c (limited to 'src/libjvm-java.c') diff --git a/src/libjvm-java.c b/src/libjvm-java.c new file mode 100644 index 0000000..64dee13 --- /dev/null +++ b/src/libjvm-java.c @@ -0,0 +1,45 @@ +#include +#include +#include +#include "jvm/jni.h" + +jclass +java_lang_Object_getClass(JNIEnv *env, jobject object, va_list args) +{ + assert(env && object); + return (*env)->GetObjectClass(env, object); +} + +jobject +java_lang_Class_getClassLoader(JNIEnv *env, jobject object, va_list args) +{ + assert(env && object); + static jobject sv; + return (sv ? sv : (sv = (*env)->AllocObject(env, (*env)->FindClass(env, "java/lang/ClassLoader")))); +} + +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)); + va_end(args); + return NULL; +} + +jobject +java_util_Map_entrySet(JNIEnv *env, jobject object, va_list args) +{ + assert(env && object); + static jobject sv; + return (sv ? sv : (sv = (*env)->AllocObject(env, (*env)->FindClass(env, "java/util/Set")))); +} + +jobject +java_util_Set_iterator(JNIEnv *env, jobject object, va_list args) +{ + assert(env && object); + static jobject sv; + return (sv ? sv : (sv = (*env)->AllocObject(env, (*env)->FindClass(env, "java/util/Iterator")))); +} -- cgit v1.2.3