First round of memory improvements!

* Disable TRACK_UTILIZATION by default
* Ignore Primitive.ScratchPad and always set it to Utils.EmptyBytes. This field is deprecated on the SL grid and there are better ways to extend the protocol for non-SL grids
* More graceful handling of corrupted wearables
* Free up memory after baking

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@3297 52acb1d6-8a22-11de-b505-999d5b087335
This commit is contained in:
John Hurliman
2010-04-20 21:58:23 +00:00
parent 94f830b9d9
commit de2a49dddf
5 changed files with 148 additions and 125 deletions

View File

@@ -1970,14 +1970,15 @@ namespace OpenMetaverse
prim.TreeSpecies = (Tree)block.Data[0];
else
Logger.Log("Got a foliage update with an invalid TreeSpecies field", Helpers.LogLevel.Warning);
prim.ScratchPad = Utils.EmptyBytes;
break;
default:
prim.ScratchPad = new byte[block.Data.Length];
if (block.Data.Length > 0)
Buffer.BlockCopy(block.Data, 0, prim.ScratchPad, 0, prim.ScratchPad.Length);
// prim.ScratchPad = Utils.EmptyBytes;
// break;
//default:
// prim.ScratchPad = new byte[block.Data.Length];
// if (block.Data.Length > 0)
// Buffer.BlockCopy(block.Data, 0, prim.ScratchPad, 0, prim.ScratchPad.Length);
break;
}
prim.ScratchPad = Utils.EmptyBytes;
// Packed parameters
prim.CollisionPlane = objectupdate.CollisionPlane;
@@ -2336,7 +2337,7 @@ namespace OpenMetaverse
if ((flags & CompressedFlags.Tree) != 0)
{
prim.TreeSpecies = (Tree)block.Data[i++];
prim.ScratchPad = Utils.EmptyBytes;
//prim.ScratchPad = Utils.EmptyBytes;
}
// Scratch pad
else if ((flags & CompressedFlags.ScratchPad) != 0)
@@ -2344,10 +2345,11 @@ namespace OpenMetaverse
prim.TreeSpecies = (Tree)0;
int size = block.Data[i++];
prim.ScratchPad = new byte[size];
Buffer.BlockCopy(block.Data, i, prim.ScratchPad, 0, size);
//prim.ScratchPad = new byte[size];
//Buffer.BlockCopy(block.Data, i, prim.ScratchPad, 0, size);
i += size;
}
prim.ScratchPad = Utils.EmptyBytes;
// Floating text
if ((flags & CompressedFlags.HasText) != 0)