Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: java_lang_VMRuntime.c 5900 2006-11-04 17:30:44Z michi $
-
*/
#include "vm/types.h"
#include "native/jni.h"
+#include "native/llni.h"
#include "native/native.h"
-#include "native/include/java_lang_String.h" /* required by java_lang_Class.h */
-#include "native/include/java_lang_Class.h"
+#include "native/include/java_lang_String.h" /* required by j.l.C */
#include "native/include/java_lang_Object.h"
+#include "native/include/java_lang_Class.h"
+
#include "native/vm/java_lang_Class.h"
+/* native methods implemented by this file ************************************/
+
+static JNINativeMethod methods[] = {
+ { "forName", "(Ljava/lang/String;)Ljava/lang/Class;",(void *) (ptrint) &Java_java_lang_Class_forName },
+ { "newInstance", "()Ljava/lang/Object;", (void *) (ptrint) &Java_java_lang_Class_newInstance },
+ { "isInstance", "(Ljava/lang/Object;)Z", (void *) (ptrint) &Java_java_lang_Class_isInstance },
+ { "isAssignableFrom", "(Ljava/lang/Class;)Z", (void *) (ptrint) &Java_java_lang_Class_isAssignableFrom },
+ { "isInterface", "()Z", (void *) (ptrint) &_Jv_java_lang_Class_isInterface },
+ { "isArray", "()Z", (void *) (ptrint) &_Jv_java_lang_Class_isArray },
+ { "getName", "()Ljava/lang/String;", (void *) (ptrint) &Java_java_lang_Class_getName },
+};
+
+/* _Jv_java_lang_Class_init ****************************************************
+
+ Register native functions.
+
+*******************************************************************************/
+
+void _Jv_java_lang_Class_init(void)
+{
+ utf *u;
+
+ u = utf_new_char("java/lang/Class");
+
+ native_method_register(u, methods, NATIVE_METHODS_COUNT);
+}
+
+
/*
* Class: java/lang/Class
* Method: forName
*/
JNIEXPORT java_lang_Object* JNICALL Java_java_lang_Class_newInstance(JNIEnv *env, java_lang_Class* this)
{
- classinfo *c;
- java_objectheader *o;
+ classinfo *c;
+ java_handle_t *o;
- c = (classinfo *) this;
+ c = LLNI_classinfo_unwrap(this);
o = native_new_and_init(c);
}
+/*
+ * Class: java/lang/Class
+ * Method: isInstance
+ * Signature: (Ljava/lang/Object;)Z
+ */
+JNIEXPORT s4 JNICALL Java_java_lang_Class_isInstance(JNIEnv *env, java_lang_Class *this, java_lang_Object *obj)
+{
+ return _Jv_java_lang_Class_isInstance(this, obj);
+}
+
+
+/*
+ * Class: java/lang/Class
+ * Method: isAssignableFrom
+ * Signature: (Ljava/lang/Class;)Z
+ */
+JNIEXPORT s4 JNICALL Java_java_lang_Class_isAssignableFrom(JNIEnv *env, java_lang_Class *this, java_lang_Class *cls)
+{
+ return _Jv_java_lang_Class_isAssignableFrom(this, cls);
+}
+
+
/*
* Class: java/lang/Class
* Method: getName