Mercurial > hg > forks > 3x666-SDL
changeset 24:7c314ac342f4
Cleanups and plug some memory leaks.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Fri, 15 Mar 2013 23:21:08 +0200 |
parents | 702fb015c844 |
children | f896fe6a98da |
files | 3x666.c |
diffstat | 1 files changed, 17 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/3x666.c Fri Mar 15 21:32:04 2013 +0200 +++ b/3x666.c Fri Mar 15 23:21:08 2013 +0200 @@ -363,7 +363,7 @@ SDL_Color pal[SET_VID_COLORS]; int i, a = 3, b = 0; - for (i = 255; i; i--) + for (i = SET_VID_COLORS - 1; i >= 0; i--) { int n = (i + 128) & 255; pal[n].r = (abs(i - 140) >> a) & 255; @@ -433,7 +433,8 @@ 22, 17, 17, 22 }; -int *drum0, *drum1; +int *drum0 = NULL, + *drum1 = NULL; /* sampling sucks! */ @@ -466,6 +467,12 @@ } +void audio_close() +{ + if (drum0) free(drum0); + if (drum1) free(drum1); +} + static int engineRenderAudio(Sint32 *stream) { static int rowno = 0; @@ -915,6 +922,8 @@ int flagz = 0, flixtim = 0; char *phiword = NULL, *dizainword = NULL; + memset(&engine, 0, sizeof(engine)); + dmPrint( SET_PROG_NAME " by Ocsa (PWP) (c) 1998\n" "libSDL port by ccr/TNSP^PWP (c) 2013\n"); @@ -1150,8 +1159,13 @@ SDL_PauseAudio(1); SDL_UnlockAudio(); + audio_close(); + if (initSDL) SDL_Quit(); - + + if (engine.mixBuf) + free(engine.mixBuf); + return 0; }