diff --git a/src/Cafe/OS/RPL/rpl_symbol_storage.cpp b/src/Cafe/OS/RPL/rpl_symbol_storage.cpp index a309c450..21832399 100644 --- a/src/Cafe/OS/RPL/rpl_symbol_storage.cpp +++ b/src/Cafe/OS/RPL/rpl_symbol_storage.cpp @@ -84,7 +84,10 @@ RPLStoredSymbol* rplSymbolStorage_store(const char* libName, const char* symbolN RPLStoredSymbol* rplSymbolStorage_getByAddress(MPTR address) { std::unique_lock lck(rplSymbolStorage.m_symbolStorageMutex); - return rplSymbolStorage.map_symbolByAddress[address]; + auto it = rplSymbolStorage.map_symbolByAddress.find(address); + if (it == rplSymbolStorage.map_symbolByAddress.end()) + return nullptr; + return it->second; } RPLStoredSymbol* rplSymbolStorage_getByClosestAddress(MPTR address) @@ -93,7 +96,8 @@ RPLStoredSymbol* rplSymbolStorage_getByClosestAddress(MPTR address) std::unique_lock lck(rplSymbolStorage.m_symbolStorageMutex); for(uint32 i=0; i<4096; i++) { - RPLStoredSymbol* symbol = rplSymbolStorage.map_symbolByAddress[address]; + auto it = rplSymbolStorage.map_symbolByAddress.find(address); + RPLStoredSymbol* symbol = (it == rplSymbolStorage.map_symbolByAddress.end()) ? nullptr : it->second; if(symbol) return symbol; address -= 4;