summaryrefslogtreecommitdiffstats
path: root/abs/extra/sdl_mixer/mikmod2.patch
diff options
context:
space:
mode:
Diffstat (limited to 'abs/extra/sdl_mixer/mikmod2.patch')
-rw-r--r--abs/extra/sdl_mixer/mikmod2.patch35
1 files changed, 35 insertions, 0 deletions
diff --git a/abs/extra/sdl_mixer/mikmod2.patch b/abs/extra/sdl_mixer/mikmod2.patch
new file mode 100644
index 0000000..6e89ca8
--- /dev/null
+++ b/abs/extra/sdl_mixer/mikmod2.patch
@@ -0,0 +1,35 @@
+
+# HG changeset patch
+# User Sam Lantinga <slouken@libsdl.org>
+# Date 1343000017 25200
+# Node ID 2ebb0d016f277f7f643d8a66ed0e1099e10d1fba
+# Parent 56cad6484b04f83c8d42428c755a046678506436
+Fixed normal linking with libmikmod and linking with earlier versions of libmikmod.
+
+diff -r 56cad6484b04 -r 2ebb0d016f27 dynamic_mod.c
+--- a/dynamic_mod.c Sun Jul 22 16:13:27 2012 -0700
++++ b/dynamic_mod.c Sun Jul 22 16:33:37 2012 -0700
+@@ -97,8 +97,8 @@
+ (void (*)(void*))
+ SDL_LoadFunction(mikmod.handle, "MikMod_free");
+ if ( mikmod.MikMod_free == NULL ) {
+- SDL_UnloadObject(mikmod.handle);
+- return -1;
++ /* libmikmod 3.1 and earlier doesn't have it */
++ mikmod.MikMod_free = free;
+ }
+ mikmod.Player_Active =
+ (BOOL (*)(void))
+@@ -246,6 +246,11 @@
+ mikmod.MikMod_RegisterDriver = MikMod_RegisterDriver;
+ mikmod.MikMod_errno = &MikMod_errno;
+ mikmod.MikMod_strerror = MikMod_strerror;
++#if LIBMIKMOD_VERSION < ((3<<16)|(2<<8))
++ mikmod.MikMod_free = free;
++#else
++ mikmod.MikMod_free = MikMod_free;
++#endif
+ mikmod.Player_Active = Player_Active;
+ mikmod.Player_Free = Player_Free;
+ mikmod.Player_LoadGeneric = Player_LoadGeneric;
+