- (*newone).table = new kb_keymap;
- return (*newone).table->defkey(seq, action, idx + 1);
- }
-}
-
-
-/* ---F+------------------------------------------------------------------ *\
- Function : kb_keymap::~kb_keymap
- Called by : [destructor]
- Purpose : free keymap and its descendents
- Parameters: none
- Returns : nothing
-\* ---F------------------------------------------------------------------- */
-
-kb_keymap::~kb_keymap()
-{
- // This could be done by a destructor in kb_key.
- for(Table::iterator it = table.begin(); it != table.end(); ++it) {
- delete (*it).table;
+ newone->table.reset(new kb_keymap);
+ return newone->table->defkey(seq, action, idx + 1);