From 9f9965c41025d836fa81958cf386f93d1494c83a Mon Sep 17 00:00:00 2001 From: juha Date: Thu, 3 May 2018 12:04:38 +0000 Subject: [PATCH] IdeIntf: Prevent error "LookupRoot does not match" in ComponentTreeView. Issue #33677. git-svn-id: trunk@57776 - --- components/ideintf/componenttreeview.pas | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/components/ideintf/componenttreeview.pas b/components/ideintf/componenttreeview.pas index bee4f60f74..1ae76c49e3 100644 --- a/components/ideintf/componenttreeview.pas +++ b/components/ideintf/componenttreeview.pas @@ -177,16 +177,18 @@ procedure TComponentWalker.AddOwnedPersistent(APers: TPersistent; APropName: String; AParentNode: TTreeNode); var TVNode: TTreeNode; + TheRoot: TPersistent; begin if (APers is TComponent) and (csDestroying in TComponent(APers).ComponentState) then Exit; - Assert(GetLookupRootForComponent(APers) = FLookupRoot, - 'TComponentWalker.AddOwnedPersistent: LookupRoot does not match.'); - if PersistentFoundInNode(APers) then Exit; + TheRoot := GetLookupRootForComponent(APers); {$IFDEF VerboseComponentTVWalker} - DebugLn(['TComponentWalker.AddOwnedPersistent Persistent=',DbgSName(APers), - ' PropName=',APropName,' FLookupRoot=',DbgSName(FLookupRoot)]); + DebugLn(['TComponentWalker.AddOwnedPersistent'+ + ' PropName=',APropName,' Persistent=',DbgSName(APers), + ' its root=',DbgSName(TheRoot),' FLookupRoot=',DbgSName(FLookupRoot)]); {$ENDIF} + if TheRoot <> FLookupRoot then Exit; + if PersistentFoundInNode(APers) then Exit; TVNode := FComponentTV.Items.AddChild(AParentNode, FComponentTV.CreateNodeCaption(APers, APropName)); TVNode.Data := APers;