[Lazarus] TStringList.Destroy generate SIGSEGV with Zeos 6.6.6
Luiz Americo Pereira Camara
luizmed at oi.com.br
Sat Mar 31 12:04:03 CEST 2012
On 30/3/2012 11:37, Daniel Simoes de Ameida wrote:
> Hi All,
>
> On recent FPC 2.6.1 I notice a strange behavior with TStringList.Destroy
> TStringList.Destroy, calls method TStringList.Clear, but the problem
> is that TStringList.Clear call methods Changing and Changed
>
> This affect Zeos 6.6.6, I presume is because Zeos try to read Params
> from the SQL.Text, every time a Change occurs
>
> I suggest a new InternalClear method, without calling Change/Changed
> that can be used in Destroy and Clear methods...
It was already done a week ago.
See http://bugs.freepascal.org/view.php?id=21529
Luiz
>
> Some thing like this:
>
> destructor TStringList.Destroy;
> Var I : Longint;
> begin
> FOnChange:=Nil;
> FOnChanging:=Nil;
> InternalClear;
> Inherited destroy;
> end;
>
> Procedure TStringList.Clear;
> Var I : longint;
> begin
> if FCount = 0 then Exit;
> Changing;
> InternalClear;
> Changed;
> end;
>
> Procedure TStringList.InternalClear; (Private)
> Var I : longint;
> begin
> if FCount = 0 then Exit;
>
> if FOwnsObjects then
> begin
> For I:=0 to FCount-1 do
> begin
> Flist^[I].FString:='';
> freeandnil(Flist^[i].FObject);
> end;
> end
> else
> begin
> For I:=0 to FCount-1 do
> Flist^[I].FString:='';
> end;
> FCount:=0;
> SetCapacity(0);
> end;
>
>
> []s Daniel
>
> Conheça o Projeto ACBr - Automaçao Comercial Brasil
> <http://acbr.sourceforge.net>
> DJSystem a Loja Patrocinadora do ACBr <http://www.djsystem.com.br>
>
>
> --
> _______________________________________________
> Lazarus mailing list
> Lazarus at lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
More information about the Lazarus
mailing list