Fix threadsafe event removal.

This commit is contained in:
Unknown W. Brackets 2013-08-05 00:22:47 -07:00
parent 0dc6bab9ff
commit 7dfee29d49

View file

@ -337,7 +337,10 @@ s64 UnscheduleThreadsafeEvent(int event_type, u64 userdata)
}
}
if (!tsFirst)
{
tsLast = NULL;
return result;
}
Event *prev = tsFirst;
Event *ptr = prev->next;
@ -348,6 +351,8 @@ s64 UnscheduleThreadsafeEvent(int event_type, u64 userdata)
result = ptr->time - globalTimer;
prev->next = ptr->next;
if (ptr == tsLast)
tsLast = prev;
FreeTsEvent(ptr);
ptr = prev->next;
}
@ -439,6 +444,7 @@ void RemoveThreadsafeEvent(int event_type)
}
if (!tsFirst)
{
tsLast = NULL;
return;
}
Event *prev = tsFirst;
@ -448,6 +454,8 @@ void RemoveThreadsafeEvent(int event_type)
if (ptr->type == event_type)
{
prev->next = ptr->next;
if (ptr == tsLast)
tsLast = prev;
FreeTsEvent(ptr);
ptr = prev->next;
}