diff options
author | Diva Canto | 2009-09-29 07:54:56 -0700 |
---|---|---|
committer | Diva Canto | 2009-09-29 07:54:56 -0700 |
commit | bc892c1d4c1f1e818f1dd1d3cf6d03186b19dd0b (patch) | |
tree | 5121122359f534bb2738c8fe7664c5451a0b166d /OpenSim/Region/Framework/Scenes | |
parent | Remove empty CheckSumServer.cs file. (diff) | |
download | opensim-SC_OLD-bc892c1d4c1f1e818f1dd1d3cf6d03186b19dd0b.zip opensim-SC_OLD-bc892c1d4c1f1e818f1dd1d3cf6d03186b19dd0b.tar.gz opensim-SC_OLD-bc892c1d4c1f1e818f1dd1d3cf6d03186b19dd0b.tar.bz2 opensim-SC_OLD-bc892c1d4c1f1e818f1dd1d3cf6d03186b19dd0b.tar.xz |
A little hack to see if this fixes the problems with ~20% of SOG's becoming phantom after an import to megaregions.
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 5 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneGraph.cs | 17 |
2 files changed, 22 insertions, 0 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index bb47ff4..39f3007 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -4141,6 +4141,11 @@ namespace OpenSim.Region.Framework.Scenes | |||
4141 | m_sceneGraph.ForEachClient(action); | 4141 | m_sceneGraph.ForEachClient(action); |
4142 | } | 4142 | } |
4143 | 4143 | ||
4144 | public void ForEachSOG(Action<SceneObjectGroup> action) | ||
4145 | { | ||
4146 | m_sceneGraph.ForEachSOG(action); | ||
4147 | } | ||
4148 | |||
4144 | /// <summary> | 4149 | /// <summary> |
4145 | /// Returns a list of the entities in the scene. This is a new list so operations perform on the list itself | 4150 | /// Returns a list of the entities in the scene. This is a new list so operations perform on the list itself |
4146 | /// will not affect the original list of objects in the scene. | 4151 | /// will not affect the original list of objects in the scene. |
diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs index 48dea07..0c471aa 100644 --- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs +++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs | |||
@@ -1134,6 +1134,23 @@ namespace OpenSim.Region.Framework.Scenes | |||
1134 | } | 1134 | } |
1135 | } | 1135 | } |
1136 | 1136 | ||
1137 | protected internal void ForEachSOG(Action<SceneObjectGroup> action) | ||
1138 | { | ||
1139 | List<SceneObjectGroup> objlist = new List<SceneObjectGroup>(SceneObjectGroupsByFullID.Values); | ||
1140 | foreach (SceneObjectGroup obj in objlist) | ||
1141 | { | ||
1142 | try | ||
1143 | { | ||
1144 | action(obj); | ||
1145 | } | ||
1146 | catch (Exception e) | ||
1147 | { | ||
1148 | // Catch it and move on. This includes situations where splist has inconsistent info | ||
1149 | m_log.WarnFormat("[SCENE]: Problem processing action in ForEachSOG: ", e.Message); | ||
1150 | } | ||
1151 | } | ||
1152 | } | ||
1153 | |||
1137 | #endregion | 1154 | #endregion |
1138 | 1155 | ||
1139 | #region Client Event handlers | 1156 | #region Client Event handlers |