| |
| # HG changeset patch |
| # User Sam Lantinga <slouken@libsdl.org> |
| # Date 1342998807 25200 |
| # Node ID 56cad6484b04f83c8d42428c755a046678506436 |
| # Parent c92001a2c18f628698c58aa4e05a7335d10d0e9e |
| Paul P Komkoff Jr fixed malloc/free mismatch in the MikMod driver |
| |
| diff -r c92001a2c18f -r 56cad6484b04 CHANGES |
| --- a/CHANGES Sun Mar 04 21:32:47 2012 +0000 |
| +++ b/CHANGES Sun Jul 22 16:13:27 2012 -0700 |
| @@ -1,3 +1,7 @@ |
| +1.2.13: |
| +Paul P Komkoff Jr - Sun Jul 22 16:12:28 PDT 2012 |
| + * Fixed malloc/free mismatch in the MikMod driver |
| + |
| 1.2.12: |
| Sam Lantinga - Sat Jan 14 22:00:29 2012 -0500 |
| * Fixed seek offset with SMPEG (was relative, should be absolute) |
| diff -r c92001a2c18f -r 56cad6484b04 dynamic_mod.c |
| --- a/dynamic_mod.c Sun Mar 04 21:32:47 2012 +0000 |
| +++ b/dynamic_mod.c Sun Jul 22 16:13:27 2012 -0700 |
| @@ -93,6 +93,13 @@ |
| SDL_UnloadObject(mikmod.handle); |
| return -1; |
| } |
| + mikmod.MikMod_free = |
| + (void (*)(void*)) |
| + SDL_LoadFunction(mikmod.handle, "MikMod_free"); |
| + if ( mikmod.MikMod_free == NULL ) { |
| + SDL_UnloadObject(mikmod.handle); |
| + return -1; |
| + } |
| mikmod.Player_Active = |
| (BOOL (*)(void)) |
| SDL_LoadFunction(mikmod.handle, "Player_Active"); |
| diff -r c92001a2c18f -r 56cad6484b04 dynamic_mod.h |
| --- a/dynamic_mod.h Sun Mar 04 21:32:47 2012 +0000 |
| +++ b/dynamic_mod.h Sun Jul 22 16:13:27 2012 -0700 |
| @@ -35,6 +35,7 @@ |
| void (*MikMod_RegisterDriver)(struct MDRIVER*); |
| int* MikMod_errno; |
| char* (*MikMod_strerror)(int); |
| + void (*MikMod_free)(void*); |
| BOOL (*Player_Active)(void); |
| void (*Player_Free)(MODULE*); |
| MODULE* (*Player_LoadGeneric)(MREADER*,int,BOOL); |
| diff -r c92001a2c18f -r 56cad6484b04 music_mod.c |
| --- a/music_mod.c Sun Mar 04 21:32:47 2012 +0000 |
| +++ b/music_mod.c Sun Jul 22 16:13:27 2012 -0700 |
| @@ -109,13 +109,13 @@ |
| |
| list = mikmod.MikMod_InfoDriver(); |
| if ( list ) |
| - free(list); |
| + mikmod.MikMod_free(list); |
| else |
| mikmod.MikMod_RegisterDriver(mikmod.drv_nos); |
| |
| list = mikmod.MikMod_InfoLoader(); |
| if ( list ) |
| - free(list); |
| + mikmod.MikMod_free(list); |
| else |
| mikmod.MikMod_RegisterAllLoaders(); |
| |