mirror of
https://github.com/opensim/opensim.git
synced 2026-08-10 19:36:07 +08:00
Close streams immediately when we finish using them
This commit is contained in:
@@ -231,7 +231,11 @@ namespace OpenSim.Region.CoreModules.Agent.TextureSender
|
||||
{
|
||||
try
|
||||
{
|
||||
List<int> layerStarts = CSJ2K.J2kImage.GetLayerBoundaries(new MemoryStream(j2kData));
|
||||
List<int> layerStarts;
|
||||
using (MemoryStream ms = new MemoryStream(j2kData))
|
||||
{
|
||||
layerStarts = CSJ2K.J2kImage.GetLayerBoundaries(ms);
|
||||
}
|
||||
|
||||
if (layerStarts != null && layerStarts.Count > 0)
|
||||
{
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/*
|
||||
/*
|
||||
* Copyright (c) Contributors, http://opensimulator.org/
|
||||
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
||||
*
|
||||
@@ -289,18 +289,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
|
||||
|
||||
rootElement.AppendChild(result);
|
||||
|
||||
return DocToBytes(doc);
|
||||
}
|
||||
|
||||
private byte[] DocToBytes(XmlDocument doc)
|
||||
{
|
||||
MemoryStream ms = new MemoryStream();
|
||||
XmlTextWriter xw = new XmlTextWriter(ms, null);
|
||||
xw.Formatting = Formatting.Indented;
|
||||
doc.WriteTo(xw);
|
||||
xw.Flush();
|
||||
|
||||
return ms.ToArray();
|
||||
return Util.DocToBytes(doc);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -918,17 +918,18 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||
{
|
||||
ITerrainModule terrainModule = scene.RequestModuleInterface<ITerrainModule>();
|
||||
|
||||
MemoryStream ms = new MemoryStream(data);
|
||||
if (m_displacement != Vector3.Zero || m_rotation != 0f)
|
||||
using (MemoryStream ms = new MemoryStream(data))
|
||||
{
|
||||
Vector2 rotationCenter = new Vector2(m_rotationCenter.X, m_rotationCenter.Y);
|
||||
terrainModule.LoadFromStream(terrainPath, m_displacement, m_rotation, rotationCenter, ms);
|
||||
if (m_displacement != Vector3.Zero || m_rotation != 0f)
|
||||
{
|
||||
Vector2 rotationCenter = new Vector2(m_rotationCenter.X, m_rotationCenter.Y);
|
||||
terrainModule.LoadFromStream(terrainPath, m_displacement, m_rotation, rotationCenter, ms);
|
||||
}
|
||||
else
|
||||
{
|
||||
terrainModule.LoadFromStream(terrainPath, ms);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
terrainModule.LoadFromStream(terrainPath, ms);
|
||||
}
|
||||
ms.Close();
|
||||
|
||||
m_log.DebugFormat("[ARCHIVER]: Restored terrain {0}", terrainPath);
|
||||
|
||||
|
||||
@@ -569,10 +569,11 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||
string terrainPath = String.Format("{0}{1}{2}.r32",
|
||||
regionDir, ArchiveConstants.TERRAINS_PATH, scene.RegionInfo.RegionName);
|
||||
|
||||
MemoryStream ms = new MemoryStream();
|
||||
scene.RequestModuleInterface<ITerrainModule>().SaveToStream(terrainPath, ms);
|
||||
m_archiveWriter.WriteFile(terrainPath, ms.ToArray());
|
||||
ms.Close();
|
||||
using (MemoryStream ms = new MemoryStream())
|
||||
{
|
||||
scene.RequestModuleInterface<ITerrainModule>().SaveToStream(terrainPath, ms);
|
||||
m_archiveWriter.WriteFile(terrainPath, ms.ToArray());
|
||||
}
|
||||
|
||||
m_log.InfoFormat("[ARCHIVER]: Adding scene objects to archive.");
|
||||
|
||||
|
||||
@@ -1121,9 +1121,8 @@ namespace OpenSim.Region.CoreModules.World.Estate
|
||||
{
|
||||
try
|
||||
{
|
||||
MemoryStream terrainStream = new MemoryStream(terrainData);
|
||||
terr.LoadFromStream(filename, terrainStream);
|
||||
terrainStream.Close();
|
||||
using (MemoryStream terrainStream = new MemoryStream(terrainData))
|
||||
terr.LoadFromStream(filename, terrainStream);
|
||||
|
||||
FileInfo x = new FileInfo(filename);
|
||||
remoteClient.SendAlertMessage("Your terrain was loaded as a " + x.Extension + " file. It may take a few moments to appear.");
|
||||
|
||||
@@ -281,18 +281,8 @@ namespace OpenSim.Region.CoreModules.World.Estate
|
||||
|
||||
rootElement.AppendChild(result);
|
||||
|
||||
return DocToBytes(doc);
|
||||
return Util.DocToBytes(doc);
|
||||
}
|
||||
|
||||
private byte[] DocToBytes(XmlDocument doc)
|
||||
{
|
||||
MemoryStream ms = new MemoryStream();
|
||||
XmlTextWriter xw = new XmlTextWriter(ms, null);
|
||||
xw.Formatting = Formatting.Indented;
|
||||
doc.WriteTo(xw);
|
||||
xw.Flush();
|
||||
|
||||
return ms.ToArray();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,13 +54,14 @@ namespace OpenSim.Region.CoreModules.World.Serialiser
|
||||
{
|
||||
string xmlstream = GetObjectXml(scene);
|
||||
|
||||
MemoryStream stream = ReformatXmlString(xmlstream);
|
||||
using (MemoryStream stream = ReformatXmlString(xmlstream))
|
||||
{
|
||||
stream.Seek(0, SeekOrigin.Begin);
|
||||
CreateXmlFile(stream, fileName);
|
||||
|
||||
stream.Seek(0, SeekOrigin.Begin);
|
||||
CreateXmlFile(stream, fileName);
|
||||
|
||||
stream.Seek(0, SeekOrigin.Begin);
|
||||
CreateCompressedXmlFile(stream, fileName);
|
||||
stream.Seek(0, SeekOrigin.Begin);
|
||||
CreateCompressedXmlFile(stream, fileName);
|
||||
}
|
||||
}
|
||||
|
||||
private static MemoryStream ReformatXmlString(string xmlstream)
|
||||
@@ -112,13 +113,16 @@ namespace OpenSim.Region.CoreModules.World.Serialiser
|
||||
{
|
||||
#region GZip Compressed Version
|
||||
|
||||
FileStream objectsFileCompressed = new FileStream(fileName + ".gzs", FileMode.Create);
|
||||
MemoryStream gzipMSStream = new MemoryStream();
|
||||
GZipStream gzipStream = new GZipStream(gzipMSStream, CompressionMode.Compress);
|
||||
xmlStream.WriteTo(gzipStream);
|
||||
gzipMSStream.WriteTo(objectsFileCompressed);
|
||||
objectsFileCompressed.Flush();
|
||||
objectsFileCompressed.Close();
|
||||
using (FileStream objectsFileCompressed = new FileStream(fileName + ".gzs", FileMode.Create))
|
||||
using (MemoryStream gzipMSStream = new MemoryStream())
|
||||
{
|
||||
using (GZipStream gzipStream = new GZipStream(gzipMSStream, CompressionMode.Compress, true))
|
||||
{
|
||||
xmlStream.WriteTo(gzipStream);
|
||||
}
|
||||
|
||||
gzipMSStream.WriteTo(objectsFileCompressed);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -1145,7 +1145,7 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
|
||||
|
||||
if (myMapImageJPEG.Length == 0)
|
||||
{
|
||||
MemoryStream imgstream = new MemoryStream();
|
||||
MemoryStream imgstream = null;
|
||||
Bitmap mapTexture = new Bitmap(1,1);
|
||||
ManagedImage managedImage;
|
||||
Image image = (Image)mapTexture;
|
||||
@@ -1192,10 +1192,7 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
|
||||
image.Dispose();
|
||||
|
||||
if (imgstream != null)
|
||||
{
|
||||
imgstream.Close();
|
||||
imgstream.Dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -1639,4 +1636,4 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
|
||||
public uint itemtype;
|
||||
public ulong regionhandle;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user