Comment out uncalled OdeScene.UnCombine()

0.7.2-post-fixes
Justin Clark-Casey (justincc) 2011-11-22 22:28:46 +00:00
parent 0a6374d37a
commit 476d893630
2 changed files with 60 additions and 66 deletions

View File

@ -221,15 +221,9 @@ namespace OpenSim.Region.Physics.Manager
return false; return false;
} }
public virtual void Combine(PhysicsScene pScene, Vector3 offset, Vector3 extents) public virtual void Combine(PhysicsScene pScene, Vector3 offset, Vector3 extents) {}
{
return;
}
public virtual void UnCombine(PhysicsScene pScene) public virtual void UnCombine(PhysicsScene pScene) {}
{
}
/// <summary> /// <summary>
/// Queue a raycast against the physics scene. /// Queue a raycast against the physics scene.

View File

@ -3566,64 +3566,64 @@ Console.WriteLine("AddPhysicsActorTaint to " + taintedprim.Name);
return true; return true;
} }
public override void UnCombine(PhysicsScene pScene) // public override void UnCombine(PhysicsScene pScene)
{ // {
IntPtr localGround = IntPtr.Zero; // IntPtr localGround = IntPtr.Zero;
// float[] localHeightfield; //// float[] localHeightfield;
bool proceed = false; // bool proceed = false;
List<IntPtr> geomDestroyList = new List<IntPtr>(); // List<IntPtr> geomDestroyList = new List<IntPtr>();
//
lock (OdeLock) // lock (OdeLock)
{ // {
if (RegionTerrain.TryGetValue(Vector3.Zero, out localGround)) // if (RegionTerrain.TryGetValue(Vector3.Zero, out localGround))
{ // {
foreach (IntPtr geom in TerrainHeightFieldHeights.Keys) // foreach (IntPtr geom in TerrainHeightFieldHeights.Keys)
{ // {
if (geom == localGround) // if (geom == localGround)
{ // {
// localHeightfield = TerrainHeightFieldHeights[geom]; //// localHeightfield = TerrainHeightFieldHeights[geom];
proceed = true; // proceed = true;
} // }
else // else
{ // {
geomDestroyList.Add(geom); // geomDestroyList.Add(geom);
} // }
} // }
//
if (proceed) // if (proceed)
{ // {
m_worldOffset = Vector3.Zero; // m_worldOffset = Vector3.Zero;
WorldExtents = new Vector2((int)Constants.RegionSize, (int)Constants.RegionSize); // WorldExtents = new Vector2((int)Constants.RegionSize, (int)Constants.RegionSize);
m_parentScene = null; // m_parentScene = null;
//
foreach (IntPtr g in geomDestroyList) // foreach (IntPtr g in geomDestroyList)
{ // {
// removingHeightField needs to be done or the garbage collector will // // removingHeightField needs to be done or the garbage collector will
// collect the terrain data before we tell ODE to destroy it causing // // collect the terrain data before we tell ODE to destroy it causing
// memory corruption // // memory corruption
if (TerrainHeightFieldHeights.ContainsKey(g)) // if (TerrainHeightFieldHeights.ContainsKey(g))
{ // {
// float[] removingHeightField = TerrainHeightFieldHeights[g]; //// float[] removingHeightField = TerrainHeightFieldHeights[g];
TerrainHeightFieldHeights.Remove(g); // TerrainHeightFieldHeights.Remove(g);
//
if (RegionTerrain.ContainsKey(g)) // if (RegionTerrain.ContainsKey(g))
{ // {
RegionTerrain.Remove(g); // RegionTerrain.Remove(g);
} // }
//
d.GeomDestroy(g); // d.GeomDestroy(g);
//removingHeightField = new float[0]; // //removingHeightField = new float[0];
} // }
} // }
//
} // }
else // else
{ // {
m_log.Warn("[PHYSICS]: Couldn't proceed with UnCombine. Region has inconsistant data."); // m_log.Warn("[PHYSICS]: Couldn't proceed with UnCombine. Region has inconsistant data.");
} // }
} // }
} // }
} // }
public override void SetWaterLevel(float baseheight) public override void SetWaterLevel(float baseheight)
{ {