From abd664045307fde0cf81144b54e64a364c0e5786 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Mon, 7 Sep 2015 08:06:41 +0100 Subject: allocate llRAW LookupHeightTable on demand and release it, saving a few 512KB of memory --- OpenSim/Region/CoreModules/World/Terrain/FileLoaders/LLRAW.cs | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'OpenSim/Region/CoreModules/World/Terrain/FileLoaders') diff --git a/OpenSim/Region/CoreModules/World/Terrain/FileLoaders/LLRAW.cs b/OpenSim/Region/CoreModules/World/Terrain/FileLoaders/LLRAW.cs index be1fb24..59994e4 100644 --- a/OpenSim/Region/CoreModules/World/Terrain/FileLoaders/LLRAW.cs +++ b/OpenSim/Region/CoreModules/World/Terrain/FileLoaders/LLRAW.cs @@ -57,6 +57,10 @@ namespace OpenSim.Region.CoreModules.World.Terrain.FileLoaders public LLRAW() { + } + + private void BuildLookupHeightTable() + { LookupHeightTable = new HeightmapLookupValue[256 * 256]; for (int i = 0; i < 256; i++) @@ -186,6 +190,9 @@ namespace OpenSim.Region.CoreModules.World.Terrain.FileLoaders public void SaveStream(Stream s, ITerrainChannel map) { + if (LookupHeightTable == null) + BuildLookupHeightTable(); + using (BinaryWriter binStream = new BinaryWriter(s)) { // Output the calculated raw @@ -241,6 +248,7 @@ namespace OpenSim.Region.CoreModules.World.Terrain.FileLoaders } } } + LookupHeightTable = null; } public string FileExtension -- cgit v1.1