aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorUbitUmarov2014-11-03 00:03:53 +0000
committerUbitUmarov2014-11-03 00:03:53 +0000
commit37a5eab0f5eb51204a3d6bc0bbaa40a2b9afc989 (patch)
tree2d0f4144fdf83785b65cb988c3652ae968787ded
parentremove last debug msg (diff)
downloadopensim-SC-37a5eab0f5eb51204a3d6bc0bbaa40a2b9afc989.zip
opensim-SC-37a5eab0f5eb51204a3d6bc0bbaa40a2b9afc989.tar.gz
opensim-SC-37a5eab0f5eb51204a3d6bc0bbaa40a2b9afc989.tar.bz2
opensim-SC-37a5eab0f5eb51204a3d6bc0bbaa40a2b9afc989.tar.xz
BUG FIX prevent references to null scene (as happens on mesh uploads)
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs27
1 files changed, 15 insertions, 12 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index 0e2e3c7..9a2707b 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -529,21 +529,21 @@ namespace OpenSim.Region.Framework.Scenes
529 set 529 set
530 { 530 {
531 Vector3 val = value; 531 Vector3 val = value;
532 532 if (Scene != null && !IsAttachmentCheckFull()
533 if (!IsAttachmentCheckFull() && !Scene.LoadingPrims && 533 && !Scene.LoadingPrims &&
534 ( Scene.TestBorderCross(val, Cardinals.E) || 534 (Scene.TestBorderCross(val, Cardinals.E) ||
535 Scene.TestBorderCross(val, Cardinals.W) || 535 Scene.TestBorderCross(val, Cardinals.W) ||
536 Scene.TestBorderCross(val, Cardinals.N) || 536 Scene.TestBorderCross(val, Cardinals.N) ||
537 Scene.TestBorderCross(val, Cardinals.S)) 537 Scene.TestBorderCross(val, Cardinals.S))
538 ) 538 )
539 { 539 {
540 if (!inTransit) 540 if (!inTransit)
541 { 541 {
542 inTransit = true; 542 inTransit = true;
543 SOGCrossDelegate d = CrossAsync; 543 SOGCrossDelegate d = CrossAsync;
544 d.BeginInvoke(this, val, CrossAsyncCompleted, d); 544 d.BeginInvoke(this, val, CrossAsyncCompleted, d);
545 } 545 }
546 return; 546 return;
547 } 547 }
548 548
549 if (RootPart.GetStatusSandbox()) 549 if (RootPart.GetStatusSandbox())
@@ -582,6 +582,7 @@ namespace OpenSim.Region.Framework.Scenes
582 av.sitSOGmoved(); 582 av.sitSOGmoved();
583 } 583 }
584 584
585
585 // now that position is changed tell it to scripts 586 // now that position is changed tell it to scripts
586 if (triggerScriptEvent) 587 if (triggerScriptEvent)
587 { 588 {
@@ -591,7 +592,9 @@ namespace OpenSim.Region.Framework.Scenes
591 } 592 }
592 } 593 }
593 594
594 Scene.EventManager.TriggerParcelPrimCountTainted(); 595 if (Scene != null)
596 Scene.EventManager.TriggerParcelPrimCountTainted();
597
595 } 598 }
596 } 599 }
597 600
@@ -789,7 +792,7 @@ namespace OpenSim.Region.Framework.Scenes
789 { 792 {
790 if (agent.ParentUUID != UUID.Zero) 793 if (agent.ParentUUID != UUID.Zero)
791 { 794 {
792 agent.ClearControls(); 795 agent.HandleForceReleaseControls(agent.ControllingClient,agent.UUID);
793 agent.ParentPart = null; 796 agent.ParentPart = null;
794// agent.ParentPosition = Vector3.Zero; 797// agent.ParentPosition = Vector3.Zero;
795// agent.ParentUUID = UUID.Zero; 798// agent.ParentUUID = UUID.Zero;