[unity] Fixed profiler samplers array out of bounds access at threaded update system. Closes #2981.

This commit is contained in:
Harald Csaszar 2025-11-26 17:47:47 +01:00
parent 8fdbf055f2
commit 370c74edb4

View File

@ -287,6 +287,11 @@ namespace Spine.Unity {
genericSkeletonTasks[t] = new WorkerPoolTask(); genericSkeletonTasks[t] = new WorkerPoolTask();
} }
} }
#if ENABLE_THREAD_PROFILING
if (profilerSamplerUpdate == null) {
profilerSamplerUpdate = new CustomSampler[numThreads];
}
#endif
for (int t = 0; t < updateDone.Count; ++t) { for (int t = 0; t < updateDone.Count; ++t) {
updateDone[t].Reset(); updateDone[t].Reset();
@ -472,6 +477,11 @@ namespace Spine.Unity {
genericSkeletonTasks[t] = new WorkerPoolTask(); genericSkeletonTasks[t] = new WorkerPoolTask();
} }
} }
#if ENABLE_THREAD_PROFILING
if (profilerSamplerLateUpdate == null) {
profilerSamplerLateUpdate = new CustomSampler[numThreads];
}
#endif
for (int t = 0; t < lateUpdateDone.Count; ++t) { for (int t = 0; t < lateUpdateDone.Count; ++t) {
lateUpdateDone[t].Reset(); lateUpdateDone[t].Reset();
@ -638,8 +648,8 @@ namespace Spine.Unity {
} }
#if ENABLE_THREAD_PROFILING #if ENABLE_THREAD_PROFILING
CustomSampler[] profilerSamplerUpdate = new CustomSampler[16]; CustomSampler[] profilerSamplerUpdate = null;
CustomSampler[] profilerSamplerLateUpdate = new CustomSampler[16]; CustomSampler[] profilerSamplerLateUpdate = null;
#endif #endif
/// <summary>Perform Update at all SkeletonRenderers asynchronously.</summary> /// <summary>Perform Update at all SkeletonRenderers asynchronously.</summary>