* src/vmcore/primitive.c (primitive_class_is_primitive): Removed.
authortwisti <none@none>
Sun, 15 Jul 2007 12:30:04 +0000 (12:30 +0000)
committertwisti <none@none>
Sun, 15 Jul 2007 12:30:04 +0000 (12:30 +0000)
* src/vmcore/primitive.h: Likewise.

* src/vmcore/class.c (class_is_primitive): New function.
(class_isanysubclass): Use class_is_primitive.
* src/vmcore/class.h: Likewise.

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

* src/native/vm/sun/jvm.c (JVM_GetProtectionDomain): Likewise.
(JVM_IsPrimitiveClass): Likewise.
(JVM_NewArray): Likewise.

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

index 09165b6f0dad3ce21e114d33fbc779a2103b0988..9e95af6b48437e9011d806f491d60501ebd8f6e5 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: java_lang_Class.c 8170 2007-06-30 14:03:18Z twisti $
+   $Id: java_lang_Class.c 8203 2007-07-15 12:30:04Z twisti $
 
 */
 
@@ -261,13 +261,10 @@ JNIEXPORT int32_t JNICALL _Jv_java_lang_Class_isInterface(JNIEnv *env, java_lang
 s4 _Jv_java_lang_Class_isPrimitive(java_lang_Class *klass)
 {
        classinfo *c;
-       bool       result;
 
        c = (classinfo *) klass;
 
-       result = primitive_class_is_primitive(c);
-
-       return result;
+       return class_is_primitive(c);
 }
 
 
@@ -435,7 +432,7 @@ java_lang_Class *_Jv_java_lang_Class_getDeclaringClass(java_lang_Class *klass)
 
        c = (classinfo *) klass;
 
-       if (!primitive_class_is_primitive(c) && (c->name->text[0] != '[')) {
+       if (!class_is_primitive(c) && (c->name->text[0] != '[')) {
                if (c->innerclasscount == 0)  /* no innerclasses exist */
                        return NULL;
     
@@ -490,7 +487,7 @@ java_objectarray *_Jv_java_lang_Class_getDeclaredClasses(java_lang_Class *klass,
        c = (classinfo *) klass;
        declaredclasscount = 0;
 
-       if (!primitive_class_is_primitive(c) && (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 72bbc5b85c0aaa19ea65bc53bdd527accb9dd94a..c7d43b3ce08fffac3a6ab31e4f0a6353019f0dfe 100644 (file)
@@ -797,7 +797,7 @@ jobject JVM_GetProtectionDomain(JNIEnv *env, jclass cls)
 
     /* Primitive types do not have a protection domain. */
 
-       if (primitive_class_is_primitive(c))
+       if (class_is_primitive(c))
                return NULL;
 }
 
@@ -889,10 +889,15 @@ jboolean JVM_IsArrayClass(JNIEnv *env, jclass cls)
 
 jboolean JVM_IsPrimitiveClass(JNIEnv *env, jclass cls)
 {
+       classinfo *c;
+
+       c = (classinfo *) cls;
+
 #if PRINTJVM
-       log_println("JVM_IsPrimitiveClass: cls=%p", cls);
+       log_println("JVM_IsPrimitiveClass(cls=%p)", cls);
 #endif
-       return primitive_class_is_primitive((classinfo *) cls);
+
+       return class_is_primitive(c);
 }
 
 
@@ -1878,6 +1883,7 @@ jobject JVM_NewArray(JNIEnv *env, jclass eltClass, jint length)
 {
        classinfo        *c;
        classinfo        *pc;
+       java_arrayheader *a;
        java_objectarray *oa;
 
        c = (classinfo *) eltClass;
@@ -1888,15 +1894,17 @@ jobject JVM_NewArray(JNIEnv *env, jclass eltClass, jint length)
 
        /* create primitive or object array */
 
-       if (primitive_class_is_primitive(c)) {
+       if (class_is_primitive(c)) {
                pc = primitive_arrayclass_get_by_name(c->name);
-               oa = builtin_newarray(length, pc);
+               a = builtin_newarray(length, pc);
+
+               return (jobject) a;
        }
        else {
                oa = builtin_anewarray(length, c);
-       }
 
-       return (jobject) oa;
+               return (jobject) oa;
+       }
 }
 
 
index ba32c9b09dae9bc73468d3f19c0c00fe0365172d..77966ee9e3867197d623b55b4a19f0ca0845af3c 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: class.c 8169 2007-06-30 12:33:50Z twisti $
+   $Id: class.c 8203 2007-07-15 12:30:04Z twisti $
 
 */
 
@@ -1498,8 +1498,7 @@ bool class_isanysubclass(classinfo *sub, classinfo *super)
 
        /* Primitive classes are only subclasses of themselves. */
 
-       if ((sub->flags & ACC_CLASS_PRIMITIVE) ||
-               (super->flags & ACC_CLASS_PRIMITIVE))
+       if (class_is_primitive(sub) || class_is_primitive(super))
                return false;
 
        /* Check for interfaces. */
@@ -1525,6 +1524,21 @@ bool class_isanysubclass(classinfo *sub, classinfo *super)
 }
 
 
+/* class_is_primitive **********************************************************
+
+   Checks if the given class is a primitive class.
+
+*******************************************************************************/
+
+bool class_is_primitive(classinfo *c)
+{
+       if (c->flags & ACC_CLASS_PRIMITIVE)
+               return true;
+
+       return false;
+}
+
+
 /* class_is_array **************************************************************
 
    Checks if the given class is an array class.
index 94ac6e297d69dc141babc1f17515c3d75fa5b77e..8e036cd36d2358e09d41e591f3ad2f0e59e91cc3 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: class.h 8169 2007-06-30 12:33:50Z twisti $
+   $Id: class.h 8203 2007-07-15 12:30:04Z twisti $
 
 */
 
@@ -80,8 +80,9 @@ typedef struct castinfo       castinfo;
 /* classinfo ******************************************************************/
 
 /* We define this dummy structure of java_lang_Class so we can
-   bootstrap cacaoh without needing a java_lang_Class.h file.  If the
-   size is big enough, is checked during runtime in vm_create. */
+   bootstrap cacaoh without needing a java_lang_Class.h file.  Whether
+   the size of the dummy structure is big enough is checked during
+   runtime in vm_create. */
 
 typedef struct {
        java_objectheader header;
@@ -352,6 +353,7 @@ methodinfo *class_resolveinterfacemethod(classinfo *c, utf *name, utf *dest, cla
 
 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);
 
index f1f2e4bef8b025486a8f0e82337d623d85c41824..8d39343b315e2880e8b4485195cf07cdea130f8c 100644 (file)
@@ -152,26 +152,6 @@ bool primitive_init(void)
 }
 
 
-/* primitive_class_is_primitive ************************************************
-
-   Check if the given class is a primitive class.
-
-*******************************************************************************/
-
-bool primitive_class_is_primitive(classinfo *c)
-{
-       int i;
-
-       /* search table of primitive classes */
-
-       for (i = 0; i < PRIMITIVETYPE_COUNT; i++)
-               if (primitivetype_table[i].class_primitive == c)
-                       return true;
-
-       return false;
-}
-
-
 /* primitive_class_get_by_name *************************************************
 
    Returns the primitive class of the given class name.
index a3873f8f2d93d052a835f7648efe35f864d6ed09..f9feb5103c7c844a73ef3ba59ef8218681125834 100644 (file)
@@ -105,7 +105,6 @@ extern primitivetypeinfo primitivetype_table[PRIMITIVETYPE_COUNT];
 /* function prototypes ********************************************************/
 
 bool       primitive_init(void);
-bool       primitive_class_is_primitive(classinfo *c);
 classinfo *primitive_class_get_by_name(utf *name);
 classinfo *primitive_class_get_by_type(int32_t type);
 classinfo *primitive_class_get_by_char(char ch);