raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=419f84907bb24aecb2fc116b8b72967a0364f0ee
commit 419f84907bb24aecb2fc116b8b72967a0364f0ee Author: Carsten Haitzler (Rasterman) <[email protected]> Date: Sun Aug 21 11:30:45 2016 +0900 edje - fix missing vector field frees, copies, handling etc. it seems vector type parts were not handled all that well. we had at least one mem leak with the vector mempool never being freed... so i filled in various missing points where vector parts were not being handled right. @fix --- src/lib/edje/edje_cache.c | 1 + src/lib/edje/edje_calc.c | 1 + src/lib/edje/edje_data.c | 2 +- src/lib/edje/edje_embryo.c | 1 + 4 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/lib/edje/edje_cache.c b/src/lib/edje/edje_cache.c index ff6d0a7..03193a7 100644 --- a/src/lib/edje/edje_cache.c +++ b/src/lib/edje/edje_cache.c @@ -86,6 +86,7 @@ edje_cache_emp_free(Edje_Part_Collection_Directory_Entry *ce) eina_mempool_del(ce->mp->mp_rtl.MESH_NODE); eina_mempool_del(ce->mp->mp_rtl.LIGHT); eina_mempool_del(ce->mp->mp_rtl.CAMERA); + eina_mempool_del(ce->mp->mp_rtl.VECTOR); memset(&ce->mp->mp_rtl, 0, sizeof(ce->mp->mp_rtl)); } diff --git a/src/lib/edje/edje_calc.c b/src/lib/edje/edje_calc.c index d7c738e..c193172 100644 --- a/src/lib/edje/edje_calc.c +++ b/src/lib/edje/edje_calc.c @@ -334,6 +334,7 @@ case EDJE_PART_TYPE_##Short: \ POPULATE_MEMSIZE_RTL(CAMERA, Camera); POPULATE_MEMSIZE_RTL(LIGHT, Light); POPULATE_MEMSIZE_RTL(MESH_NODE, Mesh_Node); + POPULATE_MEMSIZE_RTL(VECTOR, Vector); } #undef POPULATE_MEMSIZE_RTL diff --git a/src/lib/edje/edje_data.c b/src/lib/edje/edje_data.c index 7754c9e..0541844 100644 --- a/src/lib/edje/edje_data.c +++ b/src/lib/edje/edje_data.c @@ -936,9 +936,9 @@ _edje_edd_init(void) EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection_directory_entry, Edje_Part_Collection_Directory_Entry, "count.MESH_NODE", count.MESH_NODE, EET_T_INT); EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection_directory_entry, Edje_Part_Collection_Directory_Entry, "count.LIGHT", count.LIGHT, EET_T_INT); EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection_directory_entry, Edje_Part_Collection_Directory_Entry, "count.CAMERA", count.CAMERA, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection_directory_entry, Edje_Part_Collection_Directory_Entry, "count.VECTOR", count.VECTOR, EET_T_INT); EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection_directory_entry, Edje_Part_Collection_Directory_Entry, "count.part", count.part, EET_T_INT); EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection_directory_entry, Edje_Part_Collection_Directory_Entry, "group_alias", group_alias, EET_T_UCHAR); - EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection_directory_entry, Edje_Part_Collection_Directory_Entry, "count.VECTOR", count.VECTOR, EET_T_INT); EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Edje_Style_Tag); _edje_edd_edje_style_tag = diff --git a/src/lib/edje/edje_embryo.c b/src/lib/edje/edje_embryo.c index d019f76..bb46310 100644 --- a/src/lib/edje/edje_embryo.c +++ b/src/lib/edje/edje_embryo.c @@ -2110,6 +2110,7 @@ case EDJE_PART_TYPE_##Short: \ ALLOC_COPY_DESC(BOX, Box, d, box); ALLOC_COPY_DESC(TABLE, Table, d, table); ALLOC_COPY_DESC(EXTERNAL, External, d, external_params); + ALLOC_COPY_DESC(VECTOR, Vector, d, vg); } if (!d) return 0; --
