diff --git a/compiler/owar.pas b/compiler/owar.pas index ed0408e1c3..70df020c3a 100644 --- a/compiler/owar.pas +++ b/compiler/owar.pas @@ -64,7 +64,7 @@ type tarobjectreader=class(tobjectreader) private ArSymbols : TFPHashObjectList; - LFNStrs : PChar; + LFNStrs : TAnsiCharDynArray; LFNSize : longint; CurrMemberPos, CurrMemberSize : longint; @@ -353,8 +353,7 @@ implementation begin inherited closefile; ArSymbols.Free; - if assigned(LFNStrs) then - FreeMem(LFNStrs); + LFNStrs:=nil; inherited Destroy; end; @@ -515,8 +514,8 @@ implementation if DecodeMemberName(currarhdr)='/' then begin lfnsize:=DecodeMemberSize(currarhdr); - getmem(lfnstrs,lfnsize); - Read(lfnstrs^,lfnsize); + setLength(lfnstrs,lfnsize); + Read(lfnstrs[0],lfnsize); end; end;