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 {