diff --git a/PortableTerrariaCommon/PortableTerrariaCommon/SplitOutStream.cs b/PortableTerrariaCommon/PortableTerrariaCommon/SplitOutStream.cs index 7acfc44..cc6c4f5 100644 --- a/PortableTerrariaCommon/PortableTerrariaCommon/SplitOutStream.cs +++ b/PortableTerrariaCommon/PortableTerrariaCommon/SplitOutStream.cs @@ -88,6 +88,7 @@ public override void Write(byte[] buffer, int offset, int count) readonly InputStream inputStream; readonly OutputStream outputStream; readonly Action writeDataToStream; + readonly Action onError; readonly int splitSize; volatile byte[] buffer; volatile int offset; @@ -100,10 +101,12 @@ public override void Write(byte[] buffer, int offset, int count) //constructor public SplitOutStream( - Action writeDataToStream, int splitSize) + Action writeDataToStream, int splitSize, + Action onError) { this.writeDataToStream = writeDataToStream; this.splitSize = splitSize; + this.onError = onError; inputStream = new InputStream(this); outputStream = new OutputStream(this); init(); @@ -120,7 +123,14 @@ void init() Task.Run(() => { //multithreaded write stream data - writeDataToStream(outputStream); + try + { + writeDataToStream(outputStream); + } + catch (Exception e) + { + onError(e); + } ended = true; lock (objLock) { diff --git a/PortableTerrariaCreator/PortableTerrariaCreator/PortableTerrariaLauncherCreator.cs b/PortableTerrariaCreator/PortableTerrariaCreator/PortableTerrariaLauncherCreator.cs index fdc61d8..82765e5 100644 --- a/PortableTerrariaCreator/PortableTerrariaCreator/PortableTerrariaLauncherCreator.cs +++ b/PortableTerrariaCreator/PortableTerrariaCreator/PortableTerrariaLauncherCreator.cs @@ -97,6 +97,7 @@ protected override void run() void createPTL(Stream stream) { //edit exe embedded resources + Exception err = null; using (var exe = GuiHelper.GetResourceStream( "Sahlaysta.PortableTerrariaLauncher.exe")) using (var ad = MonoCecilAssembly @@ -160,7 +161,11 @@ void writeDataToStream(Stream s) { zipTerraria(s); } - var sos = new SplitOutStream(writeDataToStream, splitSize); + void onError(Exception e) + { + err = e; + } + var sos = new SplitOutStream(writeDataToStream, splitSize, onError); for (long i = 0; i < splitCount; i++) { string name = namep + "terraria.zip." + (i + 1).ToString(format); @@ -194,6 +199,8 @@ void writeDataToStream(Stream s) //write .exe ad.Write(stream); } + if (err != null) + throw err; } void zipTerraria(Stream stream) { diff --git a/PortableTerrariaCreator/PortableTerrariaCreator/Properties/AssemblyInfo.cs b/PortableTerrariaCreator/PortableTerrariaCreator/Properties/AssemblyInfo.cs index 90c4d19..4f53546 100644 --- a/PortableTerrariaCreator/PortableTerrariaCreator/Properties/AssemblyInfo.cs +++ b/PortableTerrariaCreator/PortableTerrariaCreator/Properties/AssemblyInfo.cs @@ -33,6 +33,6 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("3.1.0.0")] -[assembly: AssemblyFileVersion("3.1.0.0")] +[assembly: AssemblyVersion("3.1.1.0")] +[assembly: AssemblyFileVersion("3.1.1.0")] [assembly: NeutralResourcesLanguage("")] diff --git a/PortableTerrariaLauncher/PortableTerrariaLauncher/Properties/AssemblyInfo.cs b/PortableTerrariaLauncher/PortableTerrariaLauncher/Properties/AssemblyInfo.cs index aa6bc89..6df3d54 100644 --- a/PortableTerrariaLauncher/PortableTerrariaLauncher/Properties/AssemblyInfo.cs +++ b/PortableTerrariaLauncher/PortableTerrariaLauncher/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("3.1.0.0")] -[assembly: AssemblyFileVersion("3.1.0.0")] +[assembly: AssemblyVersion("3.1.1.0")] +[assembly: AssemblyFileVersion("3.1.1.0")] diff --git a/PortableTerrariaLauncher/PortableTerrariaLauncher/bin/Release/Sahlaysta.PortableTerrariaLauncher.exe b/PortableTerrariaLauncher/PortableTerrariaLauncher/bin/Release/Sahlaysta.PortableTerrariaLauncher.exe index b1180aa..7067479 100644 Binary files a/PortableTerrariaLauncher/PortableTerrariaLauncher/bin/Release/Sahlaysta.PortableTerrariaLauncher.exe and b/PortableTerrariaLauncher/PortableTerrariaLauncher/bin/Release/Sahlaysta.PortableTerrariaLauncher.exe differ