Enlightenment CVS committal

Author  : dj2
Project : e17
Module  : libs/ewl

Dir     : e17/libs/ewl/src/lib


Modified Files:
        ewl_box.c ewl_misc.c ewl_text.c ewl_widget.c 


Log Message:
- more memory leak fixes

===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_box.c,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -3 -r1.33 -r1.34
--- ewl_box.c   22 Dec 2006 19:24:59 -0000      1.33
+++ ewl_box.c   29 Dec 2006 19:16:38 -0000      1.34
@@ -1059,6 +1059,8 @@
        IF_FREE(ewl_box_horizontal);
        IF_FREE(ewl_box_vertical);
 
+       if (ewl_box_spread) ecore_list_destroy(ewl_box_spread);
+
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
 
===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_misc.c,v
retrieving revision 1.75
retrieving revision 1.76
diff -u -3 -r1.75 -r1.76
--- ewl_misc.c  22 Dec 2006 19:24:59 -0000      1.75
+++ ewl_misc.c  29 Dec 2006 19:16:38 -0000      1.76
@@ -144,11 +144,13 @@
                fprintf(stderr, "Could not initialize Ecore Desktop.\n");
                goto ERROR;
        }
+       ecore_list_prepend(shutdown_queue, ecore_desktop_shutdown);
 
        if (!ecore_string_init()) {
                fprintf(stderr, "Could not initialize Ecore Strings.\n");
                goto ERROR;
        }
+       ecore_list_prepend(shutdown_queue, ecore_string_shutdown);
 
        if (!edje_init()) {
                fprintf(stderr, "Could not initialize Edje.\n");
===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_text.c,v
retrieving revision 1.147
retrieving revision 1.148
diff -u -3 -r1.147 -r1.148
--- ewl_text.c  22 Dec 2006 19:43:41 -0000      1.147
+++ ewl_text.c  29 Dec 2006 19:16:38 -0000      1.148
@@ -3192,7 +3192,7 @@
        }
        else
        {
-               fmt[pos].val = ewl_theme_path_get();
+               fmt[pos].val = (char *)ewl_theme_path_get();
                fmt[pos++].free = FALSE;
 
                snprintf(t, 128, "fonts/%s", ctx->font);
@@ -5055,7 +5055,12 @@
        }
 
        if (ewl_text_default_context)
-               ewl_text_context_release(ewl_text_default_context);
+       {
+               IF_FREE(ewl_text_default_context->font);
+               if (ewl_text_default_context->format) 
+                       ecore_string_release(ewl_text_default_context->format);
+               FREE(ewl_text_default_context);
+       }
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
@@ -5259,7 +5264,6 @@
        /* setup the default context and acquire a ref on it so 
         * it won't go away */
        ewl_text_default_context = tx;
-       ewl_text_context_acquire(tx);
 
        DRETURN_PTR(tx, DLEVEL_STABLE);
 }
===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_widget.c,v
retrieving revision 1.110
retrieving revision 1.111
diff -u -3 -r1.110 -r1.111
--- ewl_widget.c        29 Dec 2006 18:24:59 -0000      1.110
+++ ewl_widget.c        29 Dec 2006 19:16:38 -0000      1.111
@@ -26,6 +26,8 @@
 static void ewl_widget_cb_drag_down(Ewl_Widget *w, void *ev_data, 
                                        void *user_data);
 
+static void ewl_widget_name_table_shutdown(void);
+
 /**
  * @return Returns a newly allocated widget on success, NULL on failure.
  * @brief Allocate a new widget.
@@ -138,8 +140,13 @@
        DCHECK_TYPE("w", w, EWL_WIDGET_TYPE);
 
        if (!ewl_widget_name_table)
+       {
                ewl_widget_name_table = ecore_hash_new(ecore_str_hash, 
                                                        ecore_str_compare);
+               ecore_hash_set_free_key(ewl_widget_name_table, 
+                                               ECORE_FREE_CB(free));
+               ewl_shutdown_add(ewl_widget_name_table_shutdown);
+       }
 
        t = strdup(name);
        ewl_attach_name_set(w, t);
@@ -3248,4 +3255,16 @@
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
+
+static void
+ewl_widget_name_table_shutdown(void)
+{
+       DENTER_FUNCTION(DLEVEL_STABLE);
+
+       if (ewl_widget_name_table)
+               ecore_hash_destroy(ewl_widget_name_table);
+
+       DLEAVE_FUNCTION(DLEVEL_STABLE);
+}
+
 



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to