summaryrefslogtreecommitdiffstats
path: root/abs/extra/sdl_mixer/mikmod2.patch
blob: 6e89ca82a8d93f9e941db93bb0b7fc8af5a233ff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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;