[fpc-pascal] Problem with objects
    Dennis Poon 
    dennis at avidsoft.com.hk
       
    Wed Dec 23 12:13:52 CET 2015
    
    
  
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
    
    
More information about the fpc-pascal
mailing list