aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Physics/OdePlugin
diff options
context:
space:
mode:
authorTeravus Ovares2008-02-12 00:01:55 +0000
committerTeravus Ovares2008-02-12 00:01:55 +0000
commitc92696286215ca8260fa80472e2678d0482553b7 (patch)
tree22dd421b8e2144922b91b69ff3cfa9ef923f7592 /OpenSim/Region/Physics/OdePlugin
parent* Added PhysicsScene.Dispose() (diff)
downloadopensim-SC_OLD-c92696286215ca8260fa80472e2678d0482553b7.zip
opensim-SC_OLD-c92696286215ca8260fa80472e2678d0482553b7.tar.gz
opensim-SC_OLD-c92696286215ca8260fa80472e2678d0482553b7.tar.bz2
opensim-SC_OLD-c92696286215ca8260fa80472e2678d0482553b7.tar.xz
* This resolves the null exceptions when a script is manipulating a physical object in ODE and you delete the object. The script is still running and trying to add force, but the object reference is null.
Diffstat (limited to 'OpenSim/Region/Physics/OdePlugin')
-rw-r--r--OpenSim/Region/Physics/OdePlugin/ODEPrim.cs2
-rw-r--r--OpenSim/Region/Physics/OdePlugin/OdePlugin.cs3
2 files changed, 4 insertions, 1 deletions
diff --git a/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs b/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs
index adb53d2..12d7694 100644
--- a/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs
+++ b/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs
@@ -429,6 +429,7 @@ namespace OpenSim.Region.Physics.OdePlugin
429 429
430 public void ProcessTaints(float timestep) 430 public void ProcessTaints(float timestep)
431 { 431 {
432 System.Threading.Thread.Sleep(5);
432 if (m_taintposition != _position) 433 if (m_taintposition != _position)
433 Move(timestep); 434 Move(timestep);
434 435
@@ -712,6 +713,7 @@ namespace OpenSim.Region.Physics.OdePlugin
712 713
713 public void changeAddForce(float timestamp) 714 public void changeAddForce(float timestamp)
714 { 715 {
716 System.Threading.Thread.Sleep(2);
715 lock (m_forcelist) 717 lock (m_forcelist)
716 { 718 {
717 //m_log.Info("[PHYSICS]: dequeing forcelist"); 719 //m_log.Info("[PHYSICS]: dequeing forcelist");
diff --git a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs
index e58984b..f1d8232 100644
--- a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs
+++ b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs
@@ -639,6 +639,7 @@ namespace OpenSim.Region.Physics.OdePlugin
639 { 639 {
640 lock (OdeLock) 640 lock (OdeLock)
641 { 641 {
642 System.Threading.Thread.Sleep(20);
642 if (prim.IsPhysical) 643 if (prim.IsPhysical)
643 { 644 {
644 prim.disableBody(); 645 prim.disableBody();
@@ -733,7 +734,7 @@ namespace OpenSim.Region.Physics.OdePlugin
733 // never be called if the prim is physical(active) 734 // never be called if the prim is physical(active)
734 735
735 // All physical prim end up in the root space 736 // All physical prim end up in the root space
736 737 System.Threading.Thread.Sleep(20);
737 if (currentspace != space) 738 if (currentspace != space)
738 { 739 {
739 if (d.SpaceQuery(currentspace, geom) && currentspace != (IntPtr) 0) 740 if (d.SpaceQuery(currentspace, geom) && currentspace != (IntPtr) 0)