diff options
Diffstat (limited to 'Source/Core/Common/SymbolDB.cpp')
| -rw-r--r-- | Source/Core/Common/SymbolDB.cpp | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/Source/Core/Common/SymbolDB.cpp b/Source/Core/Common/SymbolDB.cpp index 9e91b64457..f558b54ebb 100644 --- a/Source/Core/Common/SymbolDB.cpp +++ b/Source/Core/Common/SymbolDB.cpp @@ -48,6 +48,40 @@ Symbol* SymbolDB::GetSymbolFromName(const std::string& name) return nullptr; } +std::vector<Symbol*> SymbolDB::GetSymbolsFromName(const std::string& name) +{ + std::vector<Symbol*> symbols; + + for (auto& func : functions) + { + if (func.second.function_name == name) + symbols.push_back(&func.second); + } + + return symbols; +} + +Symbol* SymbolDB::GetSymbolFromHash(u32 hash) +{ + XFuncPtrMap::iterator iter = checksumToFunction.find(hash); + if (iter != checksumToFunction.end()) + return *iter->second.begin(); + else + return nullptr; +} + +std::vector<Symbol*> SymbolDB::GetSymbolsFromHash(u32 hash) +{ + std::vector<Symbol*> symbols; + + for (const auto& iter : checksumToFunction) + if (iter.first == hash) + for (const auto& symbol : iter.second) + symbols.push_back(symbol); + + return symbols; +} + void SymbolDB::AddCompleteSymbol(const Symbol& symbol) { functions.emplace(symbol.address, symbol); |
