Evas Device: fix segv in evas_device_cleanup 52/70852/1 accepted/tizen/ivi/20160524.004357 accepted/tizen/mobile/20160524.004317 accepted/tizen/tv/20160524.004335 accepted/tizen/wearable/20160524.004305 submit/tizen/20160523.054353
authorDuna Oh <duna.oh@samsung.com>
Mon, 23 May 2016 05:05:10 +0000 (14:05 +0900)
committerDuna Oh <duna.oh@samsung.com>
Mon, 23 May 2016 05:05:46 +0000 (14:05 +0900)
Signed-off-by: Duna Oh <duna.oh@samsung.com>
Change-Id: I4194399a60ee9c99b9c884d8559dcb29608c4127

src/lib/evas/canvas/evas_device.c

index 68c743b..a6c1a0a 100644 (file)
@@ -254,8 +254,13 @@ _evas_device_cleanup(Evas *eo_e)
      }
    EINA_LIST_FOREACH_SAFE(e->devices, l1, l2, dev)
      {
-        while (dev)
-          evas_device_del(dev);
+        int ref;
+        while (ref = dev->ref)
+          {
+             evas_device_del(dev);
+             if (ref <= 1)
+               break;
+          }
      }
 }