mirror of https://gitlab.com/basile.b/dexed.git
prevent cases of superfluous indirections on `Items[i]`
This commit is contained in:
parent
c9fac84dab
commit
6750020d16
|
@ -903,7 +903,7 @@ begin
|
|||
end;
|
||||
{$ENDREGION --------------------------------------------------------------------}
|
||||
|
||||
{$REGION ICommonProject: sources ---------------------------------------------}
|
||||
{$REGION ICommonProject: sources -----------------------------------------------}
|
||||
function TDubProject.isSource(const fname: string): boolean;
|
||||
var
|
||||
str: string;
|
||||
|
|
|
@ -481,16 +481,20 @@ end;
|
|||
procedure TMessagesWidget.ListKeyDown(Sender: TObject; var Key: Word;
|
||||
Shift: TShiftState);
|
||||
var
|
||||
i: Integer;
|
||||
i: integer;
|
||||
n: TTreeNode;
|
||||
begin
|
||||
case Key of
|
||||
VK_BACK, VK_DELETE:
|
||||
begin
|
||||
if List.SelectionCount > 0 then
|
||||
begin
|
||||
for i := List.Items.Count-1 downto 0 do
|
||||
if List.Items[i].MultiSelected then
|
||||
List.Items.Delete(List.Items[i]);
|
||||
for i := List.Items.Count-1 downto 0 do
|
||||
begin
|
||||
n := List.Items[i];
|
||||
if n.MultiSelected then
|
||||
List.Items.Delete(n);
|
||||
end;
|
||||
end
|
||||
else clearbyContext(amcAll);
|
||||
end;
|
||||
|
@ -720,23 +724,31 @@ end;
|
|||
|
||||
procedure TMessagesWidget.actCopyMsgExecute(Sender: TObject);
|
||||
var
|
||||
i: Integer;
|
||||
str: string = '';
|
||||
i: integer;
|
||||
s: string = '';
|
||||
n: TTreeNode;
|
||||
begin
|
||||
for i := 0 to List.Items.Count-1 do
|
||||
if List.Items[i].MultiSelected then
|
||||
str += List.Items[i].Text + LineEnding;
|
||||
Clipboard.AsText := str;
|
||||
begin
|
||||
n := List.Items[i];
|
||||
if n.MultiSelected then
|
||||
s += n.Text + LineEnding;
|
||||
end;
|
||||
Clipboard.AsText := s;
|
||||
end;
|
||||
|
||||
procedure TMessagesWidget.actSelAllExecute(Sender: TObject);
|
||||
var
|
||||
i: Integer;
|
||||
i: integer;
|
||||
n: TTreeNode;
|
||||
begin
|
||||
List.BeginUpdate;
|
||||
for i := 0 to List.Items.Count-1 do
|
||||
if List.Items[i].Visible then
|
||||
List.Items[i].MultiSelected := true;
|
||||
begin
|
||||
n := List.Items[i];
|
||||
if n.Visible then
|
||||
n.MultiSelected := true;
|
||||
end;
|
||||
List.EndUpdate;
|
||||
end;
|
||||
|
||||
|
@ -933,8 +945,9 @@ end;
|
|||
|
||||
procedure TMessagesWidget.clearByContext(aCtxt: TAppMessageCtxt);
|
||||
var
|
||||
i: Integer;
|
||||
msgdt: PMessageData;
|
||||
i: integer;
|
||||
d: PMessageData;
|
||||
n: TTreeNode;
|
||||
begin
|
||||
list.BeginUpdate;
|
||||
TreeFilterEdit1.Filter := '';
|
||||
|
@ -942,17 +955,19 @@ begin
|
|||
List.Items.Clear
|
||||
else for i := List.Items.Count-1 downto 0 do
|
||||
begin
|
||||
msgdt := PMessageData(List.Items[i].Data);
|
||||
if msgdt^.ctxt = aCtxt then
|
||||
List.Items.Delete(List.Items[i]);
|
||||
n := List.Items[i];
|
||||
d := PMessageData(n.Data);
|
||||
if d^.ctxt = aCtxt then
|
||||
List.Items.Delete(n);
|
||||
end;
|
||||
list.EndUpdate;
|
||||
end;
|
||||
|
||||
procedure TMessagesWidget.clearByData(data: Pointer);
|
||||
var
|
||||
i: Integer;
|
||||
msgdt: PMessageData;
|
||||
i: integer;
|
||||
d: PMessageData;
|
||||
n: TTreeNode;
|
||||
begin
|
||||
if data.isNil then
|
||||
exit;
|
||||
|
@ -962,9 +977,10 @@ begin
|
|||
TreeFilterEdit1.Filter := '';
|
||||
for i := List.Items.Count-1 downto 0 do
|
||||
begin
|
||||
msgdt := PMessageData(List.Items[i].Data);
|
||||
if (msgdt^.data = data) then
|
||||
List.Items.Delete(List.Items[i]);
|
||||
n := List.Items[i];
|
||||
d := PMessageData(n.Data);
|
||||
if (d^.data = data) then
|
||||
List.Items.Delete(n);
|
||||
end;
|
||||
list.EndUpdate;
|
||||
end;
|
||||
|
|
|
@ -850,7 +850,8 @@ procedure TSymbolListWidget.toolTerminated(sender: TObject);
|
|||
|
||||
var
|
||||
i: Integer;
|
||||
flt: string;
|
||||
f: string;
|
||||
n: TTreeNode;
|
||||
begin
|
||||
if ndAlias.isNil then
|
||||
exit;
|
||||
|
@ -866,7 +867,7 @@ begin
|
|||
exit;
|
||||
fSyms.LoadFromTool(fToolProc.StdoutEx);
|
||||
|
||||
flt := TreeFilterEdit1.Filter;
|
||||
f := TreeFilterEdit1.Filter;
|
||||
TreeFilterEdit1.Text := '';
|
||||
tree.BeginUpdate;
|
||||
for i := 0 to fSyms.symbols.Count-1 do
|
||||
|
@ -880,18 +881,22 @@ begin
|
|||
end;
|
||||
if fSortSymbols then
|
||||
for i:= 0 to tree.Items.Count-1 do
|
||||
if Tree.Items[i].Count > 0 then
|
||||
tree.Items[i].CustomSort(nil);
|
||||
begin
|
||||
n := Tree.Items[i];
|
||||
if n.Count > 0 then
|
||||
n.CustomSort(nil);
|
||||
end;
|
||||
if fSmartExpander then
|
||||
smartExpand;
|
||||
tree.EndUpdate;
|
||||
if flt.isNotEmpty then
|
||||
TreeFilterEdit1.Text := flt;
|
||||
if f.isNotEmpty then
|
||||
TreeFilterEdit1.Text := f;
|
||||
end;
|
||||
|
||||
procedure TSymbolListWidget.smartExpand;
|
||||
var
|
||||
i: integer;
|
||||
n: TTreeNode;
|
||||
target: NativeUint;
|
||||
nearest: NativeUint = 0;
|
||||
toExpand: TTreeNode = nil;
|
||||
|
@ -903,23 +908,24 @@ var
|
|||
begin
|
||||
for i := 0 to root.Count-1 do
|
||||
begin
|
||||
if root.Items[i].Data.isNil then
|
||||
n := root.Items[i];
|
||||
if n.Data.isNil then
|
||||
continue;
|
||||
if root.Items[i].Parent.isNil then
|
||||
if n.Parent.isNil then
|
||||
continue;
|
||||
case root.Items[i].Parent.Text of
|
||||
case n.Parent.Text of
|
||||
'Alias', 'Enum', 'Import', 'Variable':
|
||||
continue;
|
||||
end;
|
||||
{$PUSH}{$WARNINGS OFF}{$HINTS OFF}
|
||||
line := NativeUInt(root.Items[i].Data);
|
||||
line := NativeUInt(n.Data);
|
||||
{$POP}
|
||||
if line > target then
|
||||
continue;
|
||||
if line > nearest then
|
||||
begin
|
||||
nearest := line;
|
||||
toExpand := root.Items[i];
|
||||
toExpand := n;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
|
|
@ -3056,11 +3056,13 @@ begin
|
|||
IncPaintLock;
|
||||
fDscannerResults.clear;
|
||||
for i:= Marks.Count-1 downto 0 do
|
||||
if marks.Items[i].ImageIndex = longint(giWarn) then
|
||||
begin
|
||||
n := marks.Items[i];
|
||||
marks.Delete(i);
|
||||
FreeAndNil(n);
|
||||
if n.ImageIndex = longint(giWarn) then
|
||||
begin
|
||||
marks.Delete(i);
|
||||
FreeAndNil(n);
|
||||
end;
|
||||
end;
|
||||
DecPaintLock;
|
||||
repaint;
|
||||
|
@ -3851,10 +3853,14 @@ end;
|
|||
procedure TDexedMemo.removeDebugTimeMarks;
|
||||
var
|
||||
i: integer;
|
||||
n: TSynEditMark;
|
||||
begin
|
||||
IncPaintLock;
|
||||
for i:= marks.Count-1 downto 0 do
|
||||
Marks.Items[i].Visible := not (TGutterIcon(Marks.Items[i].ImageIndex) in debugTimeGutterIcons);
|
||||
begin
|
||||
n := Marks.Items[i];
|
||||
n.Visible := not (TGutterIcon(n.ImageIndex) in debugTimeGutterIcons);
|
||||
end;
|
||||
DecPaintLock;
|
||||
end;
|
||||
|
||||
|
@ -3898,8 +3904,9 @@ begin
|
|||
if m.isNotNil then
|
||||
for i := 0 to m.Count-1 do
|
||||
begin
|
||||
s := m.Items[i].ImageIndex = longint(value);
|
||||
m.Items[i].Visible := s;
|
||||
n := m.Items[i];
|
||||
s := n.ImageIndex = longint(value);
|
||||
n.Visible := s;
|
||||
end;
|
||||
if not s then
|
||||
begin
|
||||
|
|
Loading…
Reference in New Issue