Browse Source

* change hashobjectlist.Delete() calls to :=nil now that the .Delete() behaviour
is changed

git-svn-id: trunk@5365 -

peter 19 years ago
parent
commit
f21f055373
2 changed files with 28 additions and 28 deletions
  1. 16 16
      compiler/ogbase.pas
  2. 12 12
      compiler/ogcoff.pas

+ 16 - 16
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

+ 12 - 12
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]);