From d63242e1bef49c29413a86908f7d4f52edcc990a Mon Sep 17 00:00:00 2001 From: mattias Date: Mon, 18 Feb 2013 19:27:47 +0000 Subject: [PATCH] codetools: TStringMap.GetNodeData git-svn-id: trunk@40346 - --- components/codetools/codetoolsstructs.pas | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/components/codetools/codetoolsstructs.pas b/components/codetools/codetoolsstructs.pas index 869ab6b427..2c44d47725 100644 --- a/components/codetools/codetoolsstructs.pas +++ b/components/codetools/codetoolsstructs.pas @@ -123,6 +123,7 @@ type procedure Remove(const Name: string); virtual; property CaseSensitive: boolean read FCaseSensitive; property Tree: TAVLTree read FTree; // tree of PStringMapItem + function GetNodeData(AVLNode: TAVLTreeNode): PStringMapItem; inline; function Count: integer; function FindNode(const s: string): TAVLTreeNode; function Equals(OtherTree: TStringMap): boolean; reintroduce; @@ -166,6 +167,7 @@ type function GetString(const Name: string; out Value: string): boolean; procedure Add(const Name, Value: string); virtual; property Strings[const s: string]: string read GetStrings write SetStrings; default; + function GetNodeData(AVLNode: TAVLTreeNode): PStringToStringTreeItem; inline; function AsText: string; procedure WriteDebugReport; override; function CalcMemSize: PtrUint; override; @@ -189,7 +191,7 @@ type property Current: PStringToPointerTreeItem read GetCurrent; end; - { TStringToPointerTree } + { TStringToPointerTree - Tree contains PStringToPointerTreeItem } TStringToPointerTree = class(TStringMap) private @@ -204,6 +206,7 @@ type function GetItem(const Name: string; out Value: Pointer): boolean; procedure Add(const Name: string; const Value: Pointer); virtual; property Items[const s: string]: Pointer read GetItems write SetItems; default; + function GetNodeData(AVLNode: TAVLTreeNode): PStringToPointerTreeItem; inline; procedure Assign(Source: TStringMap); override; function GetEnumerator: TStringToPointerTreeEnumerator; property FreeValues: boolean read FFreeValues write FFreeValues; @@ -560,6 +563,12 @@ begin Items[Name]:=Value; end; +function TStringToPointerTree.GetNodeData(AVLNode: TAVLTreeNode + ): PStringToPointerTreeItem; +begin + Result:=PStringToPointerTreeItem(AVLNode.Data); +end; + procedure TStringToPointerTree.Assign(Source: TStringMap); var Node: TAVLTreeNode; @@ -711,6 +720,11 @@ begin end; end; +function TStringMap.GetNodeData(AVLNode: TAVLTreeNode): PStringMapItem; +begin + Result:=PStringMapItem(AVLNode.Data); +end; + function TStringMap.Count: integer; begin Result:=Tree.Count; @@ -897,6 +911,12 @@ begin Strings[Name]:=Value; end; +function TStringToStringTree.GetNodeData(AVLNode: TAVLTreeNode + ): PStringToStringTreeItem; +begin + Result:=PStringToStringTreeItem(AVLNode.Data); +end; + function TStringToStringTree.AsText: string; var Node: TAVLTreeNode;