dispose the previous ordermanager (so the file will get closed, among other things)
This commit is contained in:
@@ -170,8 +170,11 @@ namespace OpenRA
|
|||||||
|
|
||||||
internal static void JoinServer(string host, int port)
|
internal static void JoinServer(string host, int port)
|
||||||
{
|
{
|
||||||
|
if (orderManager != null) orderManager.Dispose();
|
||||||
|
|
||||||
CurrentHost = host;
|
CurrentHost = host;
|
||||||
CurrentPort = port;
|
CurrentPort = port;
|
||||||
|
|
||||||
orderManager = new OrderManager(new NetworkConnection( host, port ), ChooseReplayFilename());
|
orderManager = new OrderManager(new NetworkConnection( host, port ), ChooseReplayFilename());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -182,6 +185,7 @@ namespace OpenRA
|
|||||||
|
|
||||||
internal static void JoinLocal()
|
internal static void JoinLocal()
|
||||||
{
|
{
|
||||||
|
if (orderManager != null) orderManager.Dispose();
|
||||||
orderManager = new OrderManager(new EchoConnection());
|
orderManager = new OrderManager(new EchoConnection());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ using OpenRA.FileFormats;
|
|||||||
|
|
||||||
namespace OpenRA.Network
|
namespace OpenRA.Network
|
||||||
{
|
{
|
||||||
class OrderManager
|
class OrderManager : IDisposable
|
||||||
{
|
{
|
||||||
public int FrameNumber { get; private set; }
|
public int FrameNumber { get; private set; }
|
||||||
|
|
||||||
@@ -233,5 +233,19 @@ namespace OpenRA.Network
|
|||||||
replaySaveFile.Write( i.Second );
|
replaySaveFile.Write( i.Second );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool disposed;
|
||||||
|
public void Dispose()
|
||||||
|
{
|
||||||
|
if (disposed) return;
|
||||||
|
|
||||||
|
if (replaySaveFile != null)
|
||||||
|
replaySaveFile.Dispose();
|
||||||
|
|
||||||
|
disposed = true;
|
||||||
|
GC.SuppressFinalize(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
~OrderManager() { Dispose(); }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user