diff options
author | Nicholas Marriott <nicm@openbsd.org> | 2012-03-17 18:24:07 +0000 |
---|---|---|
committer | Nicholas Marriott <nicm@openbsd.org> | 2012-03-17 18:24:07 +0000 |
commit | d3c842d3678e52275c944123f00a2a974eb5d965 (patch) | |
tree | d0b234a4364504e17f53d90aa3e635134c0f01cc | |
parent | a597e3546cf667c2db91aea5545d2cb2125366f5 (diff) | |
download | rtmux-d3c842d3678e52275c944123f00a2a974eb5d965.tar.gz rtmux-d3c842d3678e52275c944123f00a2a974eb5d965.tar.bz2 rtmux-d3c842d3678e52275c944123f00a2a974eb5d965.zip |
Check event_initialized before event_del if event may not have been set
up; libevent2 complains about this. Reported by Moriyoshi Koizumi.
-rw-r--r-- | names.c | 3 | ||||
-rw-r--r-- | server-client.c | 9 | ||||
-rw-r--r-- | server-fn.c | 6 | ||||
-rw-r--r-- | status.c | 3 | ||||
-rw-r--r-- | tty-keys.c | 6 | ||||
-rw-r--r-- | tty.c | 3 | ||||
-rw-r--r-- | window.c | 3 |
7 files changed, 22 insertions, 11 deletions
@@ -36,7 +36,8 @@ queue_window_name(struct window *w) tv.tv_sec = 0; tv.tv_usec = NAME_INTERVAL * 1000L; - evtimer_del(&w->name_timer); + if (event_initialized(&w->name_timer)) + evtimer_del(&w->name_timer); evtimer_set(&w->name_timer, window_name_callback, w); evtimer_add(&w->name_timer, &tv); } diff --git a/server-client.c b/server-client.c index ba5077e5..2f84f011 100644 --- a/server-client.c +++ b/server-client.c @@ -153,11 +153,13 @@ server_client_lost(struct client *c) evtimer_del(&c->repeat_timer); - evtimer_del(&c->identify_timer); + if (event_initialized(&c->identify_timer)) + evtimer_del(&c->identify_timer); if (c->message_string != NULL) xfree(c->message_string); - evtimer_del(&c->message_timer); + if (event_initialized (&c->message_timer)) + evtimer_del(&c->message_timer); for (i = 0; i < ARRAY_LENGTH(&c->message_log); i++) { msg = &ARRAY_ITEM(&c->message_log, i); xfree(msg->msg); @@ -176,7 +178,8 @@ server_client_lost(struct client *c) close(c->ibuf.fd); imsg_clear(&c->ibuf); - event_del(&c->event); + if (event_initialized(&c->event)) + event_del(&c->event); for (i = 0; i < ARRAY_LENGTH(&dead_clients); i++) { if (ARRAY_ITEM(&dead_clients, i) == NULL) { diff --git a/server-fn.c b/server-fn.c index b9b7b714..66298571 100644 --- a/server-fn.c +++ b/server-fn.c @@ -453,7 +453,8 @@ server_set_identify(struct client *c) tv.tv_sec = delay / 1000; tv.tv_usec = (delay % 1000) * 1000L; - evtimer_del(&c->identify_timer); + if (event_initialized (&c->identify_timer)) + evtimer_del(&c->identify_timer); evtimer_set(&c->identify_timer, server_callback_identify, c); evtimer_add(&c->identify_timer, &tv); @@ -491,7 +492,8 @@ server_update_event(struct client *c) events |= EV_READ; if (c->ibuf.w.queued > 0) events |= EV_WRITE; - event_del(&c->event); + if (event_initialized(&c->event)) + event_del(&c->event); event_set(&c->event, c->ibuf.fd, events, server_client_callback, c); event_add(&c->event, NULL); } @@ -776,7 +776,8 @@ status_message_set(struct client *c, const char *fmt, ...) tv.tv_sec = delay / 1000; tv.tv_usec = (delay % 1000) * 1000L; - evtimer_del(&c->message_timer); + if (event_initialized (&c->message_timer)) + evtimer_del(&c->message_timer); evtimer_set(&c->message_timer, status_message_callback, c); evtimer_add(&c->message_timer, &tv); @@ -549,7 +549,8 @@ start_timer: tv.tv_sec = delay / 1000; tv.tv_usec = (delay % 1000) * 1000L; - evtimer_del(&tty->key_timer); + if (event_initialized(&tty->key_timer)) + evtimer_del(&tty->key_timer); evtimer_set(&tty->key_timer, tty_keys_callback, tty); evtimer_add(&tty->key_timer, &tv); @@ -573,7 +574,8 @@ found_key: goto handle_key; handle_key: - evtimer_del(&tty->key_timer); + if (event_initialized(&tty->key_timer)) + evtimer_del(&tty->key_timer); if (key != KEYC_NONE) tty->key_callback(key, &mouse, tty->key_data); @@ -279,7 +279,8 @@ tty_close(struct tty *tty) tty->log_fd = -1; } - evtimer_del(&tty->key_timer); + if (event_initialized(&tty->key_timer)) + evtimer_del(&tty->key_timer); tty_stop_tty(tty); if (tty->flags & TTY_OPENED) { @@ -350,7 +350,8 @@ window_destroy(struct window *w) if (w->layout_root != NULL) layout_free(w); - evtimer_del(&w->name_timer); + if (event_initialized(&w->name_timer)) + evtimer_del(&w->name_timer); options_free(&w->options); |