diff options
author | Jari Vetoniemi <mailroxas@gmail.com> | 2018-02-19 13:12:57 +0200 |
---|---|---|
committer | Jari Vetoniemi <mailroxas@gmail.com> | 2018-02-19 13:12:57 +0200 |
commit | 535779b6ff5cd21590e5ed3aff3c9ae4c785e34d (patch) | |
tree | 0de3478713ad5c33d90f00194702e9520e33af7a /src/libjvm-java.c | |
parent | 12f987e88031c5cbd9ff6534b9279b11219510ac (diff) |
jvm: Implement more java apis
Diffstat (limited to 'src/libjvm-java.c')
-rw-r--r-- | src/libjvm-java.c | 45 |
1 files changed, 45 insertions, 0 deletions
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 <stdarg.h> +#include <stdio.h> +#include <assert.h> +#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")))); +} |