From 9f94488f32fe9821a9fd15d3deea485686cfd87c Mon Sep 17 00:00:00 2001 From: DeaDDooMER Date: Wed, 13 Sep 2023 18:42:32 +0300 Subject: [PATCH] dfzip: fix error codes on read --- src/shared/WADEDITOR_dfzip.pas | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/shared/WADEDITOR_dfzip.pas b/src/shared/WADEDITOR_dfzip.pas index c01fe7f..fd57998 100644 --- a/src/shared/WADEDITOR_dfzip.pas +++ b/src/shared/WADEDITOR_dfzip.pas @@ -62,6 +62,8 @@ interface function Preload(p: PResource): Boolean; function GetSourceStream(p: PResource): TStream; + procedure Clear(); + procedure ReadLFH(s: TStream; fname, xcomment: AnsiString; xcsize, xusize, xcomp, xcrc, xtime, xflags: UInt32); procedure ReadCDR(s: TStream; cdrid: Integer); function FindEOCD(s: TStream): Boolean; @@ -457,16 +459,15 @@ implementation FComment := ''; FLastError := DFWAD_NOERROR; FVersion := 10; - FreeWAD(); end; destructor TZIPEditor.Destroy(); begin - FreeWAD(); + Clear(); inherited; end; - procedure TZIPEditor.FreeWAD(); + procedure TZIPEditor.Clear(); var i, j: Integer; begin if FSection <> nil then @@ -492,6 +493,11 @@ implementation FreeAndNil(FStream); end; FComment := ''; + end; + + procedure TZIPEditor.FreeWAD(); + begin + Clear(); FLastError := DFWAD_NOERROR; FVersion := 10; end; @@ -1129,7 +1135,7 @@ implementation begin if gWADEditorLogLevel >= DFWAD_LOG_INFO then e_WriteLog('ZIP: Failed to read ZIP from file ' + FileName + ', reason: ' + e.Message, MSG_WARNING); - FreeWAD(); + Clear(); end; end; except @@ -1169,7 +1175,7 @@ implementation begin if gWADEditorLogLevel >= DFWAD_LOG_INFO then e_WriteLog('DFZIP: Failed to read ZIP from memory, reason: ' + e.Message, MSG_WARNING); - FreeWAD(); + Clear(); end; end; end; -- 2.29.2