Enlightenment CVS committal

Author  : raster
Project : e17
Module  : libs/edje

Dir     : e17/libs/edje/src/lib


Modified Files:
        edje_calc.c edje_load.c edje_main.c edje_private.h 
        edje_program.c edje_smart.c edje_util.c 


Log Message:


fix 1 memleak...

===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_calc.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -3 -r1.9 -r1.10
--- edje_calc.c 27 Jul 2003 13:16:51 -0000      1.9
+++ edje_calc.c 30 Jul 2003 02:58:22 -0000      1.10
@@ -470,8 +470,8 @@
    /* fill */
    params->smooth = desc->fill.smooth;
    params->fill.x = desc->fill.pos_abs_x + (params->w * desc->fill.pos_rel_x);
-   params->fill.w = desc->fill.abs_x + (params->w * desc->fill.rel_x);
    params->fill.y = desc->fill.pos_abs_y + (params->h * desc->fill.pos_rel_y);
+   params->fill.w = desc->fill.abs_x + (params->w * desc->fill.rel_x);
    params->fill.h = desc->fill.abs_y + (params->h * desc->fill.rel_y);
    /* colors */
    params->color.r = desc->color.r;
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_load.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -3 -r1.14 -r1.15
--- edje_load.c 27 Jul 2003 13:16:51 -0000      1.14
+++ edje_load.c 30 Jul 2003 02:58:22 -0000      1.15
@@ -290,6 +290,7 @@
             snprintf(buf, sizeof(buf), "collections/%i", id);
             if (!ef) eet_open(ed->path, EET_FILE_MODE_READ);
             if (!ef) goto out;
+            /* collection leaks? */
             ed->collection = eet_data_read(ef, 
                                            _edje_edd_edje_part_collection, 
                                            buf);
@@ -312,6 +313,9 @@
 void
 _edje_file_del(Edje *ed)
 {
+   /* segv's sometimes happen after here... */
+   /* avoid segv's... but LEAK */
+   /* return; */
    if (ed->collection)
      {
        ed->collection->references--;
@@ -333,8 +337,9 @@
             Edje_Real_Part *rp;
             
             rp = ed->parts->data;
+            ed->parts = evas_list_remove(ed->parts, rp);
             _edje_text_part_on_del(ed, rp);
-            evas_object_del(rp->object);
+//          evas_object_del(rp->object);
             if (rp->swallowed_object)
               {
                  evas_object_event_callback_del(rp->swallowed_object,
@@ -347,7 +352,6 @@
             if (rp->text.cache.in_str) free(rp->text.cache.in_str);
             if (rp->text.cache.out_str) free(rp->text.cache.out_str);       
             free(rp);
-            ed->parts = evas_list_remove(ed->parts, ed->parts->data);
          }
        ed->parts = NULL;
      }
@@ -389,7 +393,8 @@
             Edje_Image_Directory_Entry *ie;
             
             ie = edf->image_dir->entries->data;
-            edf->image_dir->entries = evas_list_remove(edf->image_dir->entries, ie);
+            edf->image_dir->entries = 
+              evas_list_remove(edf->image_dir->entries, ie);
             if (ie->entry) free(ie->entry);
             free(ie);
          }
@@ -402,7 +407,8 @@
             Edje_Part_Collection_Directory_Entry *ce;
             
             ce = edf->collection_dir->entries->data;
-            edf->collection_dir->entries = 
evas_list_remove(edf->collection_dir->entries, ce);
+            edf->collection_dir->entries = 
+              evas_list_remove(edf->collection_dir->entries, ce);
             if (ce->entry) free(ce->entry);
             free(ce);
          }
@@ -454,11 +460,14 @@
             ep->other_desc = evas_list_remove(ep->other_desc, desc);
             _edje_collection_free_part_description_free(desc);
          }
