Debugger: Improved performance when refreshing a large list of labels (e.g 3+k)
This commit is contained in:
parent
da3cfdeeec
commit
9d870294d6
1 changed files with 10 additions and 8 deletions
|
@ -92,11 +92,11 @@ namespace Mesen.GUI.Debugger.Controls
|
||||||
|
|
||||||
public void UpdateLabelList()
|
public void UpdateLabelList()
|
||||||
{
|
{
|
||||||
lstLabels.BeginUpdate();
|
List<CodeLabel> labels = LabelManager.GetLabels();
|
||||||
lstLabels.Items.Clear();
|
List<ListViewItem> items = new List<ListViewItem>(labels.Count);
|
||||||
foreach(CodeLabel label in LabelManager.GetLabels()) {
|
foreach(CodeLabel label in labels) {
|
||||||
if(label.Label.Length > 0) {
|
if(label.Label.Length > 0) {
|
||||||
ListViewItem item = lstLabels.Items.Add(label.Label);
|
ListViewItem item = new ListViewItem(label.Label);
|
||||||
|
|
||||||
Int32 relativeAddress = InteropEmu.DebugGetRelativeAddress(label.Address, label.AddressType);
|
Int32 relativeAddress = InteropEmu.DebugGetRelativeAddress(label.Address, label.AddressType);
|
||||||
if(relativeAddress >= 0) {
|
if(relativeAddress >= 0) {
|
||||||
|
@ -119,15 +119,17 @@ namespace Mesen.GUI.Debugger.Controls
|
||||||
item.SubItems[1].Tag = label;
|
item.SubItems[1].Tag = label;
|
||||||
|
|
||||||
item.Tag = relativeAddress;
|
item.Tag = relativeAddress;
|
||||||
|
items.Add(item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
lstLabels.BeginUpdate();
|
||||||
|
lstLabels.Items.Clear();
|
||||||
|
lstLabels.Items.AddRange(items.ToArray());
|
||||||
lstLabels.Sort();
|
lstLabels.Sort();
|
||||||
lstLabels.EndUpdate();
|
lstLabels.EndUpdate();
|
||||||
|
|
||||||
_listItems = new List<ListViewItem>();
|
_listItems = items;
|
||||||
foreach(ListViewItem item in lstLabels.Items) {
|
|
||||||
_listItems.Add(item);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void lstLabels_DoubleClick(object sender, EventArgs e)
|
private void lstLabels_DoubleClick(object sender, EventArgs e)
|
||||||
|
|
Loading…
Add table
Reference in a new issue