diff options
author | Luo Jinghua <sunmoon1997@gmail.com> | 2009-10-31 14:37:57 +0800 |
---|---|---|
committer | Luo Jinghua <sunmoon1997@gmail.com> | 2009-10-31 14:37:57 +0800 |
commit | fbaf3cff992ac17b322d643f39a962fd05728769 (patch) | |
tree | 52e63bbd4717e48acc6739b960e42e5e5511a331 | |
parent | 5e52181dce49dd06b405f6fca11df7fb027ffc9f (diff) |
milkway: readd defaut dispose implemenation to object
-rw-r--r-- | milkway/mw-object.c | 7 | ||||
-rw-r--r-- | milkway/mw-object.h | 7 |
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*); |