mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-18 02:29:19 +02:00
* Fix compilation after class tree changes
git-svn-id: trunk@47540 -
This commit is contained in:
parent
f1aca7f877
commit
0323f0b07d
@ -510,6 +510,46 @@ begin
|
|||||||
Writeln(StdErr,Format(SSkipMerge,[S.NodeName,D.NodeName]));
|
Writeln(StdErr,Format(SSkipMerge,[S.NodeName,D.NodeName]));
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Function MergeTrees (Dest : TXMLDocument; aRootNode : TPasElementNode) : Integer;
|
||||||
|
|
||||||
|
Var
|
||||||
|
aSrc : TXMLDocument;
|
||||||
|
|
||||||
|
Procedure AppendChildClasses(aParent : TDomElement; aNode : TPasElementNode);
|
||||||
|
|
||||||
|
Var
|
||||||
|
El : TDomElement;
|
||||||
|
aChild : TPasElementNode;
|
||||||
|
I : Integer;
|
||||||
|
M : TPasModule;
|
||||||
|
|
||||||
|
begin
|
||||||
|
If (ANode=Nil) or (aNode.ChildCount=0) then exit;
|
||||||
|
for I:=0 to aNode.ChildCount-1 do
|
||||||
|
begin
|
||||||
|
aChild:=aNode.Children[I];
|
||||||
|
El:=aSrc.CreateElement(UTF8Decode(aChild.Element.Name));
|
||||||
|
M:=aChild.Element.GetModule;
|
||||||
|
If M<>Nil then
|
||||||
|
EL['unit']:=UTF8Decode(M.Name);
|
||||||
|
aParent.AppendChild(El);
|
||||||
|
AppendChildClasses(El,aChild);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
begin
|
||||||
|
aSrc:=TXMLDocument.Create();
|
||||||
|
try
|
||||||
|
aSrc.AppendChild(aSrc.CreateElement('TObject'));
|
||||||
|
AppendChildClasses(aSrc.DocumentElement,aRootNode);
|
||||||
|
MergeTrees(Dest,aSrc);
|
||||||
|
finally
|
||||||
|
aSrc.Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Function AnalyseFiles(Const AOutputName : String; InputFiles,MergeFiles : TStrings; AObjectKind : TPasObjKind) : String;
|
Function AnalyseFiles(Const AOutputName : String; InputFiles,MergeFiles : TStrings; AObjectKind : TPasObjKind) : String;
|
||||||
|
|
||||||
|
|
||||||
@ -542,7 +582,7 @@ begin
|
|||||||
Try
|
Try
|
||||||
ParseSource(Engine,InputFiles[I],OSTarget,CPUTarget);
|
ParseSource(Engine,InputFiles[I],OSTarget,CPUTarget);
|
||||||
Engine.Ftree.BuildTree(Engine.FObjects);
|
Engine.Ftree.BuildTree(Engine.FObjects);
|
||||||
ACount:=ACount+MergeTrees(XML,Engine.FTree.ClassTree);
|
ACount:=ACount+MergeTrees(XML,Engine.FTree.RootNode);
|
||||||
Finally
|
Finally
|
||||||
FreeAndNil(Engine);
|
FreeAndNil(Engine);
|
||||||
end;
|
end;
|
||||||
|
Loading…
Reference in New Issue
Block a user