diff options
author | Justin Clark-Casey (justincc) | 2010-08-28 00:40:33 +0100 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2010-08-28 00:40:33 +0100 |
commit | 1c0b4457cdcd543f04bc818a987f6e3f2311098d (patch) | |
tree | 56b6a949423b5ca0f54b2c200e037052a9ac3ff0 /OpenSim/Region/CoreModules/World/Archiver | |
parent | minor: reduce log chattiness of "load iar" for IARs with lots of folders (diff) | |
download | opensim-SC_OLD-1c0b4457cdcd543f04bc818a987f6e3f2311098d.zip opensim-SC_OLD-1c0b4457cdcd543f04bc818a987f6e3f2311098d.tar.gz opensim-SC_OLD-1c0b4457cdcd543f04bc818a987f6e3f2311098d.tar.bz2 opensim-SC_OLD-1c0b4457cdcd543f04bc818a987f6e3f2311098d.tar.xz |
Improve liveness by operating on list copies of SOG.Children where appropriate
Diffstat (limited to 'OpenSim/Region/CoreModules/World/Archiver')
-rw-r--r-- | OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs | 57 |
1 files changed, 29 insertions, 28 deletions
diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs index 1623e6e..1fba6c2 100644 --- a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs +++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs | |||
@@ -243,39 +243,40 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
243 | // to the same scene (when this is possible). | 243 | // to the same scene (when this is possible). |
244 | sceneObject.ResetIDs(); | 244 | sceneObject.ResetIDs(); |
245 | 245 | ||
246 | List<SceneObjectPart> partList = null; | ||
246 | lock (sceneObject.Children) | 247 | lock (sceneObject.Children) |
248 | partList = new List<SceneObjectPart>(sceneObject.Children.Values); | ||
249 | |||
250 | foreach (SceneObjectPart part in partList) | ||
247 | { | 251 | { |
248 | foreach (SceneObjectPart part in sceneObject.Children.Values) | 252 | if (!ResolveUserUuid(part.CreatorID)) |
253 | part.CreatorID = m_scene.RegionInfo.EstateSettings.EstateOwner; | ||
254 | |||
255 | if (!ResolveUserUuid(part.OwnerID)) | ||
256 | part.OwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner; | ||
257 | |||
258 | if (!ResolveUserUuid(part.LastOwnerID)) | ||
259 | part.LastOwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner; | ||
260 | |||
261 | // And zap any troublesome sit target information | ||
262 | part.SitTargetOrientation = new Quaternion(0, 0, 0, 1); | ||
263 | part.SitTargetPosition = new Vector3(0, 0, 0); | ||
264 | |||
265 | // Fix ownership/creator of inventory items | ||
266 | // Not doing so results in inventory items | ||
267 | // being no copy/no mod for everyone | ||
268 | lock (part.TaskInventory) | ||
249 | { | 269 | { |
250 | if (!ResolveUserUuid(part.CreatorID)) | 270 | TaskInventoryDictionary inv = part.TaskInventory; |
251 | part.CreatorID = m_scene.RegionInfo.EstateSettings.EstateOwner; | 271 | foreach (KeyValuePair<UUID, TaskInventoryItem> kvp in inv) |
252 | |||
253 | if (!ResolveUserUuid(part.OwnerID)) | ||
254 | part.OwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner; | ||
255 | |||
256 | if (!ResolveUserUuid(part.LastOwnerID)) | ||
257 | part.LastOwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner; | ||
258 | |||
259 | // And zap any troublesome sit target information | ||
260 | part.SitTargetOrientation = new Quaternion(0, 0, 0, 1); | ||
261 | part.SitTargetPosition = new Vector3(0, 0, 0); | ||
262 | |||
263 | // Fix ownership/creator of inventory items | ||
264 | // Not doing so results in inventory items | ||
265 | // being no copy/no mod for everyone | ||
266 | lock (part.TaskInventory) | ||
267 | { | 272 | { |
268 | TaskInventoryDictionary inv = part.TaskInventory; | 273 | if (!ResolveUserUuid(kvp.Value.OwnerID)) |
269 | foreach (KeyValuePair<UUID, TaskInventoryItem> kvp in inv) | 274 | { |
275 | kvp.Value.OwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner; | ||
276 | } | ||
277 | if (!ResolveUserUuid(kvp.Value.CreatorID)) | ||
270 | { | 278 | { |
271 | if (!ResolveUserUuid(kvp.Value.OwnerID)) | 279 | kvp.Value.CreatorID = m_scene.RegionInfo.EstateSettings.EstateOwner; |
272 | { | ||
273 | kvp.Value.OwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner; | ||
274 | } | ||
275 | if (!ResolveUserUuid(kvp.Value.CreatorID)) | ||
276 | { | ||
277 | kvp.Value.CreatorID = m_scene.RegionInfo.EstateSettings.EstateOwner; | ||
278 | } | ||
279 | } | 280 | } |
280 | } | 281 | } |
281 | } | 282 | } |