From fbaf3cff992ac17b322d643f39a962fd05728769 Mon Sep 17 00:00:00 2001 From: Luo Jinghua Date: Sat, 31 Oct 2009 14:37:57 +0800 Subject: milkway: readd defaut dispose implemenation to object --- milkway/mw-object.c | 7 ++++++- 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*); -- cgit v1.2.3