Santiago Amposta wrote:
Hello:
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?

Did you call A.Create before calling TestDerived? Maybe A.List was not initialized (which is done in constructor Create) and contains an invalid pointer (to dynamic array of string). When you call SetLength, it decrements the reference count of A.List (which is not nil) and raisesSIGSEGV.

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

Reply via email to