}
static void
-_constructor(Eobj *obj)
-{
- eobj_constructor_super(obj);
-}
-
-static void
-_destructor(Eobj *obj)
-{
- eobj_destructor_super(obj);
-}
-
-static void
_class_constructor(Eobj_Class *klass)
{
const Eobj_Op_Func_Description func_desc[] = {
EOBJ_CLASS_DESCRIPTION_OPS(&INHERIT_BASE_ID, op_desc, INHERIT_SUB_ID_LAST),
NULL,
0,
- _constructor,
- _destructor,
+ NULL,
+ NULL,
_class_constructor,
NULL
};
}
static void
-_constructor(Eobj *obj)
-{
- eobj_constructor_super(obj);
-}
-
-static void
-_destructor(Eobj *obj)
-{
- eobj_destructor_super(obj);
-}
-
-static void
_class_constructor(Eobj_Class *klass)
{
const Eobj_Op_Func_Description func_desc[] = {
EOBJ_CLASS_DESCRIPTION_OPS(&SIMPLE_BASE_ID, op_desc, SIMPLE_SUB_ID_LAST),
event_desc,
sizeof(Private_Data),
- _constructor,
- _destructor,
+ NULL,
+ NULL,
_class_constructor,
NULL
};
eobj_constructor_error_set(obj);
}
-static void
-_destructor(Eobj *obj)
-{
- eobj_destructor_super(obj);
-}
-
const Eobj_Class *
simple2_class_get(void)
{
NULL,
0,
_constructor,
- _destructor,
+ NULL,
NULL,
NULL
};
(void) obj;
}
-static void
-_destructor(Eobj *obj)
-{
- eobj_destructor_super(obj);
-}
-
const Eobj_Class *
simple3_class_get(void)
{
NULL,
0,
_constructor,
- _destructor,
+ NULL,
NULL,
NULL
};
static Eobj_Class *_my_class = NULL;
-static void
-_constructor(Eobj *obj)
-{
- eobj_constructor_super(obj);
-}
-
-static void
-_destructor(Eobj *obj)
-{
- eobj_destructor_super(obj);
-}
-
const Eobj_Class *
simple4_class_get(void)
{
EOBJ_CLASS_DESCRIPTION_OPS(NULL, NULL, 0),
NULL,
0,
- _constructor,
- _destructor,
+ NULL,
+ NULL,
NULL,
NULL
};
}
static void
-_destructor(Eobj *obj)
-{
- eobj_destructor_super(obj);
-
- //Widget_Data *wd = eobj_data_get(obj, _my_class);
- /* FIXME: Commented out because it's automatically done because our tree
- * is not made of only eobj */
-// evas_object_del(wd->bx);
-}
-
-static void
_class_constructor(Eobj_Class *klass)
{
const Eobj_Op_Func_Description func_desc[] = {
NULL,
sizeof(Widget_Data),
_constructor,
- _destructor,
+ NULL,
_class_constructor,
NULL
};
EAPI Eina_Bool eobj_shutdown(void);
#define eobj_do(object, ...) eobj_do_internal(object, __VA_ARGS__, NULL)
+/* FIXME: Change this to SUPER as well. */
#define eobj_class_do(object, klass, ...) eobj_class_do_internal(object, klass, __VA_ARGS__, NULL)
#define eobj_class_parent_do(object, klass, ...) eobj_class_do_internal(object, eobj_class_parent_get(klass), __VA_ARGS__, NULL)
_CLS_NEW_CHECK(desc);
_CLS_NEW_CHECK(desc->name);
- _CLS_NEW_CHECK(desc->constructor);
- _CLS_NEW_CHECK(desc->destructor);
klass = calloc(1, sizeof(Eobj_Class));
klass->parent = parent;
return (intptr_t) eobj_generic_data_get(obj, CONSTRUCT_ERROR_KEY);
}
+static inline void
+_eobj_constructor_default(Eobj *obj)
+{
+ eobj_constructor_super(obj);
+}
+
+static inline void
+_eobj_destructor_default(Eobj *obj)
+{
+ eobj_destructor_super(obj);
+}
+
static void
eobj_class_constructor(Eobj *obj, const Eobj_Class *klass)
{
extn->klass->desc->constructor(obj);
}
- klass->desc->constructor(obj);
+ if (klass->desc->constructor)
+ klass->desc->constructor(obj);
+ else
+ _eobj_constructor_default(obj);
}
static void
if (!klass)
return;
- klass->desc->destructor(obj);
+ if (klass->desc->destructor)
+ klass->desc->destructor(obj);
+ else
+ _eobj_destructor_default(obj);
EINA_INLIST_REVERSE_FOREACH(klass->extensions, extn)
{