* Convert shstrtab to dyn array of ansichar

This commit is contained in:
Michaël Van Canneyt 2025-03-18 15:25:52 +01:00
parent 0f2248f923
commit 21276413ea

View File

@ -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.