From 489e2955687bccb263e1ece3a1615b3356c990f2 Mon Sep 17 00:00:00 2001 From: Benjamin Franzke Date: Tue, 13 Dec 2011 16:27:18 +0100 Subject: Fix some leaks --- src/interface.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/interface.c') diff --git a/src/interface.c b/src/interface.c index a744cfd..9cc31f8 100644 --- a/src/interface.c +++ b/src/interface.c @@ -198,10 +198,17 @@ interface_clear(struct context *ctx) { g_source_remove(ctx->resize_source_id); g_source_remove(ctx->input_source_id); +#ifdef HAVE_SIGNALFD close(ctx->signal_fd); +#endif clear(); refresh(); + delwin(ctx->menu_win); + delwin(ctx->msg_win); endwin(); + delscreen(NULL); + if (ctx->status) + g_free(ctx->status); } void @@ -278,7 +285,8 @@ interface_init(struct context *ctx) exit(EXIT_FAILURE); ctx->signal_fd = signalfd(-1, &mask, 0); channel = g_io_channel_unix_new(ctx->signal_fd); - g_io_add_watch(channel, G_IO_IN, resize_gio, ctx); + ctx->resize_source_id = + g_io_add_watch(channel, G_IO_IN, resize_gio, ctx); g_io_channel_unref(channel); } #else -- cgit