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.
This commit is contained in:
Max Kellermann 2008-11-03 07:30:42 +01:00
parent 79d70f124d
commit bb15c3bd45

View File

@ -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,