summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuo Jinghua <sunmoon1997@gmail.com>2009-10-31 14:37:57 +0800
committerLuo Jinghua <sunmoon1997@gmail.com>2009-10-31 14:37:57 +0800
commitfbaf3cff992ac17b322d643f39a962fd05728769 (patch)
tree52e63bbd4717e48acc6739b960e42e5e5511a331
parent5e52181dce49dd06b405f6fca11df7fb027ffc9f (diff)
milkway: readd defaut dispose implemenation to object
-rw-r--r--milkway/mw-object.c7
-rw-r--r--milkway/mw-object.h7
2 files changed, 10 insertions, 4 deletions
diff --git a/milkway/mw-object.c b/milkway/mw-object.c
index b6b0e64..51ca47e 100644
--- a/milkway/mw-object.c
+++ b/milkway/mw-object.c
@@ -92,6 +92,11 @@ mw_object_unref(void *self)
mself->type->finalize(mself);
}
+static void
+mw_object_default_dispose(mw_object_t *self)
+{
+}
+
void
mw_object_dispose(void *selfp)
{
@@ -115,7 +120,7 @@ mw_object_get_type(void)
{
static mw_object_type_t type = {
NULL, "mwobject", sizeof(mw_object_t), sizeof(mw_object_type_t), 0, 0,
- NULL, mw_object_finalize, MW_TRUE
+ mw_object_default_dispose, mw_object_finalize, MW_TRUE
};
return &type;
diff --git a/milkway/mw-object.h b/milkway/mw-object.h
index 22bef62..de268ba 100644
--- a/milkway/mw-object.h
+++ b/milkway/mw-object.h
@@ -54,12 +54,13 @@ struct mw_object {
#define MW_SUPER_TYPE_CAST(self, type) ((type*)MW_SUPER_TYPE(self))
#define MW_SUPER_TYPE_BASE(self, base) ((mw_object_type_t*)mw_object_get_super_type(self, base))
#define MW_SUPER_TYPE_MTH(self, base, type, mth) ((type*)MW_SUPER_TYPE_BASE(self, base))->mth
-#define MW_SUPER_FINALIZE(self, base) MW_SUPER_TYPE_MTH(self, base, mw_object_type_t, finalize)
+#define MW_SUPER_FINALIZE(self, base) MW_SUPER_TYPE_MTH(self, base, mw_object_type_t, finalize)
+#define MW_SUPER_DISPOSE(self, base) MW_SUPER_TYPE_MTH(self, base, mw_object_type_t, dispose)
#define MW_TYPE_SUPER(type) ((mw_object_type_t*)(((mw_object_type_t*)(type))->parent))
#define MW_PRIV_ALIGN(size) ((size + 15) & ~15)
-#define MW_GET_PRIV(self, type) ((char*)self + NW_TYPE(self)->size + \
- (mw_object_type_t*)(type)->priv_offset)
+#define MW_GET_PRIV(self, type) ((void*)((char*)self + MW_TYPE(self)->size + \
+ (mw_object_type_t*)(type)->priv_offset))
typedef void (*mw_object_type_init_func_t)(mw_object_type_t*);