Ecore: Use calloc() to initialize Ecore_Event_Key fully
authorJean-Philippe ANDRE <jpeg@videolan.org>
Wed, 25 Mar 2015 22:29:49 +0000 (15:29 -0700)
committerJean-Philippe ANDRE <jpeg@videolan.org>
Wed, 25 Mar 2015 22:34:23 +0000 (15:34 -0700)
Some fields (eg. data) may not be properly initialized.
Use calloc() instead of malloc() will ensure proper initialization
even if we add more fields.

These fields (data) would even be passed down to Evas as
Evas_Event_Key_Down for instance.

src/lib/ecore_drm/ecore_drm_evdev.c
src/lib/ecore_psl1ght/ecore_psl1ght.c
src/lib/ecore_sdl/ecore_sdl.c
src/lib/ecore_wayland/ecore_wl_input.c
src/lib/ecore_x/xcb/ecore_xcb_events.c
src/lib/ecore_x/xlib/ecore_x_events.c
src/modules/ecore_imf/wayland/wayland_imcontext.c

index a8383fa..cbf58f3 100644 (file)
@@ -308,7 +308,7 @@ _device_handle_key(struct libinput_device *device, struct libinput_event_keyboar
 
    if (!compose) compose = compose_buffer;
 
-   e = malloc(sizeof(Ecore_Event_Key) + strlen(key) + strlen(keyname) +
+   e = calloc(1, sizeof(Ecore_Event_Key) + strlen(key) + strlen(keyname) +
               ((compose[0] != '\0') ? strlen(compose) : 0) + 3);
    if (!e) return;
 
@@ -327,7 +327,6 @@ _device_handle_key(struct libinput_device *device, struct libinput_event_keyboar
    e->timestamp = timestamp;
    e->same_screen = 1;
    e->keycode = code;
-   e->data = NULL;
 
    _device_modifiers_update(edev);
 
index ad73f00..e0f5580 100644 (file)
@@ -351,7 +351,7 @@ _ecore_psl1ght_event_key(u16 key)
    u16 utf16;
    unsigned int i;
 
-   ev = malloc(sizeof(Ecore_Event_Key));
+   ev = calloc(1, sizeof(Ecore_Event_Key));
    if (!ev) return NULL;
 
    ev->timestamp = _ecore_psl1ght_get_time ();
@@ -467,7 +467,7 @@ _ecore_psl1ght_pad_button (const char *name, int pressed)
 {
    Ecore_Event_Key *ev = NULL;
 
-   ev = malloc(sizeof(Ecore_Event_Key));
+   ev = calloc(1, sizeof(Ecore_Event_Key));
    if (!ev) return;
 
    ev->timestamp = _ecore_psl1ght_get_time ();
index 8b58977..ff026f5 100644 (file)
@@ -129,7 +129,7 @@ _ecore_sdl_event_key(SDL_Event *event, double timestamp)
    Ecore_Event_Key *ev;
    unsigned int i;
 
-   ev = malloc(sizeof(Ecore_Event_Key));
+   ev = calloc(1, sizeof(Ecore_Event_Key));
    if (!ev) return NULL;
 
    ev->timestamp = timestamp;
index d9f2fd3..6a873e0 100644 (file)
@@ -804,7 +804,7 @@ _ecore_wl_input_cb_keyboard_key(void *data, struct wl_keyboard *keyboard EINA_UN
    _ecore_wl_input_keymap_translate_keysym(sym, input->modifiers,
                                            compose, sizeof(compose));
 
-   e = malloc(sizeof(Ecore_Event_Key) + strlen(key) + strlen(keyname) +
+   e = calloc(1, sizeof(Ecore_Event_Key) + strlen(key) + strlen(keyname) +
               ((compose[0] != '\0') ? strlen(compose) : 0) + 3);
    if (!e) return;
 
index e37b2aa..0b71451 100644 (file)
@@ -2401,14 +2401,13 @@ _ecore_xcb_event_key_press(xcb_generic_event_t *event)
    key = _ecore_xcb_keymap_keysym_to_string(sym);
    if (!key) key = keyname;
 
-   e = malloc(sizeof(Ecore_Event_Key) + strlen(key) + strlen(keyname) +
+   e = calloc(1, sizeof(Ecore_Event_Key) + strlen(key) + strlen(keyname) +
               (compose ? strlen(compose) : 0) + 3);
    if (e)
      {
         e->keyname = (char *)(e + 1);
         e->key = e->keyname + strlen(keyname) + 1;
 
-        e->compose = NULL;
         if (compose) e->compose = (e->key + strlen(key) + 1);
         e->string = e->compose;
 
@@ -2471,14 +2470,13 @@ _ecore_xcb_event_key_release(xcb_generic_event_t *event)
    key = _ecore_xcb_keymap_keysym_to_string(sym);
    if (!key) key = keyname;
 
-   e = malloc(sizeof(Ecore_Event_Key) + strlen(key) + strlen(keyname) +
+   e = calloc(1, sizeof(Ecore_Event_Key) + strlen(key) + strlen(keyname) +
               (compose ? strlen(compose) : 0) + 3);
    if (e)
      {
         e->keyname = (char *)(e + 1);
         e->key = e->keyname + strlen(keyname) + 1;
 
-        e->compose = NULL;
         if (compose) e->compose = (e->key + strlen(key) + 1);
         e->string = e->compose;
 
index e14efd7..25d8fa2 100644 (file)
@@ -366,9 +366,8 @@ _ecore_key_press(int event,
    if (!key)
      key = keyname;
 
-   e =
-     malloc(sizeof(Ecore_Event_Key) + strlen(key) + strlen(keyname) +
-            (compose ? strlen(compose) : 0) + 3);
+   e = calloc(1, sizeof(Ecore_Event_Key) + strlen(key) + strlen(keyname) +
+              (compose ? strlen(compose) : 0) + 3);
    if (!e)
      goto on_error;
 
index c324d1a..4f2d982 100644 (file)
@@ -466,7 +466,7 @@ text_input_keysym(void                 *data,
                      "key event (key: %s)",
                      keyname);
 
-   e = malloc(sizeof(Ecore_Event_Key) + strlen(key) + strlen(keyname) + 
+   e = calloc(1, sizeof(Ecore_Event_Key) + strlen(key) + strlen(keyname) +
               strlen(string) + 3);
    if (!e) return;