mirror of
https://github.com/vrm-c/UniVRM.git
synced 2026-09-27 13:23:44 -05:00
Merge pull request #2629 from ousttrue/fix/fastspringbone_dispose_reentrant
[SpringBone] dispose function can now be executed again
This commit is contained in:
@@ -118,9 +118,9 @@ namespace UniGLTF.SpringBoneJobs
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
if (_combinedBuffer is FastSpringBoneCombinedBuffer combined)
|
||||
if (_combinedBuffer != null)
|
||||
{
|
||||
combined.Dispose();
|
||||
_combinedBuffer.Dispose();
|
||||
_combinedBuffer = null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -57,6 +57,8 @@ namespace UniVRM10
|
||||
{
|
||||
m_fastSpringBoneService.BufferCombiner.Register(add: null, remove: m_fastSpringBoneBuffer);
|
||||
m_fastSpringBoneBuffer.Dispose();
|
||||
// #2616
|
||||
m_fastSpringBoneBuffer = null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -54,10 +54,18 @@ namespace UniVRM10
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
m_bufferCombiner.Register(add: null, remove: m_fastSpringBoneBuffer);
|
||||
m_fastSpringBoneBuffer.Dispose();
|
||||
if (m_fastSpringBoneBuffer != null)
|
||||
{
|
||||
m_bufferCombiner.Register(add: null, remove: m_fastSpringBoneBuffer);
|
||||
m_fastSpringBoneBuffer.Dispose();
|
||||
// #2616
|
||||
m_fastSpringBoneBuffer = null;
|
||||
}
|
||||
|
||||
// re-entrant ok
|
||||
m_fastSpringBoneScheduler.Dispose();
|
||||
|
||||
// re-entrant ok
|
||||
m_bufferCombiner.Dispose();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user