Dispose global mix database.dat properly.
This commit is contained in:
@@ -9,16 +9,21 @@
|
|||||||
*/
|
*/
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
|
||||||
namespace OpenRA.FileFormats
|
namespace OpenRA.FileFormats
|
||||||
{
|
{
|
||||||
public class XccGlobalDatabase
|
public class XccGlobalDatabase : IDisposable
|
||||||
{
|
{
|
||||||
public readonly string[] Entries;
|
public readonly string[] Entries;
|
||||||
public XccGlobalDatabase(Stream s)
|
readonly Stream s;
|
||||||
|
|
||||||
|
public XccGlobalDatabase(Stream stream)
|
||||||
{
|
{
|
||||||
|
s = stream;
|
||||||
|
|
||||||
var entries = new List<string>();
|
var entries = new List<string>();
|
||||||
while (s.Peek() > -1)
|
while (s.Peek() > -1)
|
||||||
{
|
{
|
||||||
@@ -40,5 +45,10 @@ namespace OpenRA.FileFormats
|
|||||||
|
|
||||||
Entries = entries.ToArray();
|
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
|
// TODO: This should be passed to the mix file ctor
|
||||||
if (context.Exists("global mix database.dat"))
|
if (context.Exists("global mix database.dat"))
|
||||||
{
|
{
|
||||||
var db = new XccGlobalDatabase(context.Open("global mix database.dat"));
|
using (var db = new XccGlobalDatabase(context.Open("global mix database.dat")))
|
||||||
foreach (var e in db.Entries)
|
{
|
||||||
allPossibleFilenames.Add(e);
|
foreach (var e in db.Entries)
|
||||||
|
allPossibleFilenames.Add(e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var filename in allPossibleFilenames)
|
foreach (var filename in allPossibleFilenames)
|
||||||
|
|||||||
Reference in New Issue
Block a user