summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>2015-09-02 19:34:06 +0900
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2015-09-02 19:34:06 +0900
commit0b810218746f4f1cf6dbdfb57fdd209ebf682f0c (patch)
tree0b5345c73c31664c2162bd23d3c1c7093b59aef1
parent9238f87e05ec891d87fb0080922df0f9e7e7e11f (diff)
downloadelementary-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.c9
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));