evas/vector: ref/unref root node while it's being used by vg object. 44/43244/1
authorChunEon Park <hermet@hermet.pe.kr>
Mon, 2 Feb 2015 16:01:22 +0000 (01:01 +0900)
committerSubhransu Mohanty <sub.mohanty@samsung.com>
Wed, 8 Jul 2015 02:07:40 +0000 (11:07 +0900)
Change-Id: I4cb5774b094eeabb373e69c4babde015798c5676

src/lib/evas/canvas/evas_object_vg.c
src/lib/evas/canvas/evas_vg.eo

index dc5db24..bcfda8c 100644 (file)
@@ -96,6 +96,13 @@ _evas_vg_root_node_get(Eo *obj EINA_UNUSED, Evas_VG_Data *pd)
 }
 
 void
+_evas_vg_eo_base_destructor(Eo *eo_obj, Evas_VG_Data *pd)
+{
+   eo_unref(pd->root);
+   eo_do_super(eo_obj, MY_CLASS, eo_destructor());
+}
+
+void
 _evas_vg_eo_base_constructor(Eo *eo_obj, Evas_VG_Data *pd)
 {
    Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS);
@@ -110,6 +117,8 @@ _evas_vg_eo_base_constructor(Eo *eo_obj, Evas_VG_Data *pd)
 
    /* root node */
    pd->root = eo_add(EVAS_VG_ROOT_NODE_CLASS, eo_obj);
+   eo_ref(pd->root);
+
    eo_do(eo_obj, parent = eo_parent_get());
    evas_object_inject(eo_obj, obj, evas_object_evas_get(parent));
 }
index fb5bf8f..72b1de6 100644 (file)
@@ -103,7 +103,8 @@ class Evas.VG (Evas.Object, Efl.File)
    }
    implements {
       Eo.Base.constructor;
+      Eo.Base.destructor;
       Efl.File.file.set;
       Efl.File.file.get;
    }
-}
\ No newline at end of file
+}