diff options
author | Oren Hurvitz | 2013-10-24 11:18:15 +0300 |
---|---|---|
committer | Oren Hurvitz | 2014-03-24 11:44:48 +0100 |
commit | 62b3bdf0fc7a64dd9b845eb27fa8e1a2a1866c2b (patch) | |
tree | 23d4465a654833f5e993ee260159024d908d43d3 /OpenSim/Region/Framework/Scenes/Scene.cs | |
parent | BulletSim: fix problem where axis constraints were also constraining (diff) | |
download | opensim-SC-62b3bdf0fc7a64dd9b845eb27fa8e1a2a1866c2b.zip opensim-SC-62b3bdf0fc7a64dd9b845eb27fa8e1a2a1866c2b.tar.gz opensim-SC-62b3bdf0fc7a64dd9b845eb27fa8e1a2a1866c2b.tar.bz2 opensim-SC-62b3bdf0fc7a64dd9b845eb27fa8e1a2a1866c2b.tar.xz |
When linking two groups, and then deleting the combined group: delete *all* of the combined group's prims, including those that came from the second subgroup
This fixes http://opensimulator.org/mantis/view.php?id=6175
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/Scene.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index d16b73b..08a2301 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -1757,6 +1757,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1757 | { | 1757 | { |
1758 | if (group != null) | 1758 | if (group != null) |
1759 | { | 1759 | { |
1760 | group.HasGroupChanged = true; | ||
1760 | group.ProcessBackup(SimulationDataService, true); | 1761 | group.ProcessBackup(SimulationDataService, true); |
1761 | } | 1762 | } |
1762 | } | 1763 | } |
@@ -2345,13 +2346,12 @@ namespace OpenSim.Region.Framework.Scenes | |||
2345 | { | 2346 | { |
2346 | if (!softDelete) | 2347 | if (!softDelete) |
2347 | { | 2348 | { |
2348 | // Force a database update so that the scene object group ID is accurate. It's possible that the | 2349 | // If the group contains prims whose SceneGroupID is incorrect then force a |
2349 | // group has recently been delinked from another group but that this change has not been persisted | 2350 | // database update, because RemoveObject() works by searching on the SceneGroupID. |
2350 | // to the DB. | ||
2351 | // This is an expensive thing to do so only do it if absolutely necessary. | 2351 | // This is an expensive thing to do so only do it if absolutely necessary. |
2352 | if (so.HasGroupChangedDueToDelink) | 2352 | if (so.GroupContainsForeignPrims) |
2353 | ForceSceneObjectBackup(so); | 2353 | ForceSceneObjectBackup(so); |
2354 | 2354 | ||
2355 | so.DetachFromBackup(); | 2355 | so.DetachFromBackup(); |
2356 | SimulationDataService.RemoveObject(so.UUID, RegionInfo.RegionID); | 2356 | SimulationDataService.RemoveObject(so.UUID, RegionInfo.RegionID); |
2357 | } | 2357 | } |