rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=0b2f0207fcaa59abcf6d68e7bbe3c2b15d5eee05

commit 0b2f0207fcaa59abcf6d68e7bbe3c2b15d5eee05
Author: Vitalii Vorobiov <[email protected]>
Date:   Wed Aug 31 18:12:55 2016 +0300

    resource_manager2: clean up top level resources on shutdown project
---
 src/bin/project_manager/resource_manager2.c | 49 +++++++++++++++++++++++++++--
 1 file changed, 47 insertions(+), 2 deletions(-)

diff --git a/src/bin/project_manager/resource_manager2.c 
b/src/bin/project_manager/resource_manager2.c
index f0f9049..85c05cc 100644
--- a/src/bin/project_manager/resource_manager2.c
+++ b/src/bin/project_manager/resource_manager2.c
@@ -923,8 +923,53 @@ resource_manager_init(Project *project)
    return false;
 }
 
+void
+_resource_free(Resource2 *res)
+{
+   eina_stringshare_del(res->common.name);
+   eina_list_free(res->common.used_in);
+   eina_list_free(res->common.uses___);
+   free(res);
+}
+
 Eina_Bool
-resource_manager_shutdown(Project *project __UNUSED__)
+resource_manager_shutdown(Project *pro)
 {
-   return false;
+   Resource2 *res;
+   Image2 *res_image;
+   Sound2 *res_sound;
+   Font2 *res_font;
+   Global_Data2 *res_data;
+
+   /* image_set */
+   EINA_LIST_FREE(pro->image_sets, res)
+     _resource_free(res);
+   EINA_LIST_FREE(pro->tones, res)
+     _resource_free(res);
+   EINA_LIST_FREE(pro->colorclasses, res)
+     _resource_free(res);
+   EINA_LIST_FREE(pro->styles, res)
+     _resource_free(res);
+
+   EINA_LIST_FREE(pro->images, res_image)
+     {
+        eina_stringshare_del(res_image->source);
+        _resource_free((Resource2 *)res_image);
+     }
+   EINA_LIST_FREE(pro->sounds, res_sound)
+     {
+        eina_stringshare_del(res_sound->source);
+        _resource_free((Resource2 *)res_sound);
+     }
+   EINA_LIST_FREE(pro->fonts, res_font)
+     {
+        eina_stringshare_del(res_font->source);
+        _resource_free((Resource2 *)res_font);
+     }
+   EINA_LIST_FREE(pro->global_data, res_data)
+     {
+        eina_stringshare_del(res_data->source);
+        _resource_free((Resource2 *)res_data);
+     }
+   return true;
 }

-- 


Reply via email to