X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=src%2Fnative%2Fvm%2Fgnuclasspath%2Fjava_lang_VMObject.cpp;h=95e7e8cbb350f93c36213e1fdb468499cf0e0d11;hb=64f27f451ea6d99e5a2ce6d695b188bea91737d1;hp=a671f9b4f1d9a0feb5e5b2fd034f9f301cc07b61;hpb=1e6a75a4a4b61583a8869ebe8752120764ca2aef;p=cacao.git diff --git a/src/native/vm/gnuclasspath/java_lang_VMObject.cpp b/src/native/vm/gnuclasspath/java_lang_VMObject.cpp index a671f9b4f..95e7e8cbb 100644 --- a/src/native/vm/gnuclasspath/java_lang_VMObject.cpp +++ b/src/native/vm/gnuclasspath/java_lang_VMObject.cpp @@ -29,16 +29,17 @@ #include "native/jni.hpp" #include "native/llni.h" -#include "native/native.h" +#include "native/native.hpp" #if defined(ENABLE_JNI_HEADERS) # include "native/vm/include/java_lang_VMObject.h" #endif -#include "threads/lock-common.h" +#include "threads/lock.hpp" -#include "vm/builtin.h" +#include "vm/jit/builtin.hpp" #include "vm/exceptions.hpp" +#include "vm/javaobjects.hpp" #include "vm/utf8.h" @@ -50,18 +51,16 @@ extern "C" { * Method: getClass * Signature: (Ljava/lang/Object;)Ljava/lang/Class; */ -JNIEXPORT jclass JNICALL Java_java_lang_VMObject_getClass(JNIEnv *env, jclass clazz, jobject obj) +JNIEXPORT jclass JNICALL Java_java_lang_VMObject_getClass(JNIEnv* env, jclass clazz, jobject obj) { - classinfo *c; - if (obj == NULL) { exceptions_throw_nullpointerexception(); return NULL; } - LLNI_class_get(obj, c); + java_lang_Object o(obj); - return (jclass) LLNI_classinfo_wrap(c); + return (jclass) LLNI_classinfo_wrap(o.get_Class()); } @@ -70,16 +69,9 @@ JNIEXPORT jclass JNICALL Java_java_lang_VMObject_getClass(JNIEnv *env, jclass cl * Method: clone * Signature: (Ljava/lang/Cloneable;)Ljava/lang/Object; */ -JNIEXPORT jobject JNICALL Java_java_lang_VMObject_clone(JNIEnv *env, jclass clazz, jobject _this) +JNIEXPORT jobject JNICALL Java_java_lang_VMObject_clone(JNIEnv* env, jclass clazz, jobject _this) { - java_handle_t *o; - java_handle_t *co; - - o = (java_handle_t *) _this; - - co = builtin_clone(NULL, o); - - return (jobject) co; + return builtin_clone(NULL, _this); } @@ -88,10 +80,10 @@ JNIEXPORT jobject JNICALL Java_java_lang_VMObject_clone(JNIEnv *env, jclass claz * Method: notify * Signature: (Ljava/lang/Object;)V */ -JNIEXPORT void JNICALL Java_java_lang_VMObject_notify(JNIEnv *env, jclass clazz, jobject _this) +JNIEXPORT void JNICALL Java_java_lang_VMObject_notify(JNIEnv* env, jclass clazz, jobject _this) { #if defined(ENABLE_THREADS) - lock_notify_object((java_handle_t *) _this); + lock_notify_object(_this); #endif } @@ -101,10 +93,10 @@ JNIEXPORT void JNICALL Java_java_lang_VMObject_notify(JNIEnv *env, jclass clazz, * Method: notifyAll * Signature: (Ljava/lang/Object;)V */ -JNIEXPORT void JNICALL Java_java_lang_VMObject_notifyAll(JNIEnv *env, jclass clazz, jobject _this) +JNIEXPORT void JNICALL Java_java_lang_VMObject_notifyAll(JNIEnv* env, jclass clazz, jobject _this) { #if defined(ENABLE_THREADS) - lock_notify_all_object((java_handle_t *) _this); + lock_notify_all_object(_this); #endif } @@ -114,21 +106,10 @@ JNIEXPORT void JNICALL Java_java_lang_VMObject_notifyAll(JNIEnv *env, jclass cla * Method: wait * Signature: (Ljava/lang/Object;JI)V */ -JNIEXPORT void JNICALL Java_java_lang_VMObject_wait(JNIEnv *env, jclass clazz, jobject o, jlong ms, jint ns) +JNIEXPORT void JNICALL Java_java_lang_VMObject_wait(JNIEnv* env, jclass clazz, jobject o, jlong ms, jint ns) { -#if defined(ENABLE_JVMTI) - /* Monitor Wait */ - if (jvmti) jvmti_MonitorWaiting(true, o, ms); -#endif - #if defined(ENABLE_THREADS) - lock_wait_for_object((java_handle_t *) o, ms, ns); -#endif - -#if defined(ENABLE_JVMTI) - /* Monitor Waited */ - /* XXX: How do you know if wait timed out ?*/ - if (jvmti) jvmti_MonitorWaiting(false, o, 0); + lock_wait_for_object(o, ms, ns); #endif } @@ -152,16 +133,12 @@ static JNINativeMethod methods[] = { *******************************************************************************/ -// FIXME -extern "C" { void _Jv_java_lang_VMObject_init(void) { - utf *u; + utf* u = utf_new_char("java/lang/VMObject"); - u = utf_new_char("java/lang/VMObject"); - - native_method_register(u, methods, NATIVE_METHODS_COUNT); -} + NativeMethods& nm = VM::get_current()->get_nativemethods(); + nm.register_methods(u, methods, NATIVE_METHODS_COUNT); }