From: Rolf Bjarne Kvinge Date: Tue, 13 Sep 2016 11:18:10 +0000 (+0200) Subject: [mini] Provide a free function to the saved signal handler hash table. X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=mono.git;a=commitdiff_plain;h=14bb051f363ff2770a4ccf183b616d7cef3ddb4c [mini] Provide a free function to the saved signal handler hash table. This makes the cleanup code simpler, and also makes it easier to replace saved signal handlers without having to worry about leaking memory. --- diff --git a/mono/mini/mini-posix.c b/mono/mini/mini-posix.c index 6f6e266a3b0..e192403487b 100644 --- a/mono/mini/mini-posix.c +++ b/mono/mini/mini-posix.c @@ -167,21 +167,14 @@ save_old_signal_handler (int signo, struct sigaction *old_action) handler_to_save->sa_flags = old_action->sa_flags; if (!mono_saved_signal_handlers) - mono_saved_signal_handlers = g_hash_table_new (NULL, NULL); + mono_saved_signal_handlers = g_hash_table_new_full (NULL, NULL, NULL, g_free); g_hash_table_insert (mono_saved_signal_handlers, GINT_TO_POINTER (signo), handler_to_save); } -static void -free_saved_sig_handler_func (gpointer key, gpointer value, gpointer user_data) -{ - g_free (value); -} - static void free_saved_signal_handlers (void) { if (mono_saved_signal_handlers) { - g_hash_table_foreach (mono_saved_signal_handlers, free_saved_sig_handler_func, NULL); g_hash_table_destroy (mono_saved_signal_handlers); mono_saved_signal_handlers = NULL; }