#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/jit/builtin.hpp"
#include "vm/exceptions.hpp"
* 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)
{
if (obj == NULL) {
exceptions_throw_nullpointerexception();
* 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);
}
* 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
}
* 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
}
* 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
}
*******************************************************************************/
-// 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);
}