From b57e34cc83afad2856ede919c36d965e980a3918 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Sat, 16 Sep 2000 00:24:38 +0000 Subject: [PATCH] ok - that was screwy.. :) propt type problem - fixed :) SVN revision: 3487 --- legacy/evas/src/evas_misc.c | 7 +++---- legacy/evas/src/evas_object.c | 9 ++++++--- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/legacy/evas/src/evas_misc.c b/legacy/evas/src/evas_misc.c index 34b5a384d4..8e588fd0c4 100644 --- a/legacy/evas/src/evas_misc.c +++ b/legacy/evas/src/evas_misc.c @@ -7,6 +7,8 @@ #include "evas_imlib_routines.h" #include "evas_image_routines.h" +void _evas_layer_free(Evas e, Evas_Layer layer); + Evas evas_new(void) { @@ -33,10 +35,7 @@ evas_free(Evas e) Evas_Layer layer; layer = l->data; - /* FIXME: odd? can someine investigate? i'm stumped on this one */ - /* this is odd - compile evas with -O0 no segv - otherwise a */ - /* segv ....... ???? */ - _evas_layer_free(layer); + _evas_layer_free(e, layer); } if (e->layers) evas_list_free(e->layers); if (e->updates) imlib_updates_free(e->updates); diff --git a/legacy/evas/src/evas_object.c b/legacy/evas/src/evas_object.c index fc638241f5..c4d07ee3d4 100644 --- a/legacy/evas/src/evas_object.c +++ b/legacy/evas/src/evas_object.c @@ -36,7 +36,8 @@ _evas_remove_data(Evas e, Evas_Object o) Evas_Data d; d = l->data; - free(d->key); + if (d->key) + free(d->key); free(d); } evas_list_free(o->data); @@ -96,8 +97,10 @@ _evas_layer_free(Evas e, Evas_Layer layer) _evas_callback_call(e, o, CALLBACK_FREE, 0, 0, 0); _evas_remove_callbacks(e, o); _evas_remove_data(e, o); - o->object_renderer_data_free(e, o); - o->object_free(o); + if (o->object_renderer_data_free) + o->object_renderer_data_free(e, o); + if (o->object_free) + o->object_free(o); } free(layer); }