diff options
author | Oliver Stöneberg <firewave@users.noreply.github.com> | 2014-05-14 09:37:27 +0000 |
---|---|---|
committer | Oliver Stöneberg <firewave@users.noreply.github.com> | 2014-05-14 09:37:27 +0000 |
commit | 2836bb12bce71998c43a6455339e22b249a55410 (patch) | |
tree | 7ee214f0d9fd1397969fcc67e3b134de9273c80a | |
parent | bf35b4dbb432b8d46d059781820bfc4d8e80b3b0 (diff) |
fixed memory leaks in floppy_image_device (nw)
-rw-r--r-- | src/emu/imagedev/floppy.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/emu/imagedev/floppy.c b/src/emu/imagedev/floppy.c index 1eb1d5a1e40..e05f0fbe391 100644 --- a/src/emu/imagedev/floppy.c +++ b/src/emu/imagedev/floppy.c @@ -147,7 +147,8 @@ floppy_image_device::floppy_image_device(const machine_config &mconfig, device_t : device_t(mconfig, type, name, tag, owner, clock, shortname, source), device_image_interface(mconfig, *this), device_slot_card_interface(mconfig, *this), - image(NULL) + image(NULL), + fif_list(NULL) { extension_list[0] = '\0'; } @@ -158,6 +159,12 @@ floppy_image_device::floppy_image_device(const machine_config &mconfig, device_t floppy_image_device::~floppy_image_device() { + for(floppy_image_format_t *format = fif_list; format; ) { + floppy_image_format_t* tmp_format = format; + format = format->next; + delete tmp_format; + } + fif_list = NULL; } void floppy_image_device::setup_load_cb(load_cb cb) @@ -188,7 +195,7 @@ void floppy_image_device::setup_wpt_cb(wpt_cb cb) void floppy_image_device::set_formats(const floppy_format_type *formats) { extension_list[0] = '\0'; - fif_list = 0; + fif_list = NULL; for(int cnt=0; formats[cnt]; cnt++) { // allocate a new format |