#include "native/llni.h"
#include "native/native.h"
-#include "native/include/java_lang_String.h" /* required by j.l.C */
-#include "native/include/java_lang_Class.h"
-
-// FIXME
-extern "C" {
-#include "native/include/java_lang_Object.h"
-}
+#if defined(ENABLE_JNI_HEADERS)
+# include "native/include/java_lang_Object.h"
+#endif
#include "threads/lock-common.h"
#include "vm/exceptions.hpp"
-/* native methods implemented by this file ************************************/
-
-static JNINativeMethod methods[] = {
- { (char*) "getClass", (char*) "()Ljava/lang/Class;", (void*) (uintptr_t) &Java_java_lang_Object_getClass },
- { (char*) "hashCode", (char*) "()I", (void*) (uintptr_t) &Java_java_lang_Object_hashCode },
- { (char*) "notify", (char*) "()V", (void*) (uintptr_t) &Java_java_lang_Object_notify },
- { (char*) "notifyAll", (char*) "()V", (void*) (uintptr_t) &Java_java_lang_Object_notifyAll },
- { (char*) "wait", (char*) "(J)V", (void*) (uintptr_t) &Java_java_lang_Object_wait },
-};
-
-
-/* _Jv_java_lang_Object_init ***************************************************
-
- Register native functions.
-
-*******************************************************************************/
-
-// FIXME
-extern "C" {
-void _Jv_java_lang_Object_init(void)
-{
- utf *u;
-
- u = utf_new_char("java/lang/Object");
-
- native_method_register(u, methods, NATIVE_METHODS_COUNT);
-}
-}
-
-
// Native functions are exported as C functions.
extern "C" {
* Method: getClass
* Signature: ()Ljava/lang/Class;
*/
-JNIEXPORT java_lang_Class* JNICALL Java_java_lang_Object_getClass(JNIEnv *env, java_lang_Object *obj)
+JNIEXPORT jclass JNICALL Java_java_lang_Object_getClass(JNIEnv *env, jobject obj)
{
classinfo *c;
LLNI_class_get(obj, c);
- return LLNI_classinfo_wrap(c);
+ return (jclass) LLNI_classinfo_wrap(c);
}
* Method: hashCode
* Signature: ()I
*/
-JNIEXPORT int32_t JNICALL Java_java_lang_Object_hashCode(JNIEnv *env, java_lang_Object *_this)
+JNIEXPORT jint JNICALL Java_java_lang_Object_hashCode(JNIEnv *env, jobject _this)
{
#if defined(ENABLE_GC_CACAO)
assert(0);
#else
- return (int32_t) ((intptr_t) _this);
+ return (int32_t) ((uintptr_t) _this);
#endif
}
* Method: notify
* Signature: ()V
*/
-JNIEXPORT void JNICALL Java_java_lang_Object_notify(JNIEnv *env, java_lang_Object *_this)
+JNIEXPORT void JNICALL Java_java_lang_Object_notify(JNIEnv *env, jobject _this)
{
#if defined(ENABLE_THREADS)
lock_notify_object((java_handle_t *) _this);
* Method: notifyAll
* Signature: ()V
*/
-JNIEXPORT void JNICALL Java_java_lang_Object_notifyAll(JNIEnv *env, java_lang_Object *_this)
+JNIEXPORT void JNICALL Java_java_lang_Object_notifyAll(JNIEnv *env, jobject _this)
{
#if defined(ENABLE_THREADS)
lock_notify_all_object((java_handle_t *) _this);
* Method: wait
* Signature: (J)V
*/
-JNIEXPORT void JNICALL Java_java_lang_Object_wait(JNIEnv *env, java_lang_Object *_this, s8 timeout)
+JNIEXPORT void JNICALL Java_java_lang_Object_wait(JNIEnv *env, jobject _this, jlong timeout)
{
#if defined(ENABLE_JVMTI)
/* Monitor Wait */
} // extern "C"
+/* native methods implemented by this file ************************************/
+
+static JNINativeMethod methods[] = {
+ { (char*) "getClass", (char*) "()Ljava/lang/Class;", (void*) (uintptr_t) &Java_java_lang_Object_getClass },
+ { (char*) "hashCode", (char*) "()I", (void*) (uintptr_t) &Java_java_lang_Object_hashCode },
+ { (char*) "notify", (char*) "()V", (void*) (uintptr_t) &Java_java_lang_Object_notify },
+ { (char*) "notifyAll", (char*) "()V", (void*) (uintptr_t) &Java_java_lang_Object_notifyAll },
+ { (char*) "wait", (char*) "(J)V", (void*) (uintptr_t) &Java_java_lang_Object_wait },
+};
+
+
+/* _Jv_java_lang_Object_init ***************************************************
+
+ Register native functions.
+
+*******************************************************************************/
+
+// FIXME
+extern "C" {
+void _Jv_java_lang_Object_init(void)
+{
+ utf *u;
+
+ u = utf_new_char("java/lang/Object");
+
+ native_method_register(u, methods, NATIVE_METHODS_COUNT);
+}
+}
+
+
/*
* These are local overrides for various environment variables in Emacs.
* Please do not remove this and leave it at the end of the file, where