summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChunEon Park <hermet@hermet.pe.kr>2014-02-20 23:51:38 +0900
committerChunEon Park <hermet@hermet.pe.kr>2014-02-20 23:51:38 +0900
commitc0afc63262d6ceb944e0019bb4d01ca36d93b0e0 (patch)
tree42d1dbbb3700cedfd1d90569ec4c4c8b6c3fe203
parent9376fe7edbcdd232f5a52e5b40f7c2975631ee1a (diff)
transit - fix the double free obj_data case.
if the object is added twice to the one transit, the obj_remove_cb would be called twice. in this case it will try to access the freed obj_data and crashed up. now it's fixed.
-rw-r--r--src/lib/elm_transit.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/lib/elm_transit.c b/src/lib/elm_transit.c
index d8a2d3e9d..bb0cb007e 100644
--- a/src/lib/elm_transit.c
+++ b/src/lib/elm_transit.c
@@ -174,6 +174,7 @@ _transit_obj_remove_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *
174 free(obj_data->state); 174 free(obj_data->state);
175 free(obj_data); 175 free(obj_data);
176 } 176 }
177 evas_object_data_del(obj, _transit_key);
177 _remove_obj_from_list(transit, obj); 178 _remove_obj_from_list(transit, obj);
178 if (!transit->objs && !transit->deleted) elm_transit_del(transit); 179 if (!transit->objs && !transit->deleted) elm_transit_del(transit);
179} 180}