From 7006bdf444f2b9533bcc3aee2933ba7ff8e70d2e Mon Sep 17 00:00:00 2001 From: Peter LaFosse Date: Sun, 14 Oct 2018 21:37:09 -0400 Subject: Refactor to how symbols and namespaces work --- binaryview.cpp | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) (limited to 'binaryview.cpp') diff --git a/binaryview.cpp b/binaryview.cpp index 2dc7398a..cdeb0a9f 100644 --- a/binaryview.cpp +++ b/binaryview.cpp @@ -169,15 +169,20 @@ BinaryDataNotification::BinaryDataNotification() Symbol::Symbol(BNSymbolType type, const string& shortName, const string& fullName, const string& rawName, uint64_t addr, - BNSymbolBinding binding) + BNSymbolBinding binding, const NameSpace& nameSpace) { - m_object = BNCreateSymbol(type, shortName.c_str(), fullName.c_str(), rawName.c_str(), addr, binding); + BNNameSpace ns = nameSpace.GetAPIObject(); + m_object = BNCreateSymbol(type, shortName.c_str(), fullName.c_str(), rawName.c_str(), addr, binding, &ns); + NameSpace::FreeAPIObject(&ns); } -Symbol::Symbol(BNSymbolType type, const std::string& name, uint64_t addr, BNSymbolBinding binding) +Symbol::Symbol(BNSymbolType type, const std::string& name, uint64_t addr, BNSymbolBinding binding, const NameSpace& nameSpace) { - m_object = BNCreateSymbol(type, name.c_str(), name.c_str(), name.c_str(), addr, binding); + BNNameSpace ns = nameSpace.GetAPIObject(); + m_object = BNCreateSymbol(type, name.c_str(), name.c_str(), name.c_str(), addr, binding, &ns); + NameSpace::FreeAPIObject(&ns); + } @@ -1540,39 +1545,34 @@ vector> BinaryView::GetSymbolsOfType(BNSymbolType type, uint64_t sta } -void BinaryView::DefineAutoSymbol(Ref sym, const NameSpace& nameSpace) +void BinaryView::DefineAutoSymbol(Ref sym) { - BNNameSpace ns = nameSpace.GetAPIObject(); - BNDefineAutoSymbol(m_object, sym->GetObject(), &ns); + BNDefineAutoSymbol(m_object, sym->GetObject()); } -void BinaryView::DefineAutoSymbolAndVariableOrFunction(Ref platform, Ref sym, Ref type, const NameSpace& nameSpace) +void BinaryView::DefineAutoSymbolAndVariableOrFunction(Ref platform, Ref sym, Ref type) { - BNNameSpace ns = nameSpace.GetAPIObject(); BNDefineAutoSymbolAndVariableOrFunction(m_object, platform ? platform->GetObject() : nullptr, sym->GetObject(), - type ? type->GetObject() : nullptr, &ns); + type ? type->GetObject() : nullptr); } -void BinaryView::UndefineAutoSymbol(Ref sym, const NameSpace& nameSpace) +void BinaryView::UndefineAutoSymbol(Ref sym) { - BNNameSpace ns = nameSpace.GetAPIObject(); - BNUndefineAutoSymbol(m_object, sym->GetObject(), &ns); + BNUndefineAutoSymbol(m_object, sym->GetObject()); } -void BinaryView::DefineUserSymbol(Ref sym, const NameSpace& nameSpace) +void BinaryView::DefineUserSymbol(Ref sym) { - BNNameSpace ns = nameSpace.GetAPIObject(); - BNDefineUserSymbol(m_object, sym->GetObject(), &ns); + BNDefineUserSymbol(m_object, sym->GetObject()); } -void BinaryView::UndefineUserSymbol(Ref sym, const NameSpace& nameSpace) +void BinaryView::UndefineUserSymbol(Ref sym) { - BNNameSpace ns = nameSpace.GetAPIObject(); - BNUndefineUserSymbol(m_object, sym->GetObject(), &ns); + BNUndefineUserSymbol(m_object, sym->GetObject()); } @@ -2283,18 +2283,18 @@ set BinaryView::GetNameSpaces() const } -NameSpace BinaryView::GetInternalNameSpace() const +NameSpace BinaryView::GetInternalNameSpace() { - BNNameSpace ns = BNGetInternalNameSpace(m_object); + BNNameSpace ns = BNGetInternalNameSpace(); NameSpace nameSpace = NameSpace::FromAPIObject(&ns); BNFreeNameSpace(&ns); return nameSpace; } -NameSpace BinaryView::GetExternalNameSpace() const +NameSpace BinaryView::GetExternalNameSpace() { - BNNameSpace ns = BNGetExternalNameSpace(m_object); + BNNameSpace ns = BNGetExternalNameSpace(); NameSpace nameSpace = NameSpace::FromAPIObject(&ns); BNFreeNameSpace(&ns); return nameSpace; -- cgit v1.3.1