diff options
Diffstat (limited to 'src/emu/input.c')
-rw-r--r-- | src/emu/input.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/emu/input.c b/src/emu/input.c index 4d3690f34b5..89d19bff793 100644 --- a/src/emu/input.c +++ b/src/emu/input.c @@ -759,7 +759,11 @@ input_device *input_device_add(running_machine *machine, input_device_class devc assert(devclass != DEVICE_CLASS_INVALID && devclass < DEVICE_CLASS_MAXIMUM); /* allocate a new device */ - devlist->list = auto_extend_array(machine, devlist->list, input_device, devlist->count + 1); + input_device *newlist = auto_alloc_array(machine, input_device, devlist->count + 1); + for (int devnum = 0; devnum < devlist->count; devnum++) + newlist[devnum] = devlist->list[devnum]; + auto_free(machine, devlist->list); + devlist->list = newlist; device = &devlist->list[devlist->count++]; memset(device, 0, sizeof(*device)); |