decoder/List: add RAII class

This commit is contained in:
Max Kellermann
2019-02-05 22:11:45 +01:00
parent e85b24bee0
commit 7a23c123c8
7 changed files with 21 additions and 23 deletions

View File

@@ -534,7 +534,7 @@ mpd_main_after_fork(const ConfigData &raw_config, const Config &config)
pcm_convert_global_init(raw_config);
decoder_plugin_init_all(raw_config);
const ScopeDecoderPluginsInit decoder_plugins_init(raw_config);
#ifdef ENABLE_DATABASE
const bool create_db = InitDatabaseAndStorage(raw_config);
@@ -669,7 +669,6 @@ mpd_main_after_fork(const ConfigData &raw_config, const Config &config)
instance->FinishShutdownPartitions();
command_finish();
decoder_plugin_deinit_all();
return EXIT_SUCCESS;
}

View File

@@ -42,6 +42,17 @@ decoder_plugin_init_all(const ConfigData &config);
void
decoder_plugin_deinit_all() noexcept;
class ScopeDecoderPluginsInit {
public:
explicit ScopeDecoderPluginsInit(const ConfigData &config) {
decoder_plugin_init_all(config);
}
~ScopeDecoderPluginsInit() noexcept {
decoder_plugin_deinit_all();
}
};
template<typename F>
static inline const DecoderPlugin *
decoder_plugins_find(F f) noexcept