From cee79b7beb06b00de87af824894a7acbc0aa12bb Mon Sep 17 00:00:00 2001 From: John Date: Sat, 18 Feb 2017 15:28:02 +0800 Subject: [PATCH] [csharp] Allow events queued within callbacks. --- spine-csharp/src/AnimationState.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/spine-csharp/src/AnimationState.cs b/spine-csharp/src/AnimationState.cs index 8ba41b284..8756f7b70 100644 --- a/spine-csharp/src/AnimationState.cs +++ b/spine-csharp/src/AnimationState.cs @@ -840,7 +840,7 @@ namespace Spine { } class EventQueue { - private readonly ExposedList eventQueueEntries = new ExposedList(); + private readonly List eventQueueEntries = new List(); public bool drainDisabled; private readonly AnimationState state; @@ -900,11 +900,11 @@ namespace Spine { drainDisabled = true; var entries = this.eventQueueEntries; - var entriesItems = entries.Items; AnimationState state = this.state; - for (int i = 0, n = entries.Count; i < n; i++) { - var queueEntry = entriesItems[i]; + // Don't cache entries.Count so callbacks can queue their own events (eg, call SetAnimation in AnimationState_Complete). + for (int i = 0; i < entries.Count; i++) { + var queueEntry = entries[i]; TrackEntry trackEntry = queueEntry.entry; switch (queueEntry.type) {