From 307bb8ca6500a912ab7e48590cc4567e6b1cad72 Mon Sep 17 00:00:00 2001 From: Ansgar Becker Date: Thu, 14 Jan 2010 18:23:17 +0000 Subject: [PATCH] Fix sporadic AV which seems to follow after a reconnect with no db selected. --- source/mysql_connection.pas | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/source/mysql_connection.pas b/source/mysql_connection.pas index 6fec2864..2cdf4fd2 100644 --- a/source/mysql_connection.pas +++ b/source/mysql_connection.pas @@ -914,7 +914,7 @@ begin end else begin for i:=0 to FDBObjectLists.Count-1 do TDBObjectList(FDBObjectLists.Objects[i]).Free; - FreeAndNil(FDBObjectLists); + FDBObjectLists.Clear; end; end; @@ -938,8 +938,6 @@ begin if DbObjectsCached(db) then Result := FDBObjectLists.Objects[FDBObjectLists.IndexOf(db)] as TDBObjectList else begin - if not Assigned(FDBObjectLists) then - FDBObjectLists := TWideStringList.Create; Result := TDBObjectList.Create; Results := nil; rx := TRegExpr.Create; @@ -1126,6 +1124,9 @@ begin FreeAndNil(Results); end; + // Add list of objects in this database to cached list of all databases + if not Assigned(FDBObjectLists) then + FDBObjectLists := TWideStringList.Create; FDBObjectLists.AddObject(db, Result); end; end;