From 843717d25c5cf36cb3f8571c72b160f427441cb2 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 16 Dec 2009 21:23:20 +0100 Subject: playlist_list: check if open method is present Use open_uri() / open_stream() only after checking that they are implemented. --- src/playlist_list.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/playlist_list.c') diff --git a/src/playlist_list.c b/src/playlist_list.c index 1ac4d4358..175003c19 100644 --- a/src/playlist_list.c +++ b/src/playlist_list.c @@ -131,7 +131,8 @@ playlist_list_open_uri(const char *uri) for (unsigned i = 0; playlist_plugins[i] != NULL; ++i) { const struct playlist_plugin *plugin = playlist_plugins[i]; - if (playlist_plugins_enabled[i] && plugin->schemes != NULL && + if (playlist_plugins_enabled[i] && plugin->open_uri != NULL && + plugin->schemes != NULL && string_array_contains(plugin->schemes, scheme)) { playlist = playlist_plugin_open_uri(plugin, uri); if (playlist != NULL) @@ -155,6 +156,7 @@ playlist_list_open_stream_mime(struct input_stream *is) const struct playlist_plugin *plugin = playlist_plugins[i]; if (playlist_plugins_enabled[i] && + plugin->open_stream != NULL && plugin->mime_types != NULL && string_array_contains(plugin->mime_types, is->mime)) { /* rewind the stream, so each plugin gets a @@ -181,7 +183,9 @@ playlist_list_open_stream_suffix(struct input_stream *is, const char *suffix) for (unsigned i = 0; playlist_plugins[i] != NULL; ++i) { const struct playlist_plugin *plugin = playlist_plugins[i]; - if (playlist_plugins_enabled[i] && plugin->suffixes != NULL && + if (playlist_plugins_enabled[i] && + plugin->open_stream != NULL && + plugin->suffixes != NULL && string_array_contains(plugin->suffixes, suffix)) { /* rewind the stream, so each plugin gets a fresh start */ -- cgit v1.2.3