Enlightenment CVS committal
Author : raster
Project : e17
Module : libs/evas
Dir : e17/libs/evas/src/lib/canvas
Modified Files:
evas_layer.c evas_main.c evas_object_main.c
evas_object_smart.c
Log Message:
logic problem on evas_free(). shoudl be fixed now... :)
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_layer.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- evas_layer.c 15 Dec 2002 00:33:57 -0000 1.3
+++ evas_layer.c 10 Jan 2003 05:38:47 -0000 1.4
@@ -45,6 +45,20 @@
}
void
+evas_layer_pre_free(Evas_Layer *lay)
+{
+ Evas_Object_List *l;
+
+ for (l = (Evas_Object_List *)lay->objects; l; l = l->next)
+ {
+ Evas_Object *obj;
+
+ obj = (Evas_Object *)l;
+ evas_object_del(obj);
+ }
+}
+
+void
evas_layer_free(Evas_Layer *lay)
{
while (lay->objects)
@@ -52,7 +66,6 @@
Evas_Object *obj;
obj = (Evas_Object *)lay->objects;
- if (obj->smart.smart) evas_object_smart_del(obj);
evas_object_free(obj, 0);
}
free(lay);
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_main.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- evas_main.c 26 Nov 2002 05:25:02 -0000 1.2
+++ evas_main.c 10 Jan 2003 05:38:47 -0000 1.3
@@ -72,13 +72,19 @@
void
evas_free(Evas *e)
{
+ Evas_Object_List *l;
+
MAGIC_CHECK(e, Evas, MAGIC_EVAS);
return;
MAGIC_CHECK_END();
- evas_object_font_path_clear(e);
-
- e->pointer.object.in = evas_list_free(e->pointer.object.in);
+ for (l = (Evas_Object_List *)(e->layers); l; l = l->next)
+ {
+ Evas_Layer *lay;
+
+ lay = (Evas_Layer *)l;
+ evas_layer_pre_free(lay);
+ }
while (e->layers)
{
Evas_Layer *lay;
@@ -87,6 +93,9 @@
evas_layer_del(lay);
evas_layer_free(lay);
}
+
+ evas_object_font_path_clear(e);
+ e->pointer.object.in = evas_list_free(e->pointer.object.in);
if (e->name_hash) evas_hash_free(e->name_hash);
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_object_main.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- evas_object_main.c 5 Jan 2003 12:55:37 -0000 1.6
+++ evas_object_main.c 10 Jan 2003 05:38:47 -0000 1.7
@@ -422,6 +422,8 @@
evas_object_change(obj);
obj->delete_me = 1;
if (obj->smart.smart) evas_object_smart_del(obj);
+ evas_object_smart_cleanup(obj);
+ obj->smart.smart = NULL;
}
void
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_object_smart.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- evas_object_smart.c 10 Jan 2003 04:58:51 -0000 1.2
+++ evas_object_smart.c 10 Jan 2003 05:38:47 -0000 1.3
@@ -238,8 +238,8 @@
Evas_Smart *s;
s = obj->smart.smart;
- if (obj->smart.parent) evas_object_smart_member_del(obj);
if ((s) && (s->func_del)) s->func_del(obj);
+ if (obj->smart.parent) evas_object_smart_member_del(obj);
if (s) evas_object_smart_unuse(s);
}
-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs