Santiago Amposta wrote:

I use fpc 2.6.4 and I have a problem of memory leaks, strange errors,
etc. Finally I have tracked it to this:

TSimpleArrayString=object
     List:array of String;
end;

TDerivedArrayString=object(TSimpleArrayString)
     other_field:integer;
end;

procedure TestSimple;
var
  A:TSimpleArrayString;
begin
   setLength(A.List,0);
end;

procedure TestDerived;
var
  A:TDerivedArrayString;
begin
   setLength(A.List,0);
end;


TestSimple; // Works Fine,
TestDerived; // rises an exception SIGSEGV on setLength

What am I doing wrong?

This is a bug in FPC 2.6.4 (it did not initialise managed fields of parent objects for child objects that do not declare extra managed fields). It is fixed in FPC 3.0.


Dennis Poon wrote:
I think for both Record or Object, you need to initialize any dynamic
array or strings fields before using them.

That is incorrect, the compiler takes care of it (or is supposed to, anyway).


Jonas
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to