From b0f4646b88171f47af8ee4ba11a9dba820057dac Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Fri, 26 Feb 2016 21:35:30 +0000 Subject: [PATCH] Dispose package on exception. --- OpenRA.Game/Map/MapCache.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/OpenRA.Game/Map/MapCache.cs b/OpenRA.Game/Map/MapCache.cs index 55002249b2..f837de10e0 100644 --- a/OpenRA.Game/Map/MapCache.cs +++ b/OpenRA.Game/Map/MapCache.cs @@ -57,17 +57,21 @@ namespace OpenRA var mapGrid = modData.Manifest.Get(); foreach (var path in mapPaths) { + IReadOnlyPackage package; try { using (new Support.PerfTimer(path.Key)) { - var package = modData.ModFiles.OpenPackage(path.Key); + package = modData.ModFiles.OpenPackage(path.Key); var uid = Map.ComputeUID(package); previews[uid].UpdateFromMap(package, path.Value, modData.Manifest.MapCompatibility, mapGrid.Type); } } catch (Exception e) { + if (package != null) + package.Dispose(); + Console.WriteLine("Failed to load map: {0}", path); Console.WriteLine("Details: {0}", e); Log.Write("debug", "Failed to load map: {0}", path);