Hi,
I'm getting a trap. The bug: MG_MEMSET zeroes gamepads->src.hidManager to NULL before mg_gamepads_free_platform tries to CFRelease it.
And CFRelease(NULL) causes a trap on macOS.
The fix seems to be this, moving the memset after releasing platform resources.
void mg_gamepads_free(mg_gamepads* gamepads) {
mg_gamepad* cur;
MG_ASSERT(gamepads != NULL);
mg_gamepads_free_platform(gamepads);
for (cur = gamepads->list.cur; cur != NULL; cur = cur->prev) {
mg_gamepad_release(gamepads, cur);
}
MG_MEMSET(gamepads, 0, sizeof(mg_gamepads));
}
Hi,
I'm getting a trap. The bug: MG_MEMSET zeroes gamepads->src.hidManager to NULL before mg_gamepads_free_platform tries to CFRelease it.
And CFRelease(NULL) causes a trap on macOS.
The fix seems to be this, moving the memset after releasing platform resources.
void mg_gamepads_free(mg_gamepads* gamepads) {
mg_gamepad* cur;
MG_ASSERT(gamepads != NULL);
}