remove some SOG references on delete to help GC
parent
bdab95f1d2
commit
62009ba9c0
|
@ -1083,6 +1083,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
|
|||
|
||||
// Now, remove the scripts
|
||||
so.RemoveScriptInstances(true);
|
||||
so.Clear();
|
||||
}
|
||||
|
||||
protected SceneObjectGroup RezSingleAttachmentFromInventoryInternal(
|
||||
|
|
|
@ -1577,6 +1577,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
m_heartbeatThread = null;
|
||||
}
|
||||
|
||||
GC.Collect();
|
||||
// tell physics to finish building actor
|
||||
m_sceneGraph.ProcessPhysicsPreSimulation();
|
||||
|
||||
|
@ -2798,6 +2799,10 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
if (!silent)
|
||||
SendKillObject(new List<uint>() { group.LocalId });
|
||||
|
||||
// use this to mean also full delete
|
||||
if (removeScripts)
|
||||
group.Clear();
|
||||
partList = null;
|
||||
// m_log.DebugFormat("[SCENE]: Exit DeleteSceneObject() for {0} {1}", group.Name, group.UUID);
|
||||
}
|
||||
|
||||
|
|
|
@ -764,6 +764,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
}
|
||||
avsToCross.Clear();
|
||||
sog.RemoveScriptInstances(true);
|
||||
sog.Clear();
|
||||
return sog;
|
||||
}
|
||||
else // cross failed, put avas back ??
|
||||
|
@ -2245,7 +2246,6 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
{
|
||||
part.Inventory.ProcessInventoryBackup(datastore);
|
||||
|
||||
// take the change to delete things
|
||||
if(part.KeyframeMotion != null)
|
||||
{
|
||||
part.KeyframeMotion.Delete();
|
||||
|
@ -2253,7 +2253,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
}
|
||||
});
|
||||
|
||||
|
||||
backup_group.Clear();
|
||||
backup_group = null;
|
||||
}
|
||||
// else
|
||||
|
@ -4846,6 +4846,20 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
});
|
||||
}
|
||||
|
||||
// clear some references to easy cg
|
||||
public void Clear()
|
||||
{
|
||||
m_parts.Clear();
|
||||
m_sittingAvatars.Clear();
|
||||
m_rootPart = null;
|
||||
|
||||
m_PlaySoundMasterPrim = null;
|
||||
m_PlaySoundSlavePrims.Clear();
|
||||
m_LoopSoundMasterPrim = null;
|
||||
m_targets.Clear();
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue