* src/vm/primitive.cpp: Removed obsolete legacy C interface.
[cacao.git] / src / vm / primitive.hpp
index d99883d8c041ec0ab11c60c271005163799cf90b..2016786f00b27cbe57d204f22a02916ca984250a 100644 (file)
@@ -30,9 +30,9 @@
 
 #include <stdint.h>
 
-#include "vm/class.h"
+#include "vm/class.hpp"
 #include "vm/global.h"
-#include "vm/linker.h"
+#include "vm/linker.hpp"
 #include "vm/utf8.h"
 
 
@@ -40,6 +40,9 @@
 
 class Primitive {
 public:
+       static void initialize_table();
+       static void post_initialize_table();
+
        static classinfo*     get_class_by_name(utf *name);
        static classinfo*     get_class_by_type(int type);
        static classinfo*     get_class_by_char(char ch);
@@ -60,6 +63,7 @@ public:
        static java_handle_t* box(double value);
 
        static imm_union      unbox(java_handle_t *o);
+       static bool           unbox_typed(java_handle_t *o, int type, imm_union* value);
 
        static uint8_t        unbox_boolean(java_handle_t* o);
        static int8_t         unbox_byte(java_handle_t* o);
@@ -100,14 +104,14 @@ public:
 /* primitivetypeinfo **********************************************************/
 
 struct primitivetypeinfo {
-       char      *cname;                    /* char name of primitive class      */
-       utf       *name;                     /* name of primitive class           */
-       classinfo *class_wrap;               /* class for wrapping primitive type */
-       classinfo *class_primitive;          /* primitive class                   */
-       char      *wrapname;                 /* name of class for wrapping        */
-       char       typesig;                  /* one character type signature      */
-       char      *arrayname;                /* name of primitive array class     */
-       classinfo *arrayclass;               /* primitive array class             */
+       const char* cname;                   /* char name of primitive class      */
+       utf*        name;                    /* name of primitive class           */
+       classinfo*  class_wrap;              /* class for wrapping primitive type */
+       classinfo*  class_primitive;         /* primitive class                   */
+       const char* wrapname;                /* name of class for wrapping        */
+       const char  typesig;                 /* one character type signature      */
+       const char* arrayname;               /* name of primitive array class     */
+       classinfo*  arrayclass;              /* primitive array class             */
 };
 
 
@@ -122,21 +126,6 @@ extern primitivetypeinfo primitivetype_table[PRIMITIVETYPE_COUNT];
 void       primitive_init(void);
 void       primitive_postinit(void);
 
-#ifndef __cplusplus
-// Legacy C interface.
-classinfo *Primitive_get_class_by_name(utf *name);
-classinfo *Primitive_get_class_by_type(int type);
-classinfo *Primitive_get_class_by_char(char ch);
-
-classinfo *Primitive_get_arrayclass_by_name(utf *name);
-classinfo *Primitive_get_arrayclass_by_type(int type);
-
-int        Primitive_get_type_by_wrapperclass(classinfo *c);
-
-java_handle_t *Primitive_box(int type, imm_union value);
-imm_union      Primitive_unbox(java_handle_t *h);
-#endif
-
 #endif // _PRIMITIVE_HPP