[Lazarus] TStringList.Destroy generate SIGSEGV with Zeos 6.6.6
zeljko
zeljko at holobit.net
Sat Mar 31 08:47:29 CEST 2012
On Friday 30 of March 2012 16:37:09 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...
No, just call Clear before destroying FSQL (afair) ...that's how I patched my
zeos copy and it works fine.
--- trunk/zeosdbo/src/component/ZAbstractRODataset.pas 2012/01/09 14:53:38
1368
+++ trunk/zeosdbo/src/component/ZAbstractRODataset.pas 2012/03/07 10:38:11 1385
@@ -531,7 +531,7 @@
except
end;
end;
-
+ FSQL.Clear;
FreeAndNil(FSQL);
FreeAndNil(FParams);
FreeAndNil(FCurrentRows);
zeljko
>
> 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
> DJSystem a Loja Patrocinadora do ACBr
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20120331/3b8c8a7c/attachment-0003.html>
More information about the Lazarus
mailing list