diff --git a/test/read_tags.cxx b/test/read_tags.cxx index a345f87bf..06598b8a3 100644 --- a/test/read_tags.cxx +++ b/test/read_tags.cxx @@ -29,6 +29,7 @@ #include "fs/Path.hxx" #include "thread/Cond.hxx" #include "Log.hxx" +#include "util/ScopeExit.hxx" #include @@ -89,7 +90,10 @@ try { const ScopeIOThread io_thread; input_stream_global_init(); + AtScopeExit() { input_stream_global_finish(); }; + decoder_plugin_init_all(); + AtScopeExit() { decoder_plugin_deinit_all(); }; plugin = decoder_plugin_from_name(decoder_name); if (plugin == NULL) { @@ -107,9 +111,6 @@ try { success = plugin->ScanStream(*is, print_handler, nullptr); } - decoder_plugin_deinit_all(); - input_stream_global_finish(); - if (!success) { fprintf(stderr, "Failed to read tags\n"); return EXIT_FAILURE;