@@ -1074,20 +1074,20 @@ bool MainWindow::breakAdd(const QString &label, uint32_t addr, bool enabled, boo
10741074 btnEnable->setCheckable (true );
10751075 btnEnable->setChecked (enabled);
10761076
1077+ QTableWidgetItem *itemLabel = new QTableWidgetItem (label);
1078+ QTableWidgetItem *itemAddr = new QTableWidgetItem (addrStr);
1079+ QTableWidgetItem *itemBreak = new QTableWidgetItem;
1080+ QTableWidgetItem *itemRemove = new QTableWidgetItem;
1081+
10771082 connect (btnRemove, &QToolButton::clicked, this , &MainWindow::breakRemoveSelected);
1078- connect (btnEnable, &QToolButton::clicked, [this , btnEnable, row ](bool checked) {
1079- uint32_t addr = static_cast <uint32_t >(hex2int (m_breakpoints-> item (row, BREAK_ADDR_COL) ->text ()));
1083+ connect (btnEnable, &QToolButton::clicked, [this , btnEnable, itemAddr ](bool checked) {
1084+ uint32_t addr = static_cast <uint32_t >(hex2int (itemAddr ->text ()));
10801085 btnEnable->setIcon (checked ? m_iconCheck : m_iconCheckGray);
10811086 debug_watch (addr, DBG_MASK_EXEC, checked);
10821087 disasmUpdate ();
10831088 memUpdate ();
10841089 });
10851090
1086- QTableWidgetItem *itemLabel = new QTableWidgetItem (label);
1087- QTableWidgetItem *itemAddr = new QTableWidgetItem (addrStr);
1088- QTableWidgetItem *itemBreak = new QTableWidgetItem;
1089- QTableWidgetItem *itemRemove = new QTableWidgetItem;
1090-
10911091 m_breakpoints->setItem (row, BREAK_NAME_COL, itemLabel);
10921092 m_breakpoints->setItem (row, BREAK_ADDR_COL, itemAddr);
10931093 m_breakpoints->setItem (row, BREAK_ENABLE_COL, itemBreak);
@@ -1463,13 +1463,12 @@ void MainWindow::watchUpdate() {
14631463 }
14641464}
14651465
1466- void MainWindow::watchUpdateRow (int row ) {
1466+ void MainWindow::watchUpdateRow (QTableWidgetItem *itemLow, QTableWidgetItem *itemHigh ) {
14671467
14681468 // this is needed in the case of overlapping address spaces
1469- if (m_watchpoints->item (row, WATCH_LOW_COL)->text () != DEBUG_UNSET_ADDR &&
1470- m_watchpoints->item (row, WATCH_HIGH_COL)->text () != DEBUG_UNSET_ADDR) {
1471- uint32_t low = static_cast <uint32_t >(hex2int (m_watchpoints->item (row, WATCH_LOW_COL)->text ()));
1472- uint32_t high = static_cast <uint32_t >(hex2int (m_watchpoints->item (row, WATCH_HIGH_COL)->text ()));
1469+ if (itemLow->text () != DEBUG_UNSET_ADDR && itemHigh->text () != DEBUG_UNSET_ADDR) {
1470+ uint32_t low = static_cast <uint32_t >(hex2int (itemLow->text ()));
1471+ uint32_t high = static_cast <uint32_t >(hex2int (itemHigh->text ()));
14731472
14741473 for (uint32_t addr = low; addr <= high; addr++) {
14751474 debug_watch (addr, DBG_MASK_READ | DBG_MASK_WRITE, false );
@@ -1534,13 +1533,13 @@ bool MainWindow::watchAdd(const QString& label, uint32_t low, uint32_t high, int
15341533 btnWrite->setCheckable (true );
15351534 btnWrite->setChecked ((mask & DBG_MASK_WRITE) ? true : false );
15361535
1537- connect (btnRead, &QToolButton::clicked, [this , btnRead, row ](bool checked) {
1536+ connect (btnRead, &QToolButton::clicked, [this , btnRead, itemLow, itemHigh ](bool checked) {
15381537 btnRead->setIcon (checked ? m_iconCheck : m_iconCheckGray);
1539- watchUpdateRow (row );
1538+ watchUpdateRow (itemLow, itemHigh );
15401539 });
1541- connect (btnWrite, &QToolButton::clicked, [this , btnWrite, row ](bool checked) {
1540+ connect (btnWrite, &QToolButton::clicked, [this , btnWrite, itemLow, itemHigh ](bool checked) {
15421541 btnWrite->setIcon (checked ? m_iconCheck : m_iconCheckGray);
1543- watchUpdateRow (row );
1542+ watchUpdateRow (itemLow, itemHigh );
15441543 });
15451544
15461545 m_watchpoints->setRowCount (row + 1 );
0 commit comments