Enlightenment CVS committal

Author  : dj2
Project : e17
Module  : libs/edje

Dir     : e17/libs/edje/src/lib


Modified Files:
        edje_main.c edje_private.h edje_util.c 


Log Message:
- clean up the _edje_color_class_hash and _edje_text_class_hash on
  edje_shutdown

===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_main.c,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -3 -r1.40 -r1.41
--- edje_main.c 26 Oct 2004 19:01:17 -0000      1.40
+++ edje_main.c 13 Jan 2005 06:29:52 -0000      1.41
@@ -42,7 +42,9 @@
    _edje_message_shutdown();
    _edje_edd_free();
    _edje_color_class_members_free();
+   _edje_color_class_hash_free();
    _edje_text_class_members_free();
+   _edje_text_class_hash_free();
    embryo_shutdown();
    
    return 0;
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_private.h,v
retrieving revision 1.79
retrieving revision 1.80
diff -u -3 -r1.79 -r1.80
--- edje_private.h      7 Dec 2004 13:31:15 -0000       1.79
+++ edje_private.h      13 Jan 2005 06:29:52 -0000      1.80
@@ -781,11 +781,13 @@
 void              _edje_color_class_member_del(Edje *ed, char *color_class);
 void              _edje_color_class_on_del(Edje *ed, Edje_Part *ep);
 void              _edje_color_class_members_free(void);
+void              _edje_color_class_hash_free(void);
 
 Edje_Text_Class  *_edje_text_class_find(Edje *ed, char *text_class);
 void              _edje_text_class_member_add(Edje *ed, char *text_class);
 void              _edje_text_class_member_del(Edje *ed, char *text_class);
 void              _edje_text_class_members_free(void);
+void              _edje_text_class_hash_free(void);
 
 Edje             *_edje_fetch(Evas_Object *obj);
 int               _edje_glob_match(char *str, char *glob);
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_util.c,v
retrieving revision 1.50
retrieving revision 1.51
diff -u -3 -r1.50 -r1.51
--- edje_util.c 13 Jan 2005 06:00:37 -0000      1.50
+++ edje_util.c 13 Jan 2005 06:29:52 -0000      1.51
@@ -1374,6 +1374,30 @@
    _edje_color_class_member_hash = NULL;
 }
 
+static Evas_Bool color_class_hash_list_free(Evas_Hash *hash, 
+                                            const char *key, void *data,
+                                            void *fdata)
+{
+  Edje_Color_Class *cc;
+
+  cc = data;
+  if (cc->name) free(cc->name);
+  free(cc);
+  
+  return 1;
+}
+
+void
+_edje_color_class_hash_free(void)
+{
+  if (!_edje_color_class_hash) return;
+
+  evas_hash_foreach(_edje_color_class_hash, color_class_hash_list_free,
+                    NULL);
+  evas_hash_free(_edje_color_class_hash);
+  _edje_color_class_hash = NULL;
+}
+
 void
 _edje_color_class_on_del(Edje *ed, Edje_Part *ep)
 {
@@ -1447,6 +1471,31 @@
    _edje_text_class_member_hash = NULL;
 }
 
+static Evas_Bool text_class_hash_list_free(Evas_Hash *hash, 
+                                            const char *key, void *data,
+                                            void *fdata)
+{
+  Edje_Text_Class *tc;
+
+  tc = data;
+  if (tc->name) free(tc->name);
+  if (tc->font) free(tc->font);
+  free(tc);
+  
+  return 1;
+}
+
+void
+_edje_text_class_hash_free(void)
+{
+  if (!_edje_text_class_hash) return;
+
+  evas_hash_foreach(_edje_text_class_hash, text_class_hash_list_free,
+                    NULL);
+  evas_hash_free(_edje_text_class_hash);
+  _edje_text_class_hash = NULL;
+}
+
 Edje *
 _edje_fetch(Evas_Object *obj)
 {




-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to