From d778b8a82055f7f7a93cceabfd9367e63401a4df Mon Sep 17 00:00:00 2001 From: Sepalani Date: Tue, 4 Oct 2016 17:33:25 +0100 Subject: SymbolDB: GetSymbolsFromName added --- Source/Core/Common/SymbolDB.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'Source/Core/Common/SymbolDB.cpp') diff --git a/Source/Core/Common/SymbolDB.cpp b/Source/Core/Common/SymbolDB.cpp index 9e91b64457..564ac55eb3 100644 --- a/Source/Core/Common/SymbolDB.cpp +++ b/Source/Core/Common/SymbolDB.cpp @@ -48,6 +48,19 @@ Symbol* SymbolDB::GetSymbolFromName(const std::string& name) return nullptr; } +std::vector SymbolDB::GetSymbolsFromName(const std::string& name) +{ + std::vector symbols; + + for (auto& func : functions) + { + if (func.second.function_name == name) + symbols.push_back(&func.second); + } + + return symbols; +} + void SymbolDB::AddCompleteSymbol(const Symbol& symbol) { functions.emplace(symbol.address, symbol); -- cgit v1.2.3 From 7e974f10644101fbcacdd1131bd3af8395f2505d Mon Sep 17 00:00:00 2001 From: Sepalani Date: Wed, 5 Oct 2016 15:51:12 +0100 Subject: SymbolDB: GetSymbolsFromHash added --- Source/Core/Common/SymbolDB.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'Source/Core/Common/SymbolDB.cpp') diff --git a/Source/Core/Common/SymbolDB.cpp b/Source/Core/Common/SymbolDB.cpp index 564ac55eb3..b4c64b4d91 100644 --- a/Source/Core/Common/SymbolDB.cpp +++ b/Source/Core/Common/SymbolDB.cpp @@ -61,6 +61,26 @@ std::vector SymbolDB::GetSymbolsFromName(const std::string& name) return symbols; } +Symbol* SymbolDB::GetSymbolFromHash(u32 hash) +{ + XFuncPtrMap::iterator iter = checksumToFunction.find(hash); + if (iter != checksumToFunction.end()) + return iter->second; + else + return nullptr; +} + +std::vector SymbolDB::GetSymbolsFromHash(u32 hash) +{ + std::vector symbols; + + for (const auto& iter : checksumToFunction) + if (iter.first == hash) + symbols.push_back(iter.second); + + return symbols; +} + void SymbolDB::AddCompleteSymbol(const Symbol& symbol) { functions.emplace(symbol.address, symbol); -- cgit v1.2.3 From 8d812db9ad31c7104760612375e43e2fe79428ca Mon Sep 17 00:00:00 2001 From: Sepalani Date: Mon, 10 Oct 2016 23:35:33 +0100 Subject: SymbolDB: Use set to map hash with symbols --- Source/Core/Common/SymbolDB.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'Source/Core/Common/SymbolDB.cpp') diff --git a/Source/Core/Common/SymbolDB.cpp b/Source/Core/Common/SymbolDB.cpp index b4c64b4d91..f558b54ebb 100644 --- a/Source/Core/Common/SymbolDB.cpp +++ b/Source/Core/Common/SymbolDB.cpp @@ -65,7 +65,7 @@ Symbol* SymbolDB::GetSymbolFromHash(u32 hash) { XFuncPtrMap::iterator iter = checksumToFunction.find(hash); if (iter != checksumToFunction.end()) - return iter->second; + return *iter->second.begin(); else return nullptr; } @@ -76,7 +76,8 @@ std::vector SymbolDB::GetSymbolsFromHash(u32 hash) for (const auto& iter : checksumToFunction) if (iter.first == hash) - symbols.push_back(iter.second); + for (const auto& symbol : iter.second) + symbols.push_back(symbol); return symbols; } -- cgit v1.2.3