Enlightenment CVS committal

Author  : tsauerbeck
Project : e17
Module  : libs/edje

Dir     : e17/libs/edje/src/lib


Modified Files:
        edje_program.c 


Log Message:
fixed a memleak
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_program.c,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -3 -r1.25 -r1.26
--- edje_program.c      17 Jan 2004 13:09:35 -0000      1.25
+++ edje_program.c      4 Feb 2004 19:41:27 -0000       1.26
@@ -600,11 +600,25 @@
    _edje_unblock(ed);
 }
 
+static void _edje_emission_free(Edje_Emission *ee)
+{
+   if (!ee)
+      return;
+
+   if (ee->signal)
+          free(ee->signal);
+
+   if (ee->source)
+          free(ee->source);
+
+   free(ee);
+}
+
 void
 _edje_emit(Edje *ed, char *sig, char *src)
 {
    Evas_List *l;
-   Edje_Emission *ee;
+   Edje_Emission *ee = NULL;
    /* limit self-feeding loops in callbacks to 64 levels */
    static int recursions = 0;
    static int recursion_limit = 0;
@@ -614,10 +628,9 @@
        while (ed->emissions)
          {
             ee = ed->emissions->data;
-            free(ee->signal);
-            free(ee->source);
-            free(ee);
             ed->emissions = evas_list_remove(ed->emissions, ee);
+
+            _edje_emission_free(ee);
          }
        return;
      }
@@ -754,11 +767,15 @@
             if (tmps) free(tmps);
             tmps = NULL;
          }
-       free(ee->signal);
-       free(ee->source);
-       free(ee);
+
+       _edje_emission_free(ee);
+       ee = NULL;
      }
    break_prog:
+
+   if (ee)
+      _edje_emission_free(ee);
+
    recursions--;
    if (recursions == 0) recursion_limit = 0;
    _edje_thaw(ed);




-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to