Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-devel / 2002-06

memory leak in fpc v1.1

1 message · 1 person ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Sergey Korshunoff

Hi!
Memory leak is very small but if You prefere to be clean....

1)

Do not call an initwriting if MaybeNextList(hp)=false This patch remove a memory leak in smartlinking mode for: i386/cpu.pp, unix/errors.pp etc.

diff -urN FPC-MY-1.old/fpc/compiler/assemble.pas
FPC-MY-1/fpc/compiler/assemble.pas
--- FPC-MY-1.old/fpc/compiler/assemble.pas Sat Jun 15 02:13:23 2002 +++ FPC-MY-1/fpc/compiler/assemble.pas Sat Jun 15 02:22:39 2002 @@ -1484,8 +1484,6 @@

             end;
            NextSmartName(place);
-           objectoutput.initwriting(ObjFile);
-           objectdata:=objectoutput.data;

{ there is a problem if startsec is sec_none !! PM }

            if startsec=sec_none then

@@ -1493,6 +1491,9 @@

            if not MaybeNextList(hp) then
              break;
+
+           objectoutput.initwriting(ObjFile);
+           objectdata:=objectoutput.data;
          end;
       end;

2)
Destory object before replacing it with other one
(try to compile util/obj2bin.pp to examine this leak)

diff -urN FPC-MY-1.old/fpc/compiler/symsym.pas
FPC-MY-1/fpc/compiler/symsym.pas
--- FPC-MY-1.old/fpc/compiler/symsym.pas	Sat Jun 15 22:00:31 2002
+++ FPC-MY-1/fpc/compiler/symsym.pas	Sat Jun 15 22:06:49 2002
@@ -1070,11 +1070,11 @@
         index:=overriden.index;
         default:=overriden.default;
         indextype:=overriden.indextype;
-        readaccess.clear;
+        readaccess.free;
         readaccess:=overriden.readaccess.getcopy;
-        writeaccess.clear;
+        writeaccess.free;
         writeaccess:=overriden.writeaccess.getcopy;
-        storedaccess.clear;
+        storedaccess.free;
         storedaccess:=overriden.storedaccess.getcopy;
       end;

Reply by email