diff options
author | ChunEon Park <hermet@hermet.pe.kr> | 2014-02-20 23:51:38 +0900 |
---|---|---|
committer | ChunEon Park <hermet@hermet.pe.kr> | 2014-02-20 23:51:38 +0900 |
commit | c0afc63262d6ceb944e0019bb4d01ca36d93b0e0 (patch) | |
tree | 42d1dbbb3700cedfd1d90569ec4c4c8b6c3fe203 | |
parent | 9376fe7edbcdd232f5a52e5b40f7c2975631ee1a (diff) | |
download | elementary-c0afc63262d6ceb944e0019bb4d01ca36d93b0e0.tar.gz |
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.c | 1 |
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 * free(obj_data->state); free(obj_data); } + evas_object_data_del(obj, _transit_key); _remove_obj_from_list(transit, obj); if (!transit->objs && !transit->deleted) elm_transit_del(transit); } |