efl gfx_path: fix memory leak.
authorHermet Park <chuneon.park@samsung.com>
Wed, 27 May 2020 06:34:24 +0000 (15:34 +0900)
committerJongmin Lee <jm105.lee@samsung.com>
Thu, 28 May 2020 01:14:45 +0000 (10:14 +0900)
his reverts commit 38be95b0b6fd93df01636ae0a7c974b32ed694a1.

The reverting patch blocks efl_canvas_vg_shape triggers efl_canvas_vg_node destructor.

That occurs massive leaks among the all nodes in the vector tree.

To fix the origin issue, we must reset path explicitly in the derived class.

@fix

src/lib/efl/interfaces/efl_gfx_path.c
src/lib/efl/interfaces/efl_gfx_path.eo

index 9852de1..18a1733 100644 (file)
@@ -1535,11 +1535,4 @@ _efl_gfx_path_copy_from(Eo *obj, Efl_Gfx_Path_Data *pd, const Eo *dup_from)
    _efl_gfx_path_path_set(obj, pd, from->commands, from->points);
 }
 
-EOLIAN static void
-_efl_gfx_path_efl_object_destructor(Eo *obj, Efl_Gfx_Path_Data *pd)
-{
-   _efl_gfx_path_reset(obj, pd);
-   efl_destructor(efl_super(obj, EFL_GFX_PATH_MIXIN));
-}
-
 #include "interfaces/efl_gfx_path.eo.c"
index 42a4460..3f47497 100644 (file)
@@ -1,7 +1,7 @@
 import eina_types;
 import efl_gfx_types;
 
-mixin @beta Efl.Gfx.Path requires Efl.Object
+mixin @beta Efl.Gfx.Path
 {
    [[EFL graphics path object interface]]
    methods {
@@ -267,7 +267,4 @@ mixin @beta Efl.Gfx.Path requires Efl.Object
         ]]
       }
    }
-   implements {
-     Efl.Object.destructor;
-   }
 }