Commit bb15c3bd authored by Max Kellermann's avatar Max Kellermann

mod: always initialize libmikmod

The "mod" decoder plugin was being initialized lazily, but was deinitialized unconditionally. That led to segmentation faults. Convert mod_initMikMod() to be the global module initialization method. The MPD core should care about lazy initialization.
parent 79d70f12
......@@ -181,9 +181,6 @@ mod_decode(struct decoder *decoder, const char *path)
float secPerByte;
enum decoder_command cmd = DECODE_COMMAND_NONE;
if (!mod_initMikMod())
return false;
if (!(data = mod_open(path))) {
ERROR("failed to open mod: %s\n", path);
MikMod_Exit();
......@@ -222,11 +219,6 @@ static struct tag *modTagDup(const char *file)
MODULE *moduleHandle;
char *title;
if (!mod_initMikMod()) {
DEBUG("modTagDup: Failed to initialize MikMod\n");
return NULL;
}
path2 = g_strdup(file);
moduleHandle = Player_Load(path2, 128, 0);
g_free(path2);
......@@ -275,6 +267,7 @@ static const char *const modSuffixes[] = {
const struct decoder_plugin modPlugin = {
.name = "mod",
.init = mod_initMikMod,
.finish = mod_finishMikMod,
.file_decode = mod_decode,
.tag_dup = modTagDup,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment