* src/vm/javaobjects.hpp (java_lang_Object): Made constructors public.
authorMichael Starzinger <michi@complang.tuwien.ac.at>
Tue, 19 Aug 2008 12:56:17 +0000 (14:56 +0200)
committerMichael Starzinger <michi@complang.tuwien.ac.at>
Tue, 19 Aug 2008 12:56:17 +0000 (14:56 +0200)
* src/native/jni.cpp (jni_FromReflectedMethod): Use java_lang_Object to
determine class of passed reflected method object.

src/native/jni.cpp
src/vm/javaobjects.hpp

index 76dbd1cfbe982e5965a260c5e97882feee155785..00b6afd8f8fcd49853d74493c61f84035ad51a7b 100644 (file)
@@ -1448,24 +1448,21 @@ jboolean _Jv_JNI_IsInstanceOf(JNIEnv *env, jobject obj, jclass clazz)
 jmethodID jni_FromReflectedMethod(JNIEnv *env, jobject method)
 {
 #if defined(ENABLE_JAVASE)
-       java_handle_t* o;
        methodinfo*    m;
 
        TRACEJNICALLS(("jni_FromReflectedMethod(env=%p, method=%p)", env, method));
 
-       o = (java_handle_t *) method;
+       java_lang_Object o(method);
 
-       if (o == NULL)
+       if (o.is_null())
                return NULL;
 
-       // FIXME We can't access the object here directly.
-       if (o->vftbl->clazz == class_java_lang_reflect_Constructor) {
+       if (o.get_Class() == class_java_lang_reflect_Constructor) {
                java_lang_reflect_Constructor rc(method);
                m = rc.get_method();
        }
        else {
-               // FIXME We can't access the object here directly.
-               assert(o->vftbl->clazz == class_java_lang_reflect_Method);
+               assert(o.get_Class() == class_java_lang_reflect_Method);
 
                java_lang_reflect_Method rm(method);
                m = rm.get_method();
@@ -3244,7 +3241,7 @@ void _Jv_JNI_DeleteWeakGlobalRef(JNIEnv* env, jweak ref)
    argument.
 
 *******************************************************************************/
-    
+
 jobject jni_NewGlobalRef(JNIEnv* env, jobject obj)
 {
        hashtable_global_ref_entry *gre;
index c8f25a5d6ec068880dfb413062aff2b1e3917609..c3b7a6d9a7ee3dbeb22b114ee161ded7412d1a8c 100644 (file)
@@ -179,13 +179,12 @@ protected:
        // Handle of Java object.
        java_handle_t* _handle;
 
-protected:
+public:
        java_lang_Object() : _handle(NULL) {}
        java_lang_Object(java_handle_t* h) : _handle(h) {}
        java_lang_Object(jobject h) : _handle((java_handle_t*) h) {}
        virtual ~java_lang_Object() {}
 
-public:
        // Getters.
        virtual inline java_handle_t* get_handle() const { return _handle; }
        inline vftbl_t*               get_vftbl () const;