real fix for filesys double-free crash

This commit is contained in:
Dimitris Panokostas 2020-07-10 19:06:16 +02:00
parent 1e7e1a03d7
commit 1fb59076ef
2 changed files with 10 additions and 7 deletions

View file

@ -8647,11 +8647,7 @@ void filesys_cleanup(void)
filesys_free_handles();
free_mountinfo();
destroy_comm_pipe(&shellexecute_pipe);
if (singlethread_int_sem != nullptr)
{
uae_sem_destroy(&singlethread_int_sem);
singlethread_int_sem == nullptr;
}
uae_sem_destroy(&singlethread_int_sem);
shell_execute_data = 0;
}

View file

@ -17,10 +17,17 @@ typedef SDL_sem* uae_sem_t;
STATIC_INLINE int uae_sem_init(uae_sem_t* sem, int dummy, int init)
{
*sem = SDL_CreateSemaphore(init);
return (*sem == nullptr);
return *sem == nullptr;
}
#define uae_sem_destroy(PSEM) SDL_DestroySemaphore (*PSEM)
STATIC_INLINE void uae_sem_destroy(uae_sem_t* event)
{
if (*event)
{
SDL_DestroySemaphore(*event);
*event = nullptr;
}
}
#define uae_sem_post(PSEM) SDL_SemPost (*PSEM)
#define uae_sem_wait(PSEM) SDL_SemWait (*PSEM)
#define uae_sem_trywait(PSEM) SDL_SemTryWait (*PSEM)