From 21276413ea4f5044fb183efee1b78e303fbc0715 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Van=20Canneyt?= Date: Tue, 18 Mar 2025 15:25:52 +0100 Subject: [PATCH] * Convert shstrtab to dyn array of ansichar --- compiler/ogelf.pas | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/compiler/ogelf.pas b/compiler/ogelf.pas index 38f631e254..24c544ed2a 100644 --- a/compiler/ogelf.pas +++ b/compiler/ogelf.pas @@ -128,7 +128,7 @@ interface shoffset: aword; shstrndx: longword; symtabndx: longword; - shstrtab: PChar; + shstrtab: TAnsiCharDynarray; strtab: PChar; shstrtablen: longword; strtablen: longword; @@ -1168,8 +1168,7 @@ implementation FreeMem(FSecTbl); if Assigned(strtab) then FreeMem(strtab); - if Assigned(shstrtab) then - FreeMem(shstrtab); + shstrtab:=nil; if Assigned(symversions) then FreeMem(symversions); inherited Destroy; @@ -1593,9 +1592,9 @@ implementation if shdrs[shstrndx].sh_type<>SHT_STRTAB then InternalError(2012060202); shstrtablen:=shdrs[shstrndx].sh_size; - GetMem(shstrtab,shstrtablen); + SetLength(shstrtab,shstrtablen); FReader.seek(shdrs[shstrndx].sh_offset); - FReader.read(shstrtab^,shstrtablen); + FReader.read(shstrtab[0],shstrtablen); FLoaded[shstrndx]:=True; { Locate the symtable, it is typically at the end so loop backwards.