From 6929abd77148b444186ddac732c2898f92698d44 Mon Sep 17 00:00:00 2001 From: Souryo Date: Fri, 24 Mar 2017 12:14:13 -0400 Subject: [PATCH] Debugger: Fixed stack overflow crash --- Core/Disassembler.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/Core/Disassembler.cpp b/Core/Disassembler.cpp index f84535f2..605c29fc 100644 --- a/Core/Disassembler.cpp +++ b/Core/Disassembler.cpp @@ -224,12 +224,14 @@ uint32_t Disassembler::BuildCache(AddressTypeInfo &info, uint16_t cpuAddress, bo uint8_t opCode = source[info.Address]; if(IsJump(opCode)) { uint16_t jumpDest = disInfo->GetOpAddr(cpuAddress); - AddressTypeInfo addressInfo; - _debugger->GetAbsoluteAddressAndType(jumpDest, &addressInfo); + if(jumpDest != cpuAddress) { + AddressTypeInfo addressInfo; + _debugger->GetAbsoluteAddressAndType(jumpDest, &addressInfo); - const uint8_t jsrCode = 0x20; - if(addressInfo.Address >= 0) { - BuildCache(addressInfo, jumpDest, opCode == jsrCode); + const uint8_t jsrCode = 0x20; + if(addressInfo.Address >= 0) { + BuildCache(addressInfo, jumpDest, opCode == jsrCode); + } } }