From bb15c3bd4586fd58b82aa8006a2d658b88511a65 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Mon, 3 Nov 2008 07:30:42 +0100 Subject: 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. --- src/decoder/mod_plugin.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) (limited to 'src') diff --git a/src/decoder/mod_plugin.c b/src/decoder/mod_plugin.c index 3575fdf56..3fb4c5610 100644 --- a/src/decoder/mod_plugin.c +++ b/src/decoder/mod_plugin.c @@ -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, -- cgit v1.2.3