use of iterate after erase
This commit is contained in:
parent
8b899a65d3
commit
2d7f202530
1 changed files with 5 additions and 3 deletions
8
cpu.cpp
8
cpu.cpp
|
@ -258,13 +258,15 @@ bool cpu::check_queued_interrupts()
|
|||
auto interrupts = queued_interrupts.find(i);
|
||||
|
||||
if (interrupts->second.empty() == false) {
|
||||
auto vector = interrupts->second.begin();
|
||||
auto vector = interrupts->second.begin();
|
||||
|
||||
uint8_t v = *vector;
|
||||
|
||||
interrupts->second.erase(vector);
|
||||
|
||||
D(fprintf(stderr, "Invoking interrupt vector %o (IPL %d, current: %d)\n", *vector, i, current_level);)
|
||||
D(fprintf(stderr, "Invoking interrupt vector %o (IPL %d, current: %d)\n", v, i, current_level);)
|
||||
|
||||
trap(*vector, i);
|
||||
trap(v, i);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue