* src/vmcore/class.c (class_is_primitive): New function.
authortwisti <none@none>
Wed, 6 Jun 2007 17:23:42 +0000 (17:23 +0000)
committertwisti <none@none>
Wed, 6 Jun 2007 17:23:42 +0000 (17:23 +0000)
* src/vmcore/class.h (class_is_primitive): Added.

* src/native/vm/java_lang_Class.c (isPrimitive): Use
class_is_primitive.
(getDeclaringClass): Likewise.
(getDeclaredClasses): Likewise.

src/native/vm/java_lang_Class.c
src/vmcore/class.c
src/vmcore/class.h

index de3882973225c6a8984296be725369be205fd267..b85254ca0b8a68c9cbecda6f3ec936b842c20468 100644 (file)
 #include "vm/exceptions.h"
 #include "vm/global.h"
 #include "vm/initialize.h"
+#include "vm/resolve.h"
 #include "vm/stringlocal.h"
 
 #include "vmcore/class.h"
 #include "vmcore/loader.h"
-#include "vm/resolve.h"
 
 
 /*
@@ -269,17 +269,13 @@ s4 _Jv_java_lang_Class_isInterface(java_lang_Class *klass)
 s4 _Jv_java_lang_Class_isPrimitive(java_lang_Class *klass)
 {
        classinfo *c;
-       s4         i;
+       bool       result;
 
        c = (classinfo *) klass;
 
-       /* search table of primitive classes */
+       result = class_is_primitive(c);
 
-       for (i = 0; i < PRIMITIVETYPE_COUNT; i++)
-               if (primitivetype_table[i].class_primitive == c)
-                       return true;
-
-       return false;
+       return result;
 }
 
 
@@ -447,7 +443,7 @@ java_lang_Class *_Jv_java_lang_Class_getDeclaringClass(java_lang_Class *klass)
 
        c = (classinfo *) klass;
 
-       if (!_Jv_java_lang_Class_isPrimitive(klass) && (c->name->text[0] != '[')) {
+       if (!class_is_primitive(c) && (c->name->text[0] != '[')) {
                if (c->innerclasscount == 0)  /* no innerclasses exist */
                        return NULL;
     
@@ -502,7 +498,7 @@ java_objectarray *_Jv_java_lang_Class_getDeclaredClasses(java_lang_Class *klass,
        c = (classinfo *) klass;
        declaredclasscount = 0;
 
-       if (!_Jv_java_lang_Class_isPrimitive(klass) && (c->name->text[0] != '[')) {
+       if (!class_is_primitive(c) && (c->name->text[0] != '[')) {
                /* determine number of declared classes */
 
                for (i = 0; i < c->innerclasscount; i++) {
index 2a884888950331c75317e8fad2a60aecfcbd1ca7..af8da72e00f3c3cfbfc7ef02c1b6dc27efd37d08 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: class.c 7851 2007-05-02 19:57:07Z twisti $
+   $Id: class.c 8024 2007-06-06 17:23:42Z twisti $
 
 */
 
@@ -1364,6 +1364,26 @@ fieldinfo *class_resolvefield(classinfo *c, utf *name, utf *desc,
 }
 
 
+/* class_is_primitive **********************************************************
+
+   Check if the given class is a primitive class.
+
+*******************************************************************************/
+
+bool class_is_primitive(classinfo *c)
+{
+       s4 i;
+
+       /* search table of primitive classes */
+
+       for (i = 0; i < PRIMITIVETYPE_COUNT; i++)
+               if (primitivetype_table[i].class_primitive == c)
+                       return true;
+
+       return false;
+}
+
+
 /* class_issubclass ************************************************************
 
    Checks if sub is a descendant of super.
index 7ee2800a90827dcce59972e37f37bfa6d0cabe00..b8ee495aaef53ecec399cef92a6c3034f975851c 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: class.h 7783 2007-04-20 13:28:27Z twisti $
+   $Id: class.h 8024 2007-06-06 17:23:42Z twisti $
 
 */
 
@@ -337,6 +337,8 @@ methodinfo *class_resolvemethod(classinfo *c, utf *name, utf *dest);
 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_is_primitive(classinfo *c);
+
 bool class_issubclass(classinfo *sub, classinfo *super);
 bool class_isanysubclass(classinfo *sub, classinfo *super);