fail_if(obj);
my_init_count = 0;
- obj = eo_add_custom(SIMPLE_CLASS, NULL, simple_constructor(7));
+ obj = eo_add(SIMPLE_CLASS, NULL);
fail_if(!obj);
-
fail_if(my_init_count != 2);
eo_do(obj, a = simple_a_get());
+ fail_if(a != 0);
+
+ my_init_count = 0;
+ obj = eo_add(SIMPLE_CLASS, NULL, simple_a_set(7));
+ fail_if(!obj);
+ fail_if(my_init_count != 2);
+ eo_do(obj, a = simple_a_get(););
fail_if(a != 7);
+ my_init_count = 0;
+ obj = eo_add(SIMPLE_CLASS, NULL, simple_b_set(6), simple_a_set(-1),
+ b = simple_b_get());
+ fail_if(obj);
+ fail_if(b != 6);
+ fail_if(my_init_count != 0);
+
eo_unref(obj);
eo_shutdown();
extern int my_init_count;
static void
-_simple_constructor(Eo *obj, void *class_data, int a)
+_constructor(Eo *obj, void *class_data EINA_UNUSED)
{
- Private_Data *pd = class_data;
-
eo_do_super(obj, MY_CLASS, eo_constructor());
- pd->a = a;
- printf("%s %d\n", __func__, pd->a);
-
my_init_count++;
}
-static void
-_constructor(Eo *obj, void *class_data EINA_UNUSED)
+static Eo*
+_finalize(Eo *obj, void *class_data EINA_UNUSED)
{
- eo_do_super(obj, MY_CLASS, eo_constructor());
+ Private_Data *pd = class_data;
- my_init_count++;
+ if (pd->a < 0) eo_error_set(obj);
+
+ return eo_do_super(obj, MY_CLASS, eo_finalize());
}
static void
static Eo_Op_Description op_descs[] = {
EO_OP_FUNC_OVERRIDE(eo_constructor, _constructor),
EO_OP_FUNC_OVERRIDE(eo_destructor, _destructor),
- EO_OP_FUNC(simple_constructor, _simple_constructor, "Construct and set A."),
+ EO_OP_FUNC_OVERRIDE(eo_finalize, _finalize),
EO_OP_FUNC(simple_a_set, _a_set, "Set property a"),
EO_OP_FUNC(simple_a_get, _a_get, "Get property a"),
EO_OP_FUNC(simple_b_set, _b_set, "Set property b"),