mirror of https://gitlab.com/basile.b/dexed.git
symlist: does not allocate for each node xtra data
- this happens a lot - directly use data as an integer
This commit is contained in:
parent
bf115d9594
commit
9e039477fc
|
@ -33,7 +33,6 @@ inherited CESymbolListWidget: TCESymbolListWidget
|
||||||
SelectionColor = clActiveBorder
|
SelectionColor = clActiveBorder
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
OnCompare = TreeCompare
|
OnCompare = TreeCompare
|
||||||
OnDeletion = TreeDeletion
|
|
||||||
OnKeyPress = TreeKeyPress
|
OnKeyPress = TreeKeyPress
|
||||||
Options = [tvoAutoItemHeight, tvoKeepCollapsedNodes, tvoReadOnly, tvoRightClickSelect, tvoShowButtons, tvoShowLines, tvoShowRoot, tvoToolTips, tvoThemedDraw]
|
Options = [tvoAutoItemHeight, tvoKeepCollapsedNodes, tvoReadOnly, tvoRightClickSelect, tvoShowButtons, tvoShowLines, tvoShowRoot, tvoToolTips, tvoThemedDraw]
|
||||||
Items.Data = {
|
Items.Data = {
|
||||||
|
|
|
@ -107,7 +107,6 @@ type
|
||||||
TreeFilterEdit1: TTreeFilterEdit;
|
TreeFilterEdit1: TTreeFilterEdit;
|
||||||
procedure btnRefreshClick(Sender: TObject);
|
procedure btnRefreshClick(Sender: TObject);
|
||||||
procedure TreeCompare(Sender: TObject; Node1, Node2: TTreeNode; var Compare: Integer);
|
procedure TreeCompare(Sender: TObject; Node1, Node2: TTreeNode; var Compare: Integer);
|
||||||
procedure TreeDeletion(Sender: TObject; Node: TTreeNode);
|
|
||||||
procedure TreeFilterEdit1AfterFilter(Sender: TObject);
|
procedure TreeFilterEdit1AfterFilter(Sender: TObject);
|
||||||
function TreeFilterEdit1FilterItem(Item: TObject; out Done: Boolean): Boolean;
|
function TreeFilterEdit1FilterItem(Item: TObject; out Done: Boolean): Boolean;
|
||||||
procedure TreeFilterEdit1MouseEnter(Sender: TObject);
|
procedure TreeFilterEdit1MouseEnter(Sender: TObject);
|
||||||
|
@ -538,12 +537,6 @@ begin
|
||||||
callToolProc;
|
callToolProc;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCESymbolListWidget.TreeDeletion(Sender: TObject; Node: TTreeNode);
|
|
||||||
begin
|
|
||||||
if (node.Data <> nil) then
|
|
||||||
Dispose(PNativeUint(node.Data));
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TCESymbolListWidget.btnRefreshClick(Sender: TObject);
|
procedure TCESymbolListWidget.btnRefreshClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
fActRefresh.Execute;
|
fActRefresh.Execute;
|
||||||
|
@ -646,7 +639,9 @@ begin
|
||||||
if Tree.Selected = nil then exit;
|
if Tree.Selected = nil then exit;
|
||||||
if Tree.Selected.Data = nil then exit;
|
if Tree.Selected.Data = nil then exit;
|
||||||
//
|
//
|
||||||
line := PNativeUInt(Tree.Selected.Data)^;
|
{$HINTS OFF}
|
||||||
|
line := NativeUInt(Tree.Selected.Data);
|
||||||
|
{$HINTS ON}
|
||||||
fDoc.CaretY := line;
|
fDoc.CaretY := line;
|
||||||
fDoc.SelectLine;
|
fDoc.SelectLine;
|
||||||
end;
|
end;
|
||||||
|
@ -734,15 +729,14 @@ end;
|
||||||
//
|
//
|
||||||
procedure symbolToTreeNode(origin: TTreenode; sym: TSymbol);
|
procedure symbolToTreeNode(origin: TTreenode; sym: TSymbol);
|
||||||
var
|
var
|
||||||
data: PNativeUint;
|
|
||||||
cat: TTreeNode;
|
cat: TTreeNode;
|
||||||
node: TTreeNode;
|
node: TTreeNode;
|
||||||
i: Integer;
|
i: Integer;
|
||||||
begin
|
begin
|
||||||
cat := getCatNode(origin, sym.symType);
|
cat := getCatNode(origin, sym.symType);
|
||||||
data := new(PNativeUint);
|
{$HINTS OFF}
|
||||||
data^ := sym.fline;
|
node := tree.Items.AddChildObject(cat, sym.name, Pointer(sym.fline));
|
||||||
node := tree.Items.AddChildObject(cat, sym.name, data);
|
{$HINTS ON}
|
||||||
if not fShowChildCategories then node := nil;
|
if not fShowChildCategories then node := nil;
|
||||||
cat.Visible:=true;
|
cat.Visible:=true;
|
||||||
for i := 0 to sym.subs.Count-1 do
|
for i := 0 to sym.subs.Count-1 do
|
||||||
|
|
Loading…
Reference in New Issue