* src/vmcore/class.c (class_get_classloader): New function.
authorChristian Thalinger <twisti@complang.tuwien.ac.at>
Wed, 5 Sep 2007 11:03:05 +0000 (13:03 +0200)
committerChristian Thalinger <twisti@complang.tuwien.ac.at>
Wed, 5 Sep 2007 11:03:05 +0000 (13:03 +0200)
* src/vmcore/class.h: Likewise.
* src/native/vm/java_lang_Class.c
(_Jv_java_lang_Class_getClassLoader): Removed.
* src/native/vm/java_lang_Class.h: Likewise.
* src/native/vm/gnu/java_lang_VMClass.c (getClassLoader): Use
class_get_classloader.
* src/native/vm/sun/jvm.c (JVM_GetClassLoader): Likewise.

src/native/vm/gnu/java_lang_VMClass.c
src/native/vm/java_lang_Class.c
src/native/vm/java_lang_Class.h
src/native/vm/sun/jvm.c
src/vmcore/class.c
src/vmcore/class.h

index 145d2aeacbe6a760813e162fabaa75da765b6be0..b5b86d4f826574a1639b4b12a1b2e003cfe9509d 100644 (file)
@@ -267,7 +267,13 @@ JNIEXPORT java_handle_objectarray_t* JNICALL Java_java_lang_VMClass_getDeclaredC
  */
 JNIEXPORT java_lang_ClassLoader* JNICALL Java_java_lang_VMClass_getClassLoader(JNIEnv *env, jclass clazz, java_lang_Class *klass)
 {
-       return _Jv_java_lang_Class_getClassLoader(klass);
+       classinfo   *c;
+       classloader *cl;
+
+       c  = LLNI_classinfo_unwrap(klass);
+       cl = class_get_classloader(c);
+
+       return cl;
 }
 
 
index d404ba300c83850f8ce3e04fa835f9bc2e525561..8fed847d527ab4f97a2bfc5fcb685f2f7e0ceeb2 100644 (file)
@@ -561,32 +561,6 @@ java_handle_objectarray_t *_Jv_java_lang_Class_getDeclaredConstructors(java_lang
        return oa;
 }
 
-
-/*
- * Class:     java/lang/Class
- * Method:    getClassLoader
- * Signature: ()Ljava/lang/ClassLoader;
- */
-java_lang_ClassLoader *_Jv_java_lang_Class_getClassLoader(java_lang_Class *klass)
-{
-       classinfo   *c;
-       classloader *cl;
-
-       c  = LLNI_classinfo_unwrap(klass);
-       cl = c->classloader;
-
-       if (cl == NULL)
-               return NULL;
-       else
-#if defined(ENABLE_HANDLES)
-               /* the classloader entry itself is the handle */
-               return (java_lang_ClassLoader *) cl;
-#else
-               /* get the object out of the classloader entry */
-               return (java_lang_ClassLoader *) cl->object;
-#endif
-}
-
 #endif /* defined(ENABLE_JAVASE) */
 
 
index 124ccbc6aa1e1f4a6c2d5543a82074bea4d99bc0..35441ae84c7cae91ce5884fddb0f7731bdb94cd6 100644 (file)
@@ -72,7 +72,6 @@ java_handle_objectarray_t     *_Jv_java_lang_Class_getDeclaredClasses(java_lang_
 java_handle_objectarray_t     *_Jv_java_lang_Class_getDeclaredFields(java_lang_Class *klass, s4 publicOnly);
 java_handle_objectarray_t     *_Jv_java_lang_Class_getDeclaredMethods(java_lang_Class *klass, s4 publicOnly);
 java_handle_objectarray_t     *_Jv_java_lang_Class_getDeclaredConstructors(java_lang_Class *klass, s4 publicOnly);
-java_lang_ClassLoader         *_Jv_java_lang_Class_getClassLoader(java_lang_Class *klass);
 #endif
 
 JNIEXPORT int32_t JNICALL      _Jv_java_lang_Class_isArray(JNIEnv *env, java_lang_Class *this);
index fad6e3e6c5dfc8e5d3daaef824bf0567cc861f53..4bdd135e022ff7017e6df8345e2a1d34f91ae68f 100644 (file)
@@ -804,9 +804,15 @@ jobjectArray JVM_GetClassInterfaces(JNIEnv *env, jclass cls)
 
 jobject JVM_GetClassLoader(JNIEnv *env, jclass cls)
 {
+       classinfo   *c;
+       classloader *cl;
+
        TRACEJVMCALLS("JVM_GetClassLoader(env=%p, cls=%p)", env, cls);
 
-       return (jobject) _Jv_java_lang_Class_getClassLoader((java_lang_Class *) cls);
+       c  = LLNI_classinfo_unwrap(cls);
+       cl = class_get_classloader(c);
+
+       return (jobject) cl;
 }
 
 
index 722aafeec6d949fbe30dd367d8a7372d0a00305c..d5442de4c5d691834414438812192b4888a8f4be 100644 (file)
@@ -1691,6 +1691,34 @@ bool class_is_memberclass(classinfo *c)
 }
 
 
+/* class_get_classloader *******************************************************
+
+   Return the classloader of the given class.
+
+*******************************************************************************/
+
+classloader *class_get_classloader(classinfo *c)
+{
+       classloader *cl;
+
+       cl = c->classloader;
+
+       if (cl == NULL)
+               return NULL;
+
+#if defined(ENABLE_HANDLES)
+       /* The classloader entry itself is the handle. */
+
+       return cl;
+#else
+       /* Get the object out of the classloader entry. */
+       /* Cast to prevent warning (will be removed). */
+
+       return (classloader *) cl->object;
+#endif
+}
+
+
 /* class_get_superclass ********************************************************
 
    Return the super class of the given class.
index 5ab593cf64935ba655d88a0f6908e61155fc76a9..bb436f10baaf37fdfc30944f531d5571d686974b 100644 (file)
@@ -377,6 +377,7 @@ bool                       class_is_interface(classinfo *c);
 bool                       class_is_localclass(classinfo *c);
 bool                       class_is_memberclass(classinfo *c);
 
+classloader               *class_get_classloader(classinfo *c);
 classinfo                 *class_get_superclass(classinfo *c);
 classinfo                 *class_get_componenttype(classinfo *c);
 java_handle_objectarray_t *class_get_declaredclasses(classinfo *c, bool publicOnly);