diff options
author | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2015-09-02 19:34:06 +0900 |
---|---|---|
committer | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2015-09-02 19:34:06 +0900 |
commit | 0b810218746f4f1cf6dbdfb57fdd209ebf682f0c (patch) | |
tree | 0b5345c73c31664c2162bd23d3c1c7093b59aef1 | |
parent | 9238f87e05ec891d87fb0080922df0f9e7e7e11f (diff) | |
download | elementary-0b810218746f4f1cf6dbdfb57fdd209ebf682f0c.tar.gz |
elm map - fix crash on badly handled zoom timeout callback
if sd->obj is null then the a zoom timeout has a null data param and
that means we cant get sd data... so dont set up a zoom timeout unless
sd->obj is valid.
@fix
-rw-r--r-- | src/lib/elm_map.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/lib/elm_map.c b/src/lib/elm_map.c index 8a3101894..10172703d 100644 --- a/src/lib/elm_map.c +++ b/src/lib/elm_map.c @@ -1122,12 +1122,17 @@ _zoom_do(Elm_Map_Data *sd, (x, y, vw, vh)); } - if (sd->zoom_timer) ecore_timer_del(sd->zoom_timer); + if (sd->zoom_timer) + { + ecore_timer_del(sd->zoom_timer); + sd->zoom_timer = NULL; + } else eo_do(sd->obj, eo_event_callback_call (EVAS_ZOOMABLE_INTERFACE_EVENT_ZOOM_START, NULL)); - sd->zoom_timer = ecore_timer_add(0.25, _zoom_timeout_cb, sd->obj); + if (sd->obj) + sd->zoom_timer = ecore_timer_add(0.25, _zoom_timeout_cb, sd->obj); eo_do(sd->obj, eo_event_callback_call (ELM_MAP_EVENT_ZOOM_CHANGE, NULL)); |