summaryrefslogtreecommitdiff
path: root/src/lib/edje/edje_smart.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/edje/edje_smart.c')
-rw-r--r--src/lib/edje/edje_smart.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/lib/edje/edje_smart.c b/src/lib/edje/edje_smart.c
index 61ff75a85e..14f1493c14 100644
--- a/src/lib/edje/edje_smart.c
+++ b/src/lib/edje/edje_smart.c
@@ -29,7 +29,7 @@ static void
_edje_smart_constructor(Eo *obj, void *class_data, va_list *list EINA_UNUSED)
{
Edje *ed = class_data;
- ed->base = eo_data_get(obj, EVAS_OBJ_SMART_CLIPPED_CLASS);
+ ed->base = eo_data_ref(obj, EVAS_OBJ_SMART_CLIPPED_CLASS);
eo_do_super(obj, MY_CLASS, eo_constructor());
eo_do(obj, evas_obj_type_set(MY_CLASS_NAME));
@@ -37,6 +37,13 @@ _edje_smart_constructor(Eo *obj, void *class_data, va_list *list EINA_UNUSED)
}
static void
+_edje_smart_destructor(Eo *obj, void *class_data, va_list *list EINA_UNUSED)
+{
+ eo_do_super(obj, MY_CLASS, eo_destructor());
+ eo_data_unref(obj, class_data);
+}
+
+static void
_dbg_info_get(Eo *eo_obj, void *_pd EINA_UNUSED, va_list *list)
{
Eo_Dbg_Info *root = (Eo_Dbg_Info *) va_arg(*list, Eo_Dbg_Info *);
@@ -341,6 +348,7 @@ _edje_smart_class_constructor(Eo_Class *klass)
{
const Eo_Op_Func_Description func_desc[] = {
EO_OP_FUNC(EO_BASE_ID(EO_BASE_SUB_ID_CONSTRUCTOR), _edje_smart_constructor),
+ EO_OP_FUNC(EO_BASE_ID(EO_BASE_SUB_ID_DESTRUCTOR), _edje_smart_destructor),
EO_OP_FUNC(EO_BASE_ID(EO_BASE_SUB_ID_DBG_INFO_GET), _dbg_info_get),
EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_ADD), _edje_smart_add),
EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_DEL), _edje_smart_del),