From: raster Date: Tue, 25 Oct 2011 11:09:01 +0000 (+0000) Subject: possible bug vector -> access wd after callback has freed obj and X-Git-Tag: REL_F_I9500_20120323_1~17^2~1494 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=91434f3cc3f1a27e8816be3be06ab0d6a52cea96;p=framework%2Fuifw%2Felementary.git possible bug vector -> access wd after callback has freed obj and freed wd. git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/elementary@64384 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- diff --git a/src/lib/elm_entry.c b/src/lib/elm_entry.c index a27cc7a..ecefe9d 100644 --- a/src/lib/elm_entry.c +++ b/src/lib/elm_entry.c @@ -1407,7 +1407,6 @@ _entry_changed_common_handling(void *data, const char *event) _sizing_eval(data); if (wd->text) eina_stringshare_del(wd->text); wd->text = NULL; - evas_object_smart_callback_call(data, event, NULL); if (wd->delay_write) { ecore_timer_del(wd->delay_write); @@ -1417,6 +1416,9 @@ _entry_changed_common_handling(void *data, const char *event) evas_event_thaw_eval(evas_object_evas_get(data)); if ((!wd->autosave) || (!wd->file)) return; wd->delay_write = ecore_timer_add(2.0, _delay_write, data); + /* callback - this could call callbacks that delete the entry... thus... + * any access to wd after this could be invalid */ + evas_object_smart_callback_call(data, event, NULL); } static void