diff --git a/src/events/SDL_pen.c b/src/events/SDL_pen.c index afc2ea031d..71ddd4c0d8 100644 --- a/src/events/SDL_pen.c +++ b/src/events/SDL_pen.c @@ -109,9 +109,14 @@ bool SDL_InitPen(void) void SDL_QuitPen(void) { SDL_DestroyRWLock(pen_device_rwlock); - pen_device_rwlock = 0; - SDL_free(pen_devices); - pen_devices = NULL; + pen_device_rwlock = NULL; + if (pen_devices) { + for (int i = pen_device_count; i--; ) { + SDL_free(pen_devices[i].name); + } + SDL_free(pen_devices); + pen_devices = NULL; + } pen_device_count = 0; pen_touching = 0; }