make sog, sop and sop inventory IDisposable

This commit is contained in:
UbitUmarov
2020-05-14 12:02:46 +01:00
parent dd55a3d19c
commit 8b77162020
5 changed files with 104 additions and 19 deletions

View File

@@ -93,7 +93,7 @@ namespace OpenSim.Region.Framework.Scenes
#endregion Enumerations
public class SceneObjectPart : ISceneEntity
public class SceneObjectPart : ISceneEntity, IDisposable
{
/// <value>
/// Denote all sides of the prim
@@ -454,6 +454,40 @@ namespace OpenSim.Region.Framework.Scenes
AggregateInnerPerms();
}
~SceneObjectPart()
{
Dispose(false);
}
private bool disposed = false;
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
protected void Dispose(bool disposing)
{
// Check to see if Dispose has already been called.
if (!disposed)
{
if (KeyframeMotion != null)
{
KeyframeMotion.Delete();
KeyframeMotion = null;
}
if (PhysActor != null)
RemoveFromPhysics();
if (m_inventory != null)
{
m_inventory.Dispose();
m_inventory = null;
}
disposed = true;
}
}
#endregion Constructors
#region XML Schema