* src/vmcore/class.h (class_get_interfaces): Likewise.
* src/native/vm/java_lang_Class.c (getSuperclass): Cast return value.
(getInterfaces): Use class_get_interfaces.
* src/native/vm/sun/jvm.c (JVM_GetClassInterfaces): Likewise.
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: java_lang_Class.c 8305 2007-08-15 13:49:26Z panzi $
+ $Id: java_lang_Class.c 8307 2007-08-15 15:20:47Z twisti $
*/
super = class_get_superclass(c);
- return super;
+ return (java_lang_Class *) super;
}
java_objectarray *_Jv_java_lang_Class_getInterfaces(java_lang_Class *klass)
{
classinfo *c;
- classinfo *ic;
java_objectarray *oa;
- u4 i;
c = (classinfo *) klass;
- if (!(c->state & CLASS_LINKED))
- if (!link_class(c))
- return NULL;
-
- oa = builtin_anewarray(c->interfacescount, class_java_lang_Class);
-
- if (oa == NULL)
- return NULL;
-
- for (i = 0; i < c->interfacescount; i++) {
- ic = c->interfaces[i].cls;
-
- oa->data[i] = ic;
- }
+ oa = class_get_interfaces(c);
return oa;
}
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: jvm.c 8305 2007-08-15 13:49:26Z panzi $
+ $Id: jvm.c 8307 2007-08-15 15:20:47Z twisti $
*/
jobjectArray JVM_GetClassInterfaces(JNIEnv *env, jclass cls)
{
-#if PRINTJVM
- log_println("JVM_GetClassInterfaces: cls=%p", cls);
-#endif
- return (jobjectArray) _Jv_java_lang_Class_getInterfaces((java_lang_Class *) cls);
+ classinfo *c;
+ java_objectarray *oa;
+
+ TRACEJVMCALLS("JVM_GetClassInterfaces(env=%p, cls=%p)", env, cls);
+
+ oa = class_get_interfaces(c);
+
+ return (jobjectArray) oa;
}
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: class.c 8295 2007-08-11 17:57:24Z michi $
+ $Id: class.c 8307 2007-08-15 15:20:47Z twisti $
*/
}
+/* class_get_interfaces ********************************************************
+
+ Return an array of interfaces of the given class.
+
+*******************************************************************************/
+
+java_objectarray *class_get_interfaces(classinfo *c)
+{
+ classinfo *ic;
+ java_objectarray *oa;
+ u4 i;
+
+ if (!(c->state & CLASS_LINKED))
+ if (!link_class(c))
+ return NULL;
+
+ oa = builtin_anewarray(c->interfacescount, class_java_lang_Class);
+
+ if (oa == NULL)
+ return NULL;
+
+ for (i = 0; i < c->interfacescount; i++) {
+ ic = c->interfaces[i].cls;
+
+ oa->data[i] = (java_object_t *) ic;
+ }
+
+ return oa;
+}
+
+
/* class_get_signature *********************************************************
Return the signature of the given class. For array and primitive
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: class.h 8295 2007-08-11 17:57:24Z michi $
+ $Id: class.h 8307 2007-08-15 15:20:47Z twisti $
*/
methodinfo *class_resolveclassmethod(classinfo *c, utf *name, utf *dest, classinfo *referer, bool throwexception);
methodinfo *class_resolveinterfacemethod(classinfo *c, utf *name, utf *dest, classinfo *referer, bool throwexception);
-bool class_issubclass(classinfo *sub, classinfo *super);
-bool class_isanysubclass(classinfo *sub, classinfo *super);
-bool class_is_primitive(classinfo *c);
-bool class_is_array(classinfo *c);
-bool class_is_interface(classinfo *c);
-classinfo *class_get_superclass(classinfo *c);
-classinfo *class_get_declaringclass(classinfo *c);
+bool class_issubclass(classinfo *sub, classinfo *super);
+bool class_isanysubclass(classinfo *sub, classinfo *super);
+bool class_is_primitive(classinfo *c);
+bool class_is_array(classinfo *c);
+bool class_is_interface(classinfo *c);
+classinfo *class_get_superclass(classinfo *c);
+classinfo *class_get_declaringclass(classinfo *c);
+java_objectarray *class_get_interfaces(classinfo *c);
#if defined(ENABLE_JAVASE)
-utf *class_get_signature(classinfo *c);
+utf *class_get_signature(classinfo *c);
#endif
/* some debugging functions */