From f21f055373978108a8cae88ddf45332019064592 Mon Sep 17 00:00:00 2001 From: peter Date: Mon, 13 Nov 2006 22:04:21 +0000 Subject: [PATCH] * change hashobjectlist.Delete() calls to :=nil now that the .Delete() behaviour is changed git-svn-id: trunk@5365 - --- compiler/ogbase.pas | 32 ++++++++++++++++---------------- compiler/ogcoff.pas | 24 ++++++++++++------------ 2 files changed, 28 insertions(+), 28 deletions(-) diff --git a/compiler/ogbase.pas b/compiler/ogbase.pas index 5dee796cb2..5da30bf02c 100644 --- a/compiler/ogbase.pas +++ b/compiler/ogbase.pas @@ -99,7 +99,7 @@ interface N_LBRAC = $C0; N_EXCL = $C2; N_RBRAC = $E0; - + type TObjSectionOption = ( { Has Data available in the file } @@ -384,7 +384,7 @@ interface TExeOutput = class private - { ExeSections } + { ExeSectionList } FCObjData : TObjDataClass; FCExeSection : TExeSectionClass; FCurrExeSec : TExeSection; @@ -450,7 +450,7 @@ interface procedure GenerateLibraryImports(ImportLibraryList:TFPHashObjectList);virtual; function writeexefile(const fn:string):boolean; property Writer:TObjectWriter read FWriter; - property ExeSections:TFPHashObjectList read FExeSectionList; + property ExeSectionList:TFPHashObjectList read FExeSectionList; property ObjDataList:TFPObjectList read FObjDataList; property ExeSymbolList:TFPHashObjectList read FExeSymbolList; property UnresolvedExeSymbols:TFPObjectList read FUnresolvedExeSymbols; @@ -1407,7 +1407,7 @@ implementation function TExeOutput.FindExeSection(const aname:string):TExeSection; begin - result:=TExeSection(FExeSectionList.Find(aname)); + result:=TExeSection(ExeSectionList.Find(aname)); end; @@ -1485,7 +1485,7 @@ implementation begin sec:=FindExeSection(aname); if not assigned(sec) then - sec:=CExeSection.create(FExeSectionList,aname); + sec:=CExeSection.create(ExeSectionList,aname); { Clear ExeSection contents } FCurrExeSec:=sec; end; @@ -1952,9 +1952,9 @@ implementation if not assigned(exemap) then exit; exemap.AddMemoryMapHeader(ImageBase); - for i:=0 to ExeSections.Count-1 do + for i:=0 to ExeSectionList.Count-1 do begin - exesec:=TExeSection(ExeSections[i]); + exesec:=TExeSection(ExeSectionList[i]); exemap.AddMemoryMapExeSection(exesec); for j:=0 to exesec.ObjSectionList.count-1 do begin @@ -2203,9 +2203,9 @@ implementation i : longint; exesec : TExeSection; begin - for i:=0 to ExeSections.Count-1 do + for i:=0 to ExeSectionList.Count-1 do begin - exesec:=TExeSection(ExeSections[i]); + exesec:=TExeSection(ExeSectionList[i]); if not(oso_keep in exesec.SecOptions) and ( (exesec.ObjSectionlist.count=0) or @@ -2216,10 +2216,10 @@ implementation ) then begin Comment(V_Debug,'Deleting empty section '+exesec.name); - FExeSectionList.Delete(i); + ExeSectionList[i]:=nil; end; end; - ExeSections.Pack; + ExeSectionList.Pack; end; @@ -2367,10 +2367,10 @@ implementation ObjSectionWorkList.Free; ObjSectionWorkList:=nil; - { Remove unused objsections from exesections } - for i:=0 to ExeSections.Count-1 do + { Remove unused objsections from ExeSectionList } + for i:=0 to ExeSectionList.Count-1 do begin - exesec:=TExeSection(ExeSections[i]); + exesec:=TExeSection(ExeSectionList[i]); for j:=0 to exesec.ObjSectionlist.count-1 do begin objsec:=TObjSection(exesec.ObjSectionlist[j]); @@ -2393,9 +2393,9 @@ implementation exesec : TExeSection; objsec : TObjSection; begin - for i:=0 to ExeSections.Count-1 do + for i:=0 to ExeSectionList.Count-1 do begin - exesec:=TExeSection(ExeSections[i]); + exesec:=TExeSection(ExeSectionList[i]); if not assigned(exesec) then continue; for j:=0 to exesec.ObjSectionlist.count-1 do diff --git a/compiler/ogcoff.pas b/compiler/ogcoff.pas index bc846762bd..513a1e7362 100644 --- a/compiler/ogcoff.pas +++ b/compiler/ogcoff.pas @@ -224,11 +224,11 @@ interface nsects : smallint; nsyms, sympos : aint; - procedure ExeSections_pass2_header(p:TObject;arg:pointer); + procedure ExeSectionList_pass2_header(p:TObject;arg:pointer); procedure write_symbol(const name:string;value:aint;section:smallint;typ,aux:byte); procedure globalsyms_write_symbol(p:TObject;arg:pointer); - procedure ExeSections_write_header(p:TObject;arg:pointer); - procedure ExeSections_write_data(p:TObject;arg:pointer); + procedure ExeSectionList_write_header(p:TObject;arg:pointer); + procedure ExeSectionList_write_data(p:TObject;arg:pointer); protected procedure CalcPos_Header;override; procedure CalcPos_Symbols;override; @@ -1934,7 +1934,7 @@ const pemagic : array[0..3] of byte = ( end; - procedure TCoffexeoutput.ExeSections_write_header(p:TObject;arg:pointer); + procedure TCoffexeoutput.ExeSectionList_write_header(p:TObject;arg:pointer); var sechdr : tcoffsechdr; begin @@ -1969,7 +1969,7 @@ const pemagic : array[0..3] of byte = ( end; - procedure TCoffexeoutput.ExeSections_pass2_header(p:TObject;arg:pointer); + procedure TCoffexeoutput.ExeSectionList_pass2_header(p:TObject;arg:pointer); begin with TExeSection(p) do begin @@ -1979,7 +1979,7 @@ const pemagic : array[0..3] of byte = ( end; - procedure Tcoffexeoutput.ExeSections_write_Data(p:TObject;arg:pointer); + procedure Tcoffexeoutput.ExeSectionList_write_Data(p:TObject;arg:pointer); var objsec : TObjSection; i : longint; @@ -2024,7 +2024,7 @@ const pemagic : array[0..3] of byte = ( end; { retrieve amount of ObjSections } nsects:=0; - ExeSections.ForEachCall(@ExeSections_pass2_header,@nsects); + ExeSectionList.ForEachCall(@ExeSectionList_pass2_header,@nsects); { calculate start positions after the headers } currdatapos:=stubsize+optheadersize+sizeof(tcoffsechdr)*nsects; currmempos:=stubsize+optheadersize+sizeof(tcoffsechdr)*nsects; @@ -2045,7 +2045,7 @@ const pemagic : array[0..3] of byte = ( begin sym:=TExeSymbol(ExeSymbolList[i]); if not sym.ObjSymbol.objsection.Used then - ExeSymbolList.Delete(i); + ExeSymbolList[i]:=nil; end; ExeSymbolList.Pack; { Calculating symbols position and size } @@ -2191,9 +2191,9 @@ const pemagic : array[0..3] of byte = ( FWriter.write(djoptheader,sizeof(djoptheader)); end; { Section headers } - ExeSections.ForEachCall(@ExeSections_write_header,nil); + ExeSectionList.ForEachCall(@ExeSectionList_write_header,nil); { Section data } - ExeSections.ForEachCall(@ExeSections_write_data,nil); + ExeSectionList.ForEachCall(@ExeSectionList_write_data,nil); { Optional ObjSymbols } if not(cs_link_strip in current_settings.globalswitches) then begin @@ -2474,9 +2474,9 @@ const pemagic : array[0..3] of byte = ( exesec.AddObjSection(objsec); pgaddr:=-1; hdrpos:=-1; - for i:=0 to ExeSections.Count-1 do + for i:=0 to ExeSectionList.Count-1 do begin - exesec:=TExeSection(ExeSections[i]); + exesec:=TExeSection(ExeSectionList[i]); for j:=0 to exesec.ObjSectionList.count-1 do begin objsec:=TObjSection(exesec.ObjSectionList[j]);