* src/vmcore/class.h (class_is_primitive): Added.
* src/native/vm/java_lang_Class.c (isPrimitive): Use
class_is_primitive.
(getDeclaringClass): Likewise.
(getDeclaredClasses): Likewise.
#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"
/*
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;
}
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;
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++) {
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 $
*/
}
+/* 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.
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 $
*/
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);