ecore_imf: Add NULL check before accessing evas device API
authorJihoon Kim <jihoon48.kim@samsung.com>
Tue, 24 Mar 2015 11:33:45 +0000 (20:33 +0900)
committerJihoon Kim <jihoon48.kim@samsung.com>
Tue, 24 Mar 2015 11:33:45 +0000 (20:33 +0900)
src/lib/ecore_imf_evas/ecore_imf_evas.c

index 69de93d..1f213d6 100644 (file)
@@ -184,9 +184,20 @@ ecore_imf_evas_event_key_down_wrap(Evas_Event_Key_Down *evas_event,
    imf_event->string = evas_event->string ? evas_event->string : _ecore_imf_evas_event_empty;
    imf_event->compose = evas_event->compose ? evas_event->compose : _ecore_imf_evas_event_empty;
    imf_event->timestamp = evas_event->timestamp;
-   imf_event->dev_name = evas_device_name_get(evas_event->dev) ? evas_device_name_get(evas_event->dev) : _ecore_imf_evas_event_empty;
-   imf_event->dev_class = evas_device_class_get(evas_event->dev);
-   imf_event->dev_subclass = evas_device_subclass_get(evas_event->dev);
+
+   if (evas_event->dev)
+     {
+        imf_event->dev_name = evas_device_name_get(evas_event->dev) ? evas_device_name_get(evas_event->dev) : _ecore_imf_evas_event_empty;
+        imf_event->dev_class = evas_device_class_get(evas_event->dev);
+        imf_event->dev_subclass = evas_device_subclass_get(evas_event->dev);
+     }
+   else
+     {
+        imf_event->dev_name = _ecore_imf_evas_event_empty;
+        imf_event->dev_class = ECORE_IMF_DEVICE_CLASS_NONE;
+        imf_event->dev_subclass = ECORE_IMF_DEVICE_SUBCLASS_NONE;
+     }
+
    _ecore_imf_evas_event_modifiers_wrap(evas_event->modifiers, &imf_event->modifiers);
    _ecore_imf_evas_event_locks_wrap(evas_event->locks, &imf_event->locks);
 }
@@ -212,9 +223,20 @@ ecore_imf_evas_event_key_up_wrap(Evas_Event_Key_Up *evas_event,
    imf_event->string = evas_event->string ? evas_event->string : _ecore_imf_evas_event_empty;
    imf_event->compose = evas_event->compose ? evas_event->compose : _ecore_imf_evas_event_empty;
    imf_event->timestamp = evas_event->timestamp;
-   imf_event->dev_name = evas_device_name_get(evas_event->dev) ? evas_device_name_get(evas_event->dev) : _ecore_imf_evas_event_empty;
-   imf_event->dev_class = evas_device_class_get(evas_event->dev);
-   imf_event->dev_subclass = evas_device_subclass_get(evas_event->dev);
+
+   if (evas_event->dev)
+     {
+        imf_event->dev_name = evas_device_name_get(evas_event->dev) ? evas_device_name_get(evas_event->dev) : _ecore_imf_evas_event_empty;
+        imf_event->dev_class = evas_device_class_get(evas_event->dev);
+        imf_event->dev_subclass = evas_device_subclass_get(evas_event->dev);
+     }
+   else
+     {
+        imf_event->dev_name = _ecore_imf_evas_event_empty;
+        imf_event->dev_class = ECORE_IMF_DEVICE_CLASS_NONE;
+        imf_event->dev_subclass = ECORE_IMF_DEVICE_SUBCLASS_NONE;
+     }
+
    _ecore_imf_evas_event_modifiers_wrap(evas_event->modifiers, &imf_event->modifiers);
    _ecore_imf_evas_event_locks_wrap(evas_event->locks, &imf_event->locks);
 }