Mercurial > repos > blastem
comparison libblastem.c @ 1691:e96d0d3bec7f
Don't leak a system context when a game is unloaded
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Sun, 20 Jan 2019 22:48:16 -0800 |
parents | 319d90025d50 |
children | 9e4dd1595f37 |
comparison
equal
deleted
inserted
replaced
1690:319d90025d50 | 1691:e96d0d3bec7f |
---|---|
54 { | 54 { |
55 } | 55 } |
56 | 56 |
57 RETRO_API void retro_deinit(void) | 57 RETRO_API void retro_deinit(void) |
58 { | 58 { |
59 if (current_system) { | |
60 retro_unload_game(); | |
61 } | |
59 } | 62 } |
60 | 63 |
61 RETRO_API unsigned retro_api_version(void) | 64 RETRO_API unsigned retro_api_version(void) |
62 { | 65 { |
63 return RETRO_API_VERSION; | 66 return RETRO_API_VERSION; |
183 } | 186 } |
184 | 187 |
185 /* Unloads a currently loaded game. */ | 188 /* Unloads a currently loaded game. */ |
186 RETRO_API void retro_unload_game(void) | 189 RETRO_API void retro_unload_game(void) |
187 { | 190 { |
188 | |
189 free(media.dir); | 191 free(media.dir); |
190 free(media.name); | 192 free(media.name); |
191 free(media.extension); | 193 free(media.extension); |
192 | 194 media.dir = media.name = media.extension = NULL; |
195 //buffer is freed by the context | |
196 media.buffer = NULL; | |
197 current_system->free_context(current_system); | |
198 current_system = NULL; | |
193 } | 199 } |
194 | 200 |
195 /* Gets region of game. */ | 201 /* Gets region of game. */ |
196 RETRO_API unsigned retro_get_region(void) | 202 RETRO_API unsigned retro_get_region(void) |
197 { | 203 { |