diff segacd.c @ 2164:4fbe1e7c4a73

Don't leak all Sega CD resources when freeing a Genesis instance
author Michael Pavone <pavone@retrodev.com>
date Tue, 12 Jul 2022 09:22:57 -0700
parents 3f09312685e3
children 54cd40fc0da5
line wrap: on
line diff
--- a/segacd.c	Thu Jun 09 09:35:38 2022 -0700
+++ b/segacd.c	Tue Jul 12 09:22:57 2022 -0700
@@ -1490,6 +1490,19 @@
 	return cd;
 }
 
+void free_segacd(segacd_context *cd)
+{
+	cdd_fader_deinit(&cd->fader);
+	rf5c164_deinit(&cd->pcm);
+	m68k_options_free(cd->m68k->options);
+	free(cd->m68k);
+	free(cd->bram);
+	free(cd->pcm_ram);
+	free(cd->word_ram);
+	free(cd->prog_ram);
+	free(cd->rom_mut);
+}
+
 memmap_chunk *segacd_main_cpu_map(segacd_context *cd, uint8_t cart_boot, uint32_t *num_chunks)
 {
 	static memmap_chunk main_cpu_map[] = {