summaryrefslogtreecommitdiff
path: root/binaryview.cpp
diff options
context:
space:
mode:
authorPeter LaFosse <peter@vector35.com>2018-09-20 16:51:14 -0400
committerPeter LaFosse <peter@vector35.com>2018-09-20 16:51:14 -0400
commitf48203de0acafb1d981d56c79d0edff921102065 (patch)
tree04e3a94f4756fc4c00e64346ceec660bf25fa4b0 /binaryview.cpp
parent74a8547853dd66fe62d2e75b93c1b723eb6f69cf (diff)
Adding NameSpace tokens and plumbing through some namespce apis
Diffstat (limited to 'binaryview.cpp')
-rw-r--r--binaryview.cpp22
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;
}