diff options
-rw-r--r-- | eel/eel-glib-extensions.c | 16 | ||||
-rw-r--r-- | eel/eel-glib-extensions.h | 1 | ||||
-rw-r--r-- | eel/eel-stock-dialogs.c | 2 | ||||
-rw-r--r-- | eel/eel-string.c | 2 | ||||
-rw-r--r-- | libnautilus-private/nautilus-directory-async.c | 4 | ||||
-rw-r--r-- | libnautilus-private/nautilus-directory.c | 3 | ||||
-rw-r--r-- | libnautilus-private/nautilus-file.c | 2 | ||||
-rw-r--r-- | src/nautilus-properties-window.c | 4 |
8 files changed, 20 insertions, 14 deletions
diff --git a/eel/eel-glib-extensions.c b/eel/eel-glib-extensions.c index beb9d7161..3190dc13f 100644 --- a/eel/eel-glib-extensions.c +++ b/eel/eel-glib-extensions.c @@ -48,7 +48,7 @@ typedef struct { GHashTable *hash_table; char *display_name; - gboolean keys_known_to_be_strings; + GHFunc foreach_func; } HashTableToFree; static GList *hash_tables_to_free_at_exit; @@ -533,16 +533,16 @@ free_hash_tables_at_exit (void) size = g_hash_table_size (hash_table_to_free->hash_table); if (size != 0) { - if (hash_table_to_free->keys_known_to_be_strings) { + if (hash_table_to_free->foreach_func) { g_print ("\n--- Hash table keys for warning below:\n"); g_hash_table_foreach (hash_table_to_free->hash_table, - print_key_string, + hash_table_to_free->foreach_func, NULL); } g_warning ("\"%s\" hash table still has %u element%s at quit time%s", hash_table_to_free->display_name, size, size == 1 ? "" : "s", - hash_table_to_free->keys_known_to_be_strings + hash_table_to_free->foreach_func ? " (keys above)" : ""); } @@ -557,6 +557,7 @@ free_hash_tables_at_exit (void) GHashTable * eel_g_hash_table_new_free_at_exit (GHashFunc hash_func, GCompareFunc key_compare_func, + GHFunc foreach_func, const char *display_name) { GHashTable *hash_table; @@ -575,8 +576,11 @@ eel_g_hash_table_new_free_at_exit (GHashFunc hash_func, hash_table_to_free = g_new (HashTableToFree, 1); hash_table_to_free->hash_table = hash_table; hash_table_to_free->display_name = g_strdup (display_name); - hash_table_to_free->keys_known_to_be_strings = - hash_func == g_str_hash; + hash_table_to_free->foreach_func = foreach_func; + if (hash_table_to_free->foreach_func == NULL && + hash_func == g_str_hash) { + hash_table_to_free->foreach_func = print_key_string; + } hash_tables_to_free_at_exit = g_list_prepend (hash_tables_to_free_at_exit, hash_table_to_free); diff --git a/eel/eel-glib-extensions.h b/eel/eel-glib-extensions.h index 68b52044b..6812f8dd2 100644 --- a/eel/eel-glib-extensions.h +++ b/eel/eel-glib-extensions.h @@ -69,6 +69,7 @@ GList * eel_g_object_list_copy (GList * /* GHashTable functions */ GHashTable *eel_g_hash_table_new_free_at_exit (GHashFunc hash_function, GCompareFunc key_compare_function, + GHFunc foreach_func, const char *display_name); void eel_g_hash_table_safe_for_each (GHashTable *hash_table, GHFunc callback, diff --git a/eel/eel-stock-dialogs.c b/eel/eel-stock-dialogs.c index e7ae48a0a..fe29ef83d 100644 --- a/eel/eel-stock-dialogs.c +++ b/eel/eel-stock-dialogs.c @@ -272,7 +272,7 @@ eel_timed_wait_start_with_duration (int duration, /* Put in the hash table so we can find it later. */ if (timed_wait_hash_table == NULL) { timed_wait_hash_table = eel_g_hash_table_new_free_at_exit - (timed_wait_hash, timed_wait_hash_equal, __FILE__ ": timed wait"); + (timed_wait_hash, timed_wait_hash_equal, NULL, __FILE__ ": timed wait"); } g_assert (g_hash_table_lookup (timed_wait_hash_table, wait) == NULL); g_hash_table_insert (timed_wait_hash_table, wait, wait); diff --git a/eel/eel-string.c b/eel/eel-string.c index c23eb9380..d45c62178 100644 --- a/eel/eel-string.c +++ b/eel/eel-string.c @@ -855,7 +855,7 @@ eel_ref_str_get_unique (const char *string) if (unique_ref_strs == NULL) { unique_ref_strs = eel_g_hash_table_new_free_at_exit (g_str_hash, g_str_equal, - "unique eel_ref_str"); + NULL, "unique eel_ref_str"); } res = g_hash_table_lookup (unique_ref_strs, string); diff --git a/libnautilus-private/nautilus-directory-async.c b/libnautilus-private/nautilus-directory-async.c index 43a51b28f..214ef4ffe 100644 --- a/libnautilus-private/nautilus-directory-async.c +++ b/libnautilus-private/nautilus-directory-async.c @@ -365,7 +365,7 @@ async_job_start (NautilusDirectory *directory, if (async_job_count >= MAX_ASYNC_JOBS) { if (waiting_directories == NULL) { waiting_directories = eel_g_hash_table_new_free_at_exit - (NULL, NULL, + (NULL, NULL, NULL, "nautilus-directory-async.c: waiting_directories"); } @@ -381,7 +381,7 @@ async_job_start (NautilusDirectory *directory, char *uri; if (async_jobs == NULL) { async_jobs = eel_g_hash_table_new_free_at_exit - (g_str_hash, g_str_equal, + (g_str_hash, g_str_equal, NULL, "nautilus-directory-async.c: async_jobs"); } uri = nautilus_directory_get_uri (directory); diff --git a/libnautilus-private/nautilus-directory.c b/libnautilus-private/nautilus-directory.c index 34f92bf78..9142a8c03 100644 --- a/libnautilus-private/nautilus-directory.c +++ b/libnautilus-private/nautilus-directory.c @@ -348,7 +348,8 @@ nautilus_directory_get_internal (GFile *location, gboolean create) /* Create the hash table first time through. */ if (directories == NULL) { directories = eel_g_hash_table_new_free_at_exit - (g_file_hash, (GCompareFunc)g_file_equal, "nautilus-directory.c: directories"); + (g_file_hash, (GCompareFunc)g_file_equal, NULL, + "nautilus-directory.c: directories"); add_preferences_callbacks (); } diff --git a/libnautilus-private/nautilus-file.c b/libnautilus-private/nautilus-file.c index a7a0e769e..5ebc29e61 100644 --- a/libnautilus-private/nautilus-file.c +++ b/libnautilus-private/nautilus-file.c @@ -550,7 +550,7 @@ modify_link_hash_table (NautilusFile *file, /* Create the hash table first time through. */ if (symbolic_links == NULL) { symbolic_links = eel_g_hash_table_new_free_at_exit - (g_str_hash, g_str_equal, "nautilus-file.c: symbolic_links"); + (g_str_hash, g_str_equal, NULL, "nautilus-file.c: symbolic_links"); } target_uri = nautilus_file_get_symbolic_link_target_uri (file); diff --git a/src/nautilus-properties-window.c b/src/nautilus-properties-window.c index 4c23d7e80..de3acd072 100644 --- a/src/nautilus-properties-window.c +++ b/src/nautilus-properties-window.c @@ -5087,12 +5087,12 @@ nautilus_properties_window_present (GList *original_files, /* Create the hash tables first time through. */ if (windows == NULL) { windows = eel_g_hash_table_new_free_at_exit - (NULL, NULL, "property windows"); + (NULL, NULL, NULL, "property windows"); } if (pending_lists == NULL) { pending_lists = eel_g_hash_table_new_free_at_exit - (g_str_hash, g_str_equal, "pending property window files"); + (g_str_hash, g_str_equal, NULL, "pending property window files"); } /* Look to see if there's already a window for this file. */ |