瀏覽代碼

* Dyn ansichar array for fcoffstrs

Michaël Van Canneyt 4 月之前
父節點
當前提交
e05a618483
共有 1 個文件被更改,包括 3 次插入6 次删除
  1. 3 6
      compiler/ogcoff.pas

+ 3 - 6
compiler/ogcoff.pas

@@ -175,7 +175,7 @@ interface
        TCoffObjInput = class(tObjInput)
        TCoffObjInput = class(tObjInput)
        private
        private
          FCoffsyms : tdynamicarray;
          FCoffsyms : tdynamicarray;
-         FCoffStrs : PChar;
+         FCoffStrs : TAnsiCharDynArray;
          FCoffStrSize: longword;
          FCoffStrSize: longword;
          { Convert symidx -> TObjSymbol }
          { Convert symidx -> TObjSymbol }
          FSymTbl   : ^TObjSymbolArray;
          FSymTbl   : ^TObjSymbolArray;
@@ -2270,8 +2270,7 @@ const pemagic : array[0..3] of byte = (
     destructor TCoffObjInput.destroy;
     destructor TCoffObjInput.destroy;
       begin
       begin
         FCoffSyms.free;
         FCoffSyms.free;
-        if assigned(FCoffStrs) then
-          freemem(FCoffStrs);
+        FCoffStrs:=nil;
         if assigned(FSymTbl) then
         if assigned(FSymTbl) then
           freemem(FSymTbl);
           freemem(FSymTbl);
         if assigned(FSecTbl) then
         if assigned(FSecTbl) then
@@ -2771,7 +2770,7 @@ const pemagic : array[0..3] of byte = (
            if (FCoffStrSize>4) then
            if (FCoffStrSize>4) then
              begin
              begin
                { allocate an extra byte and null-terminate }
                { allocate an extra byte and null-terminate }
-               GetMem(FCoffStrs,FCoffStrSize+1);
+               SetLength(FCoffStrs,FCoffStrSize+1);
                FCoffStrs[FCoffStrSize]:=#0;
                FCoffStrs[FCoffStrSize]:=#0;
                for i:=0 to 3 do
                for i:=0 to 3 do
                  FCoffStrs[i]:=#0;
                  FCoffStrs[i]:=#0;
@@ -2871,8 +2870,6 @@ const pemagic : array[0..3] of byte = (
            { Relocs }
            { Relocs }
            ObjSectionList.ForEachCall(@objsections_read_relocs,nil);
            ObjSectionList.ForEachCall(@objsections_read_relocs,nil);
          end;
          end;
-        if assigned(FCoffStrs) then
-          freemem(FCoffStrs);
         FCoffStrs:=nil;
         FCoffStrs:=nil;
         FCoffSyms.Free;
         FCoffSyms.Free;
         FCoffSyms:=nil;
         FCoffSyms:=nil;