codetools: fixed endless loop, bug #17013

git-svn-id: trunk@26787 -
This commit is contained in:
mattias 2010-07-22 22:51:58 +00:00
parent 78bb6e3501
commit bbb27946d7

View File

@ -5012,12 +5012,16 @@ end;
function TPascalParserTool.BuildSubTreeAndFindDeepestNodeAtPos(
StartNode: TCodeTreeNode; P: integer; ExceptionOnNotFound: boolean
): TCodeTreeNode;
var
Node: TCodeTreeNode;
begin
Result:=FindDeepestNodeAtPos(StartNode,P,ExceptionOnNotFound);
//debugln('TPascalParserTool.BuildSubTreeAndFindDeepestNodeAtPos A ',Result.DescAsString,' ',dbgs(NodeNeedsBuildSubTree(Result)));
while NodeNeedsBuildSubTree(Result) do begin
BuildSubTree(Result);
Result:=FindDeepestNodeAtPos(Result,P,ExceptionOnNotFound);
Node:=FindDeepestNodeAtPos(Result,P,ExceptionOnNotFound);
if Node=Result then exit;
Result:=Node;
//debugln('TPascalParserTool.BuildSubTreeAndFindDeepestNodeAtPos B ',Result.DescAsString,' ',dbgs(NodeNeedsBuildSubTree(Result)));
end;
end;