e_client double free bug fix 66/66566/4
authorSungbae Park <sb34.park@samsung.com>
Tue, 19 Apr 2016 11:52:03 +0000 (20:52 +0900)
committerGwanglim Lee <gl77.lee@samsung.com>
Thu, 28 Apr 2016 04:46:42 +0000 (21:46 -0700)
Signed-off-by: Sungbae Park <sb34.park@samsung.com>
Change-Id: I676fc0040b93498ff1b015fe481579a514c74ab7

src/bin/e_client.c

index 7d180c476682155d63706ec2e336a50032d3f5ed..bada22903d470b0b93dc77160862e490ff72682b 100644 (file)
@@ -1653,6 +1653,8 @@ _e_client_cb_evas_shade_done(void *data, Evas_Object *obj EINA_UNUSED, void *eve
 {
    E_Client *ec = data;
 
+   if (e_object_is_del(data)) return;
+
    ec->shading = 0;
    ec->shaded = !(ec->shaded);
    ec->changes.shaded = 1;
@@ -1666,6 +1668,8 @@ _e_client_cb_evas_move(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UN
    E_Client *ec = data;
    Evas_Coord x, y;
 
+   if (e_object_is_del(data)) return;
+
    ec->pre_res_change.valid = 0;
    if (ec->internal_elm_win)
      {
@@ -1708,6 +1712,8 @@ _e_client_cb_evas_resize(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_
    E_Client *ec = data;
    Evas_Coord x, y, w, h;
 
+   if (e_object_is_del(data)) return;
+
    ec->pre_res_change.valid = 0;
 
    _e_client_event_simple(ec, E_EVENT_CLIENT_RESIZE);
@@ -1748,6 +1754,9 @@ static void
 _e_client_cb_evas_show(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
 {
    E_Client *ec = data;
+
+   if (e_object_is_del(data)) return;
+
    _e_client_event_simple(data, E_EVENT_CLIENT_SHOW);
    EC_CHANGED(ec);
 }
@@ -1757,6 +1766,7 @@ _e_client_cb_evas_restack(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA
 {
    E_Client *ec = data;
 
+   if (e_object_is_del(data)) return;
    if (ec->layer_block) return;
    if (e_config->transient.raise && ec->transients)
      {