changeset 3963:572258c68dfb

- for input plugins which provide probe_for_tuple only, now input_do_check_file() calls probe_for_tuple regardless of cfg.use_pl_metadata. - now audacious frees lists of input plugins attached to ext_hash on quit.
author Yoshiki Yazawa <yaz@cc.rim.or.jp>
date Sat, 17 Nov 2007 20:49:26 +0900
parents a575c29cee05
children 32bd9d553b0b
files src/audacious/input.c src/audacious/pluginenum.c
diffstat 2 files changed, 10 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/audacious/input.c	Sat Nov 17 17:07:46 2007 +0900
+++ b/src/audacious/input.c	Sat Nov 17 20:49:26 2007 +0900
@@ -318,9 +318,9 @@
 
     vfs_rewind(fd);
 
-    if (ip->probe_for_tuple &&
-        cfg.use_pl_metadata &&
-        (!loading || (loading && cfg.get_info_on_load)) ) {
+    /* some input plugins provide probe_for_tuple() only. */
+    if ( (ip->probe_for_tuple && !ip->is_our_file_from_vfs && !ip->is_our_file) ||
+         (ip->probe_for_tuple && (cfg.use_pl_metadata && (!loading || (loading && cfg.get_info_on_load)))) ) {
 
         Tuple *tuple = ip->probe_for_tuple(filename_proxy, fd);
 
--- a/src/audacious/pluginenum.c	Sat Nov 17 17:07:46 2007 +0900
+++ b/src/audacious/pluginenum.c	Sat Nov 17 20:49:26 2007 +0900
@@ -885,6 +885,12 @@
     }
 }
 
+static void
+remove_list(gpointer key, gpointer value, gpointer data)
+{
+    g_list_free(*(GList **)value);
+}
+
 void
 plugin_system_cleanup(void)
 {
@@ -1052,5 +1058,6 @@
     }
 
     mowgli_dictionary_destroy(plugin_dict, NULL, NULL);
+    g_hash_table_foreach(ext_hash, remove_list, NULL);
     g_hash_table_remove_all(ext_hash);
 }