Dispose global mix database.dat properly.
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user