xkb_keysym_t keysym = found_keycodes->keysym;
int nsyms = 0;
const xkb_keysym_t *syms_out = NULL;
+ xkb_keycode_t *tmp_keycodes = NULL;
ERROR_CHECK(keymap, return, "[%s] Invalid keymap !\n", __FUNCTION__);
{
if (*syms_out == keysym)
{
- found_keycodes->nkeycodes++;
- found_keycodes->keycodes = realloc(found_keycodes->keycodes, sizeof(int)*found_keycodes->nkeycodes);
- found_keycodes->keycodes[found_keycodes->nkeycodes-1] = key;
+ tmp_keycodes = calloc(1, sizeof(int)*(found_keycodes->nkeycodes+1));
+
+ if (tmp_keycodes)
+ {
+ memcpy(tmp_keycodes, found_keycodes->keycodes, sizeof(int)*found_keycodes->nkeycodes);
+ free(found_keycodes->keycodes);
+
+ found_keycodes->nkeycodes++;
+ found_keycodes->keycodes = tmp_keycodes;
+ found_keycodes->keycodes[found_keycodes->nkeycodes-1] = key;
+ }
}
}
}