+       free(ep);
      }
    if (ec->prog_cache.no_matches) evas_hash_free(ec->prog_cache.no_matches);
    if (ec->prog_cache.matches)
      {
-       evas_hash_foreach(ec->prog_cache.matches, 
_edje_collection_free_prog_cache_matches_free_cb, NULL);
+       evas_hash_foreach(ec->prog_cache.matches, 
+                         _edje_collection_free_prog_cache_matches_free_cb, 
+                         NULL);
        evas_hash_free(ec->prog_cache.matches);
      }
    free(ec);
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_main.c,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -3 -r1.24 -r1.25
--- edje_main.c 24 Jul 2003 00:49:13 -0000      1.24
+++ edje_main.c 30 Jul 2003 02:58:22 -0000      1.25
@@ -36,7 +36,9 @@
 {
    _edje_file_del(ed);
    if (ed->path) free(ed->path);
+   ed->path = NULL;
    if (ed->part) free(ed->part);
+   ed->part = NULL;
    while (ed->callbacks)
      {
        Edje_Signal_Callback *escb;
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_private.h,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -3 -r1.36 -r1.37
--- edje_private.h      27 Jul 2003 13:16:51 -0000      1.36
+++ edje_private.h      30 Jul 2003 02:58:22 -0000      1.37
@@ -233,11 +233,12 @@
    Evas_List             *other_desc; /* other possible descriptors */
    struct {
       char                x; /* can u click & drag this bit in x dir */
-      int                 step_x; /* drag jumps n pixels (0 = no limit) */
-      int                 count_x; /* drag area divided by n (0 = no limit) */
-      
       char                y; /* can u click & drag this bit in y dir */
+      
+      int                 step_x; /* drag jumps n pixels (0 = no limit) */
       int                 step_y; /* drag jumps n pixels (0 = no limit) */
+      
+      int                 count_x; /* drag area divided by n (0 = no limit) */
       int                 count_y; /* drag area divided by n (0 = no limit) */
       
       int                 confine_id; /* dragging within this bit, -1 = no */
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_program.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- edje_program.c      22 Jul 2003 05:17:44 -0000      1.10
+++ edje_program.c      30 Jul 2003 02:58:22 -0000      1.11
@@ -448,7 +448,7 @@
    recursions++;
    _edje_ref(ed);
    _edje_freeze(ed);
-   printf("EMIT \"%s\" \"%s\"\n", sig, src);
+//   printf("EMIT \"%s\" \"%s\"\n", sig, src);
    ee = calloc(1, sizeof(Edje_Emission));
    if (!ee)
      {
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_smart.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -3 -r1.8 -r1.9
--- edje_smart.c        27 Jul 2003 13:16:51 -0000      1.8
+++ edje_smart.c        30 Jul 2003 02:58:22 -0000      1.9
@@ -57,7 +57,6 @@
    if (!ed) return;
    evas_object_smart_data_set(obj, ed);
    ed->obj = obj;
-   evas_object_smart_member_add(ed->clipper, ed->obj);
    _edje_edjes = evas_list_append(_edje_edjes, obj);
 }
 
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_util.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -3 -r1.15 -r1.16
--- edje_util.c 27 Jul 2003 13:16:51 -0000      1.15
+++ edje_util.c 30 Jul 2003 02:58:22 -0000      1.16
@@ -249,6 +249,7 @@
    if (!rp) return;
    if (rp->swallowed_object)
      {
+       evas_object_smart_member_del(rp->swallowed_object);
        evas_object_event_callback_del(rp->swallowed_object, 
                                       EVAS_CALLBACK_FREE, 
                                       _edje_object_part_swallow_free_cb);
@@ -257,6 +258,7 @@
      }
    if (!obj_swallow) return;
    rp->swallowed_object = obj_swallow;
+   evas_object_smart_member_add(rp->swallowed_object, ed->obj);
    evas_object_clip_set(rp->swallowed_object, ed->clipper);
    if (evas_object_layer_get(rp->swallowed_object) != ed->layer)
      evas_object_layer_set(rp->swallowed_object, ed->layer);
@@ -357,6 +359,7 @@
        rp = l->data;
        if (rp->swallowed_object == obj_swallow)
          {
+            evas_object_smart_member_del(rp->swallowed_object);
             evas_object_clip_unset(rp->swallowed_object);
             rp->swallowed_object = NULL;
             rp->swallow_params.min.w = 0;




-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to