Debugger: Fixed crash when repeatedly pressing step (or run single frame) buttons
This commit is contained in:
parent
7a313572a5
commit
6d9dc99814
2 changed files with 9 additions and 6 deletions
|
@ -332,6 +332,7 @@ void Debugger::Run()
|
|||
|
||||
void Debugger::Step(CpuType cpuType, int32_t stepCount, StepType type)
|
||||
{
|
||||
DebugBreakHelper helper(this);
|
||||
StepRequest step;
|
||||
IDebugger *debugger = nullptr;
|
||||
|
||||
|
|
|
@ -91,11 +91,12 @@ bool ShortcutKeyHandler::DetectKeyRelease(EmulatorShortcut shortcut)
|
|||
|
||||
void ShortcutKeyHandler::ProcessRunSingleFrame()
|
||||
{
|
||||
shared_ptr<EmuSettings> settings = _console->GetSettings();
|
||||
if(!_runSingleFrameRepeatTimer) {
|
||||
_runSingleFrameRepeatTimer.reset(new Timer());
|
||||
shared_ptr<Timer> timer = _runSingleFrameRepeatTimer;
|
||||
if(!timer) {
|
||||
timer.reset(new Timer());
|
||||
_runSingleFrameRepeatTimer = timer;
|
||||
}
|
||||
_runSingleFrameRepeatTimer->Reset();
|
||||
timer->Reset();
|
||||
|
||||
_console->PauseOnNextFrame();
|
||||
}
|
||||
|
@ -223,8 +224,9 @@ void ShortcutKeyHandler::ProcessKeys()
|
|||
_lastPressedKeys = _pressedKeys;
|
||||
}
|
||||
|
||||
if(_runSingleFrameRepeatTimer) {
|
||||
double elapsedMs = _runSingleFrameRepeatTimer->GetElapsedMS();
|
||||
shared_ptr<Timer> timer = _runSingleFrameRepeatTimer;
|
||||
if(timer) {
|
||||
double elapsedMs = timer->GetElapsedMS();
|
||||
if((_repeatStarted && elapsedMs >= 50) || (!_repeatStarted && elapsedMs >= 500)) {
|
||||
//Over 500ms has elapsed since the key was first pressed, or over 50ms since repeat mode started (20fps)
|
||||
//In this case, run another frame and pause again.
|
||||
|
|
Loading…
Add table
Reference in a new issue