From 2041b15260b21ad3f428820bce1b9ba86bc66b78 Mon Sep 17 00:00:00 2001 From: adelikat Date: Thu, 20 Nov 2014 00:14:33 +0000 Subject: [PATCH] Tasproj loading - don't attempt to read from empty files if they exist but are empty --- .../movie/tasproj/TasLagLog.cs | 9 ++++++--- .../movie/tasproj/TasStateManager.cs | 17 ++++++++++------- .../movie/tasproj/TasStateManagerSettings.cs | 9 ++++++--- 3 files changed, 22 insertions(+), 13 deletions(-) diff --git a/BizHawk.Client.Common/movie/tasproj/TasLagLog.cs b/BizHawk.Client.Common/movie/tasproj/TasLagLog.cs index 50256da7ba..73ea9ebf94 100644 --- a/BizHawk.Client.Common/movie/tasproj/TasLagLog.cs +++ b/BizHawk.Client.Common/movie/tasproj/TasLagLog.cs @@ -85,10 +85,13 @@ namespace BizHawk.Client.Common public void Load(BinaryReader br) { LagLog.Clear(); - int length = br.ReadInt32(); - for (int i = 0; i < length; i++) + if (br.BaseStream.Length > 0) { - LagLog.Add(br.ReadInt32(), br.ReadBoolean()); + int length = br.ReadInt32(); + for (int i = 0; i < length; i++) + { + LagLog.Add(br.ReadInt32(), br.ReadBoolean()); + } } } } diff --git a/BizHawk.Client.Common/movie/tasproj/TasStateManager.cs b/BizHawk.Client.Common/movie/tasproj/TasStateManager.cs index a4c7656fdf..c3108d900d 100644 --- a/BizHawk.Client.Common/movie/tasproj/TasStateManager.cs +++ b/BizHawk.Client.Common/movie/tasproj/TasStateManager.cs @@ -229,14 +229,17 @@ namespace BizHawk.Client.Common public void Load(BinaryReader br) { States.Clear(); - int nstates = br.ReadInt32(); - for (int i = 0; i < nstates; i++) + if (br.BaseStream.Length > 0) { - int frame = br.ReadInt32(); - int len = br.ReadInt32(); - byte[] data = br.ReadBytes(len); - States.Add(frame, data); - Used += len; + int nstates = br.ReadInt32(); + for (int i = 0; i < nstates; i++) + { + int frame = br.ReadInt32(); + int len = br.ReadInt32(); + byte[] data = br.ReadBytes(len); + States.Add(frame, data); + Used += len; + } } } diff --git a/BizHawk.Client.Common/movie/tasproj/TasStateManagerSettings.cs b/BizHawk.Client.Common/movie/tasproj/TasStateManagerSettings.cs index 6d9dc252cd..a99bb207c0 100644 --- a/BizHawk.Client.Common/movie/tasproj/TasStateManagerSettings.cs +++ b/BizHawk.Client.Common/movie/tasproj/TasStateManagerSettings.cs @@ -53,9 +53,12 @@ namespace BizHawk.Client.Common public void PopulateFromString(string settings) { - var lines = settings.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries); - SaveGreenzone = bool.Parse(lines[0]); - Capacitymb = int.Parse(lines[1]); + if (!string.IsNullOrWhiteSpace(settings)) + { + var lines = settings.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries); + SaveGreenzone = bool.Parse(lines[0]); + Capacitymb = int.Parse(lines[1]); + } } } }