Dispose global mix database.dat properly.

This commit is contained in:
Matthias Mailänder
2016-04-17 14:09:52 +02:00
parent c2c26cbcdc
commit 4719a085bb
2 changed files with 17 additions and 5 deletions

View File

@@ -9,16 +9,21 @@
*/
#endregion
using System;
using System.Collections.Generic;
using System.IO;
namespace OpenRA.FileFormats
{
public class XccGlobalDatabase
public class XccGlobalDatabase : IDisposable
{
public readonly string[] Entries;
public XccGlobalDatabase(Stream s)
readonly Stream s;
public XccGlobalDatabase(Stream stream)
{
s = stream;
var entries = new List<string>();
while (s.Peek() > -1)
{
@@ -40,5 +45,10 @@ namespace OpenRA.FileFormats
Entries = entries.ToArray();
}
public void Dispose()
{
s.Dispose();
}
}
}

View File

@@ -90,9 +90,11 @@ namespace OpenRA.FileSystem
// TODO: This should be passed to the mix file ctor
if (context.Exists("global mix database.dat"))
{
var db = new XccGlobalDatabase(context.Open("global mix database.dat"));
foreach (var e in db.Entries)
allPossibleFilenames.Add(e);
using (var db = new XccGlobalDatabase(context.Open("global mix database.dat")))
{
foreach (var e in db.Entries)
allPossibleFilenames.Add(e);
}
}
foreach (var filename in allPossibleFilenames)