diff --git a/src/AcDream.Content/Pak/PakWriter.cs b/src/AcDream.Content/Pak/PakWriter.cs index 39618512..fe6e33bd 100644 --- a/src/AcDream.Content/Pak/PakWriter.cs +++ b/src/AcDream.Content/Pak/PakWriter.cs @@ -93,12 +93,12 @@ public sealed class PakWriter : IDisposable { } public void Dispose() { + // Best-effort finalize so a forgotten Finish() call doesn't leave a + // half-written file with a placeholder header claiming 0 entries + // while blobs are on disk. No try/catch needed: Finish() only throws + // when _finished is already true, which this guard already excludes. if (!_finished) { - // Best-effort finalize so a forgotten Finish() call doesn't leave a - // half-written file with a placeholder header claiming 0 entries - // while blobs are on disk — surfaced loudly instead via Finish()'s - // own invariants on next use, but here we simply flush what exists. - try { Finish(); } catch (InvalidOperationException) { /* already finished */ } + Finish(); } _stream.Dispose(); }