hermet pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=89e34f351ea7c4aebe92abfc84631a0ef6136114

commit 89e34f351ea7c4aebe92abfc84631a0ef6136114
Author: Hermet Park <chuneon.p...@samsung.com>
Date:   Wed May 27 15:34:24 2020 +0900

    efl gfx_path: fix memory leak.
    
    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  | 7 -------
 src/lib/efl/interfaces/efl_gfx_path.eo | 5 +----
 2 files changed, 1 insertion(+), 11 deletions(-)

diff --git a/src/lib/efl/interfaces/efl_gfx_path.c 
b/src/lib/efl/interfaces/efl_gfx_path.c
index 9852de1498..18a1733da0 100644
--- a/src/lib/efl/interfaces/efl_gfx_path.c
+++ b/src/lib/efl/interfaces/efl_gfx_path.c
@@ -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"
diff --git a/src/lib/efl/interfaces/efl_gfx_path.eo 
b/src/lib/efl/interfaces/efl_gfx_path.eo
index 42a44607ac..3f47497da9 100644
--- a/src/lib/efl/interfaces/efl_gfx_path.eo
+++ b/src/lib/efl/interfaces/efl_gfx_path.eo
@@ -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;
-   }
 }

-- 


Reply via email to