cedric pushed a commit to branch master.

commit 2fa49e0da087625fb33898eb891c089a6fb5b6a6
Author: Cedric Bail <[email protected]>
Date:   Thu Aug 1 19:35:21 2013 +0900

    edje: fix memory leak introduced by map_colors support.
---
 src/lib/edje/edje_data.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/src/lib/edje/edje_data.c b/src/lib/edje/edje_data.c
index f8f9bb7..20725a0 100644
--- a/src/lib/edje/edje_data.c
+++ b/src/lib/edje/edje_data.c
@@ -188,7 +188,6 @@ _edje_eina_hash_add_alloc(Eina_Hash  *hash,
 EAPI void
 _edje_edd_shutdown(void)
 {
-   FREED(_edje_edd_edje_file);
    FREED(_edje_edd_edje_string);
    FREED(_edje_edd_edje_style);
    FREED(_edje_edd_edje_style_tag);
@@ -198,6 +197,8 @@ _edje_edd_shutdown(void)
    FREED(_edje_edd_edje_font_directory_entry);
    FREED(_edje_edd_edje_image_directory);
    FREED(_edje_edd_edje_image_directory_entry);
+   FREED(_edje_edd_edje_image_directory_set);
+   FREED(_edje_edd_edje_image_directory_set_entry);
    FREED(_edje_edd_edje_limit);
    FREED(_edje_edd_edje_limit_pointer);
    FREED(_edje_edd_edje_sound_sample);
@@ -210,7 +211,6 @@ _edje_edd_shutdown(void)
    FREED(_edje_edd_edje_part_collection_directory_entry);
    FREED(_edje_edd_edje_pack_element);
    FREED(_edje_edd_edje_pack_element_pointer);
-   FREED(_edje_edd_edje_part_collection);
    FREED(_edje_edd_edje_part);
    FREED(_edje_edd_edje_part_pointer);
    FREED(_edje_edd_edje_part_description_variant);
@@ -240,12 +240,13 @@ _edje_edd_shutdown(void)
    FREED(_edje_edd_edje_part_image_id);
    FREED(_edje_edd_edje_part_image_id_pointer);
    FREED(_edje_edd_edje_external_param);
-   FREED(_edje_edd_edje_image_directory_set);
-   FREED(_edje_edd_edje_image_directory_set_entry);
    FREED(_edje_edd_edje_part_limit);
    FREED(_edje_edd_edje_physics_face);
    FREED(_edje_edd_edje_map_colors);
    FREED(_edje_edd_edje_map_colors_pointer);
+
+   FREED(_edje_edd_edje_file);
+   FREED(_edje_edd_edje_part_collection);
 }
 
 #define EDJE_DEFINE_POINTER_TYPE(Type, Name)                           \
@@ -502,6 +503,8 @@ _edje_edd_init(void)
    EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_map_colors, Edje_Map_Color,
                                  "a", a, EET_T_UCHAR);
 
+   EDJE_DEFINE_POINTER_TYPE(Map_Color, map_colors);
+
 #define EDJE_DATA_DESCRIPTOR_DESCRIPTION_COMMON_FIELDS(Edd, Type) \
       EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "state.name", state.name, 
EET_T_STRING); \
       EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "state.value", state.value, 
EET_T_DOUBLE); \
@@ -557,7 +560,6 @@ _edje_edd_init(void)
       EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.alpha", map.alpha, 
EET_T_UCHAR); \
       EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.persp_on", map.persp_on, 
EET_T_UCHAR); \
       EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.backcull", map.backcull, 
EET_T_UCHAR); \
-      EDJE_DEFINE_POINTER_TYPE(Map_Color, map_colors); \
       EET_DATA_DESCRIPTOR_ADD_VAR_ARRAY(Edd, Type, "map.color", map.colors, 
_edje_edd_edje_map_colors_pointer); \
       EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "persp.zplane", persp.zplane, 
EET_T_INT); \
       EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "persp.focal", persp.focal, 
EET_T_INT);
@@ -645,7 +647,6 @@ _edje_edd_init(void)
       EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.alpha", Dec.map.alpha, 
EET_T_UCHAR); \
       EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.persp_on", 
Dec.map.persp_on, EET_T_UCHAR); \
       EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "map.backcull", 
Dec.map.backcull, EET_T_UCHAR); \
-      EDJE_DEFINE_POINTER_TYPE(Map_Color, map_colors); \
       EET_DATA_DESCRIPTOR_ADD_VAR_ARRAY(Edd, Type, "map.color", 
Dec.map.colors, _edje_edd_edje_map_colors_pointer); \
       EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "persp.zplane", 
Dec.persp.zplane, EET_T_INT); \
       EET_DATA_DESCRIPTOR_ADD_BASIC(Edd, Type, "persp.focal", Dec.persp.focal, 
EET_T_INT); \

-- 

------------------------------------------------------------------------------
Get your SQL database under version control now!
Version control is standard for application code, but databases havent 
caught up. So what steps can you take to put your SQL databases under 
version control? Why should you start doing it? Read more to find out.
http://pubads.g.doubleclick.net/gampad/clk?id=49501711&iu=/4140/ostg.clktrk

Reply via email to