[csharp] Fixed index out of bounds when firing events.

This commit is contained in:
Nathan Sweet 2021-07-11 15:40:24 -04:00
parent 43565f197d
commit fd6dd42d66

View File

@ -1252,7 +1252,7 @@ namespace Spine {
} }
class EventQueue { class EventQueue {
private readonly ExposedList<EventQueueEntry> eventQueueEntries = new ExposedList<EventQueueEntry>(); private readonly List<EventQueueEntry> eventQueueEntries = new List<EventQueueEntry>();
internal bool drainDisabled; internal bool drainDisabled;
private readonly AnimationState state; private readonly AnimationState state;
@ -1296,12 +1296,12 @@ namespace Spine {
if (drainDisabled) return; if (drainDisabled) return;
drainDisabled = true; drainDisabled = true;
EventQueueEntry[] entries = eventQueueEntries.Items; List<EventQueueEntry> eventQueueEntries = this.eventQueueEntries;
AnimationState state = this.state; AnimationState state = this.state;
// Don't cache eventQueueEntries.Count so callbacks can queue their own events (eg, call SetAnimation in AnimationState_Complete). // Don't cache eventQueueEntries.Count so callbacks can queue their own events (eg, call SetAnimation in AnimationState_Complete).
for (int i = 0; i < eventQueueEntries.Count; i++) { for (int i = 0; i < eventQueueEntries.Count; i++) {
EventQueueEntry queueEntry = entries[i]; EventQueueEntry queueEntry = eventQueueEntries[i];
TrackEntry trackEntry = queueEntry.entry; TrackEntry trackEntry = queueEntry.entry;
switch (queueEntry.type) { switch (queueEntry.type) {