mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-12 22:40:15 +02:00
Codetools: Check for nil SrcTree in TUnitDictionary.ParseUnit. Can happen with invalid code.
git-svn-id: trunk@37667 -
This commit is contained in:
parent
7093e49073
commit
2028f4a305
@ -1087,8 +1087,7 @@ begin
|
|||||||
IncreaseChangeStamp;
|
IncreaseChangeStamp;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TUnitDictionary.ParseUnit(UnitFilename: string; Group: TUDUnitGroup
|
function TUnitDictionary.ParseUnit(UnitFilename: string; Group: TUDUnitGroup): TUDUnit;
|
||||||
): TUDUnit;
|
|
||||||
var
|
var
|
||||||
Code: TCodeBuffer;
|
Code: TCodeBuffer;
|
||||||
begin
|
begin
|
||||||
@ -1101,8 +1100,7 @@ begin
|
|||||||
Result:=ParseUnit(Code,Group);
|
Result:=ParseUnit(Code,Group);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TUnitDictionary.ParseUnit(Code: TCodeBuffer; Group: TUDUnitGroup
|
function TUnitDictionary.ParseUnit(Code: TCodeBuffer; Group: TUDUnitGroup): TUDUnit;
|
||||||
): TUDUnit;
|
|
||||||
begin
|
begin
|
||||||
Result:=nil;
|
Result:=nil;
|
||||||
if Code=nil then exit;
|
if Code=nil then exit;
|
||||||
@ -1111,8 +1109,7 @@ begin
|
|||||||
Result:=ParseUnit(CodeToolBoss.CurCodeTool,Group);
|
Result:=ParseUnit(CodeToolBoss.CurCodeTool,Group);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TUnitDictionary.ParseUnit(Tool: TCodeTool; Group: TUDUnitGroup
|
function TUnitDictionary.ParseUnit(Tool: TCodeTool; Group: TUDUnitGroup): TUDUnit;
|
||||||
): TUDUnit;
|
|
||||||
var
|
var
|
||||||
SrcTree: TAVLTree;
|
SrcTree: TAVLTree;
|
||||||
AVLNode: TAVLTreeNode;
|
AVLNode: TAVLTreeNode;
|
||||||
@ -1163,6 +1160,7 @@ begin
|
|||||||
// update list of identifiers
|
// update list of identifiers
|
||||||
Changed:=false;
|
Changed:=false;
|
||||||
SrcTree:=Tool.InterfaceIdentifierCache.Items;
|
SrcTree:=Tool.InterfaceIdentifierCache.Items;
|
||||||
|
if SrcTree<>nil then begin
|
||||||
AVLNode:=SrcTree.FindLowest;
|
AVLNode:=SrcTree.FindLowest;
|
||||||
PrevItem:=nil;
|
PrevItem:=nil;
|
||||||
CurItem:=Result.FirstIdentifier;
|
CurItem:=Result.FirstIdentifier;
|
||||||
@ -1216,13 +1214,13 @@ begin
|
|||||||
end;
|
end;
|
||||||
AVLNode:=SrcTree.FindSuccessor(AVLNode);
|
AVLNode:=SrcTree.FindSuccessor(AVLNode);
|
||||||
end;
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
if Changed then
|
if Changed then
|
||||||
IncreaseChangeStamp;
|
IncreaseChangeStamp;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TUnitDictionary.FindUnitWithFilename(const aFilename: string
|
function TUnitDictionary.FindUnitWithFilename(const aFilename: string): TUDUnit;
|
||||||
): TUDUnit;
|
|
||||||
var
|
var
|
||||||
AVLNode: TAVLTreeNode;
|
AVLNode: TAVLTreeNode;
|
||||||
begin
|
begin
|
||||||
|
Loading…
Reference in New Issue
Block a user