Now that cmdlists are reference counted, there is no need for two-step
authornicm <nicm@openbsd.org>
Wed, 14 May 2014 06:21:19 +0000 (06:21 +0000)
committernicm <nicm@openbsd.org>
Wed, 14 May 2014 06:21:19 +0000 (06:21 +0000)
deletion via the dead_key_bindings tree. From Keith Amling.

usr.bin/tmux/key-bindings.c
usr.bin/tmux/server.c
usr.bin/tmux/tmux.h

index 23260b6..3c86104 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: key-bindings.c,v 1.40 2014/04/17 07:55:43 nicm Exp $ */
+/* $OpenBSD: key-bindings.c,v 1.41 2014/05/14 06:21:19 nicm Exp $ */
 
 /*
  * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -27,7 +27,6 @@
 RB_GENERATE(key_bindings, key_binding, entry, key_bindings_cmp);
 
 struct key_bindings    key_bindings;
-struct key_bindings    dead_key_bindings;
 
 int
 key_bindings_cmp(struct key_binding *bd1, struct key_binding *bd2)
@@ -78,20 +77,8 @@ key_bindings_remove(int key)
        if ((bd = key_bindings_lookup(key)) == NULL)
                return;
        RB_REMOVE(key_bindings, &key_bindings, bd);
-       RB_INSERT(key_bindings, &dead_key_bindings, bd);
-}
-
-void
-key_bindings_clean(void)
-{
-       struct key_binding      *bd;
-
-       while (!RB_EMPTY(&dead_key_bindings)) {
-               bd = RB_ROOT(&dead_key_bindings);
-               RB_REMOVE(key_bindings, &dead_key_bindings, bd);
-               cmd_list_free(bd->cmdlist);
-               free(bd);
-       }
+       cmd_list_free(bd->cmdlist);
+       free(bd);
 }
 
 void
index 2a7e143..f3706ae 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: server.c,v 1.113 2014/04/24 09:14:43 nicm Exp $ */
+/* $OpenBSD: server.c,v 1.114 2014/05/14 06:21:19 nicm Exp $ */
 
 /*
  * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -208,7 +208,6 @@ server_loop(void)
                server_window_loop();
                server_client_loop();
 
-               key_bindings_clean();
                server_clean_dead();
        }
 }
index 0f54957..e897fde 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: tmux.h,v 1.463 2014/05/13 08:08:32 nicm Exp $ */
+/* $OpenBSD: tmux.h,v 1.464 2014/05/14 06:21:19 nicm Exp $ */
 
 /*
  * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -1889,7 +1889,6 @@ RB_PROTOTYPE(key_bindings, key_binding, entry, key_bindings_cmp);
 struct key_binding *key_bindings_lookup(int);
 void    key_bindings_add(int, int, struct cmd_list *);
 void    key_bindings_remove(int);
-void    key_bindings_clean(void);
 void    key_bindings_init(void);
 void    key_bindings_dispatch(struct key_binding *, struct client *);