#include "category.h" #include "primitive_desc.h" #include "primitives.h" #include "T5Class4lang4java.h" #include "java_string.h" #include "java_array_methods.h" #include "backend.h" #define PRIMITIVE_INIT(type) \ { { &fi5cdescT5Class4lang4java }, \ NULL, \ Value, \ sizeof(type) } struct value_header boolean_desc = PRIMITIVE_INIT( jboolean ); struct value_header char_desc = PRIMITIVE_INIT( jchar ); struct value_header byte_desc = PRIMITIVE_INIT( jbyte ); struct value_header short_desc = PRIMITIVE_INIT( jshort ); struct value_header int_desc = PRIMITIVE_INIT( jint ); struct value_header long_desc = PRIMITIVE_INIT( jlong ); struct value_header float_desc = PRIMITIVE_INIT( jfloat ); struct value_header double_desc = PRIMITIVE_INIT( jdouble ); #ifdef HAVE_MONITORS #define INIT_CLASS_OBJECT(desc, name) do { \ monitor_init(&((desc).class_object.monitor)); \ (desc).class_name = java_string_build_8(name); \ } while(0) #else #define INIT_CLASS_OBJECT(desc, name) do { \ (desc).class_name = java_string_build_8(name); \ } while(0) #endif void value_desc_init() { INIT_CLASS_OBJECT(boolean_desc, "boolean"); INIT_CLASS_OBJECT(char_desc, "char"); INIT_CLASS_OBJECT(byte_desc, "byte"); INIT_CLASS_OBJECT(short_desc, "short"); INIT_CLASS_OBJECT(int_desc, "int"); INIT_CLASS_OBJECT(long_desc, "long"); INIT_CLASS_OBJECT(float_desc, "float"); INIT_CLASS_OBJECT(double_desc, "double"); INIT_CLASS_OBJECT(*java_array_desc, "JavaArray"); /* this one is temporary */ }