decoder/List: add RAII class
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user