11#define HSD_OBJ_NOREF ((u16) - 1)
13#define HSD_OBJ(o) ((HSD_Obj*) o)
14#define HSD_OBJECT_INFO(o) (o.parent.parent)
15#define HSD_OBJECT_METHOD(o) (o->parent.parent.class_info)
16#define HSD_OBJECT_PARENT_INFO(o) ((o)->parent.parent.head.parent)
18typedef enum _HSD_Type {
38#define MASK_OF(type) (1 << ((type) - 1))
40typedef enum _HSD_TypeMask {
66typedef struct _HSD_ObjInfo {
67 struct _HSD_ClassInfo parent;
80 return HSD_OBJ(o)->ref_count-- == 0;
102 return HSD_OBJ(o)->ref_count_individual;
108 if ((ret = (
HSD_OBJ(o)->ref_count_individual == 0))) {
111 HSD_OBJ(o)->ref_count_individual -= 1;
112 return HSD_OBJ(o)->ref_count_individual == 0;
117 HSD_OBJ(o)->ref_count_individual++;
#define HSD_ASSERT(line, cond)
Definition debug.h:21
void ObjInfoInit(void)
Definition object.c:6
#define HSD_OBJ_NOREF
Definition object.h:11
HSD_Type
Definition object.h:18
@ JOBJ_TYPE
Definition object.h:24
@ MOBJ_TYPE
Definition object.h:26
@ ROBJ_TYPE
Definition object.h:28
@ POBJ_TYPE
Definition object.h:27
@ AOBJ_TYPE
Definition object.h:19
@ HSD_MAX_TYPE
Definition object.h:35
@ DOBJ_TYPE
Definition object.h:21
@ COBJ_TYPE
Definition object.h:20
@ FOG_TYPE
Definition object.h:23
@ RENDER_TYPE
Definition object.h:31
@ LOBJ_TYPE
Definition object.h:25
@ CBOBJ_TYPE
Definition object.h:34
@ FOBJ_TYPE
Definition object.h:22
@ TOBJ_TYPE
Definition object.h:29
@ TEVREG_TYPE
Definition object.h:33
@ CHAN_TYPE
Definition object.h:32
@ WOBJ_TYPE
Definition object.h:30
#define MASK_OF(type)
Definition object.h:38
static bool ref_DEC(void *o)
Definition object.h:74
static void iref_INC(void *o)
Definition object.h:115
#define HSD_OBJ(o)
Definition object.h:13
HSD_ClassInfo hsdObj
Definition object.c:3
HSD_TypeMask
Definition object.h:40
@ RENDER_MASK
Definition object.h:53
@ AOBJ_MASK
Definition object.h:41
@ ROBJ_MASK
Definition object.h:50
@ COBJ_MASK
Definition object.h:42
@ WOBJ_MASK
Definition object.h:52
@ ALL_TYPE_MASK
Definition object.h:57
@ CBOBJ_MASK
Definition object.h:56
@ FOG_MASK
Definition object.h:45
@ JOBJ_MASK
Definition object.h:46
@ CHAN_MASK
Definition object.h:54
@ TEVREG_MASK
Definition object.h:55
@ POBJ_MASK
Definition object.h:49
@ DOBJ_MASK
Definition object.h:43
@ FOBJ_MASK
Definition object.h:44
@ MOBJ_MASK
Definition object.h:48
@ TOBJ_MASK
Definition object.h:51
@ LOBJ_MASK
Definition object.h:47
static int iref_CNT(void *o)
Definition object.h:100
static void ref_INC(void *o)
Definition object.h:83
static int ref_CNT(void *o)
Definition object.h:91
static bool iref_DEC(void *o)
Definition object.h:105
#define NULL
A null pointer.
Definition stddef.h:19
struct _HSD_Class parent
Definition object.h:61
u16 ref_count_individual
Definition object.h:63
u16 ref_count
Definition object.h:62