possible bug vector -> access wd after callback has freed obj and
authorraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Tue, 25 Oct 2011 11:09:01 +0000 (11:09 +0000)
committerraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Tue, 25 Oct 2011 11:09:01 +0000 (11:09 +0000)
freed wd.

git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/elementary@64384 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/elm_entry.c

index a27cc7a..ecefe9d 100644 (file)
@@ -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