--- rxvt-unicode/src/keyboard.C 2011/12/03 11:31:56 1.54 +++ rxvt-unicode/src/keyboard.C 2011/12/03 11:47:19 1.55 @@ -114,28 +114,22 @@ keysym_t *key = new keysym_t; - if (key && translation) - { - key->keysym = keysym; - key->state = state; - key->str = translation; - key->type = keysym_t::STRING; - - if (strncmp (translation, "builtin:", 8) == 0) - key->type = keysym_t::BUILTIN; - - if (keymap.size () == keymap.capacity ()) - keymap.reserve (keymap.size () * 2); - - keymap.push_back (key); - hash[0] = 3; - } - else - { - delete key; - free (translation); - rxvt_fatal ("memory allocation failure. aborting.\n"); - } + if (!key) + rxvt_fatal ("memory allocation failure. aborting.\n"); + + key->keysym = keysym; + key->state = state; + key->str = translation; + key->type = keysym_t::STRING; + + if (strncmp (translation, "builtin:", 8) == 0) + key->type = keysym_t::BUILTIN; + + if (keymap.size () == keymap.capacity ()) + keymap.reserve (keymap.size () * 2); + + keymap.push_back (key); + hash[0] = 3; } bool