Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: global.h 8318 2007-08-16 10:05:34Z michi $
-
*/
#define ACC_CLASS_REFLECT_MASK 0x0000ffff/* flags reported by reflection */
-#define ACC_CLASS_PRIMITIVE 0x00010000/* class is a primitive class */
+#define ACC_CLASS_PRIMITIVE 0x00010000
+#define ACC_CLASS_MEMBER 0x00020000
+#define ACC_CLASS_ANONYMOUS 0x00040000
-#define ACC_CLASS_HAS_POINTERS 0x00020000/* instance contains pointers */
+#define ACC_CLASS_HAS_POINTERS 0x00080000/* instance contains pointers */
-#define ACC_CLASS_REFERENCE_MASK 0x001c0000
-#define ACC_CLASS_REFERENCE_SOFT 0x00040000
-#define ACC_CLASS_REFERENCE_WEAK 0x00080000
-#define ACC_CLASS_REFERENCE_PHANTOM 0x00100000
+#define ACC_CLASS_REFERENCE_MASK 0x00700000
+#define ACC_CLASS_REFERENCE_SOFT 0x00100000
+#define ACC_CLASS_REFERENCE_WEAK 0x00200000
+#define ACC_CLASS_REFERENCE_PHANTOM 0x00400000
/* special flags used in methodinfo *******************************************/
*******************************************************************************/
-#define HDRFLAG_FLC 0x01
+#define HDRFLAG_FLC 0x01
+#define HDRFLAG_MARK1 0x02
+#define HDRFLAG_MARK2 0x04
+#define HDRFLAG_UNCOLLECTABLE 0x08
+#define HDRFLAG_HASH_TAKEN 0x10
+#define HDRFLAG_HASH_ATTACHED 0x20
+#define HDRFLAG_REFERENCING 0x40
struct java_object_t { /* header for all objects */
struct _vftbl *vftbl; /* pointer to virtual function table */
*******************************************************************************/
-#if 0
+#if defined(ENABLE_HANDLES)
typedef struct java_handle_t {
java_object_t *heap_object;
} java_handle_t;
-#elseif 0
-typedef union {
- java_object_t object;
- java_array_t array;
-} java_handle_t;
+
+typedef struct java_handle_objectarray_t { java_objectarray_t *heap_object; } java_handle_objectarray_t;
+typedef struct java_handle_booleanarray_t { java_booleanarray_t *heap_object; } java_handle_booleanarray_t;
+typedef struct java_handle_bytearray_t { java_bytearray_t *heap_object; } java_handle_bytearray_t;
+typedef struct java_handle_chararray_t { java_chararray_t *heap_object; } java_handle_chararray_t;
+typedef struct java_handle_shortarray_t { java_shortarray_t *heap_object; } java_handle_shortarray_t;
+typedef struct java_handle_intarray_t { java_intarray_t *heap_object; } java_handle_intarray_t;
+typedef struct java_handle_longarray_t { java_longarray_t *heap_object; } java_handle_longarray_t;
+typedef struct java_handle_floatarray_t { java_floatarray_t *heap_object; } java_handle_floatarray_t;
+typedef struct java_handle_doublearray_t { java_doublearray_t *heap_object; } java_handle_doublearray_t;
#else
typedef java_object_t java_handle_t;
typedef java_objectarray_t java_handle_objectarray_t;