diff options
author | Hermet Park <chuneon.park@samsung.com> | 2020-05-27 15:34:24 +0900 |
---|---|---|
committer | Hermet Park <chuneon.park@samsung.com> | 2020-05-27 15:36:47 +0900 |
commit | 89e34f351ea7c4aebe92abfc84631a0ef6136114 (patch) | |
tree | d53af930caf7d9ab76cb7057acf2ab3ed87d4fc9 /src/lib/efl | |
parent | 11cbb5ae9352d08221a52ffe0271aa97305fe75a (diff) |
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
Diffstat (limited to 'src/lib/efl')
-rw-r--r-- | src/lib/efl/interfaces/efl_gfx_path.c | 7 | ||||
-rw-r--r-- | src/lib/efl/interfaces/efl_gfx_path.eo | 5 |
2 files changed, 1 insertions, 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) | |||
1535 | _efl_gfx_path_path_set(obj, pd, from->commands, from->points); | 1535 | _efl_gfx_path_path_set(obj, pd, from->commands, from->points); |
1536 | } | 1536 | } |
1537 | 1537 | ||
1538 | EOLIAN static void | ||
1539 | _efl_gfx_path_efl_object_destructor(Eo *obj, Efl_Gfx_Path_Data *pd) | ||
1540 | { | ||
1541 | _efl_gfx_path_reset(obj, pd); | ||
1542 | efl_destructor(efl_super(obj, EFL_GFX_PATH_MIXIN)); | ||
1543 | } | ||
1544 | |||
1545 | #include "interfaces/efl_gfx_path.eo.c" | 1538 | #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 @@ | |||
1 | import eina_types; | 1 | import eina_types; |
2 | import efl_gfx_types; | 2 | import efl_gfx_types; |
3 | 3 | ||
4 | mixin @beta Efl.Gfx.Path requires Efl.Object | 4 | mixin @beta Efl.Gfx.Path |
5 | { | 5 | { |
6 | [[EFL graphics path object interface]] | 6 | [[EFL graphics path object interface]] |
7 | methods { | 7 | methods { |
@@ -267,7 +267,4 @@ mixin @beta Efl.Gfx.Path requires Efl.Object | |||
267 | ]] | 267 | ]] |
268 | } | 268 | } |
269 | } | 269 | } |
270 | implements { | ||
271 | Efl.Object.destructor; | ||
272 | } | ||
273 | } | 270 | } |