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