diff options
| author | Peter LaFosse <peter@vector35.com> | 2018-09-20 16:51:14 -0400 |
|---|---|---|
| committer | Peter LaFosse <peter@vector35.com> | 2018-09-20 16:51:14 -0400 |
| commit | f48203de0acafb1d981d56c79d0edff921102065 (patch) | |
| tree | 04e3a94f4756fc4c00e64346ceec660bf25fa4b0 /binaryview.cpp | |
| parent | 74a8547853dd66fe62d2e75b93c1b723eb6f69cf (diff) | |
Adding NameSpace tokens and plumbing through some namespce apis
Diffstat (limited to 'binaryview.cpp')
| -rw-r--r-- | binaryview.cpp | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/binaryview.cpp b/binaryview.cpp index e9e8b377..1540e049 100644 --- a/binaryview.cpp +++ b/binaryview.cpp @@ -192,6 +192,13 @@ BNSymbolType Symbol::GetType() const } +NameSpace Symbol::GetNameSpace() const +{ + BNNameSpace name = BNGetSymbolNameSpace(m_object); + return NameSpace::FromAPIObject(&name); +} + + string Symbol::GetShortName() const { char* name = BNGetSymbolShortName(m_object); @@ -1274,6 +1281,7 @@ vector<Ref<Function>> BinaryView::GetAnalysisFunctionList() result.push_back(new Function(BNNewFunctionReference(list[i]))); BNFreeFunctionList(list, count); + return result; } @@ -1515,9 +1523,19 @@ vector<Ref<Symbol>> BinaryView::GetSymbolsOfType(BNSymbolType type, uint64_t sta } -void BinaryView::DefineAutoSymbol(Ref<Symbol> sym) +void BinaryView::DefineAutoSymbol(Ref<Symbol> sym, const NameSpace& nameSpace) { - BNDefineAutoSymbol(m_object, sym->GetObject()); + BNNameSpace ns; + ns.join = BNAllocString(nameSpace.GetJoinString().c_str()); + ns.name = new char*[nameSpace.size()]; + for (size_t i = 0; i < nameSpace.size(); i++) + ns.name[i] = BNAllocString(nameSpace[i].c_str()); + ns.nameCount = nameSpace.size(); + BNDefineAutoSymbol(m_object, sym->GetObject(), &ns); + BNFreeString(ns.join); + for (size_t i = 0; i < nameSpace.size(); i++) + BNFreeString(ns.name[i]); + delete[] ns.name; } |
