diff options
| author | Peter LaFosse <peter@vector35.com> | 2018-10-14 21:37:09 -0400 |
|---|---|---|
| committer | Peter LaFosse <peter@vector35.com> | 2018-10-15 23:18:23 -0400 |
| commit | 7006bdf444f2b9533bcc3aee2933ba7ff8e70d2e (patch) | |
| tree | d4af914aa4b4ebad400106a278a7ed6791a66ff4 /binaryview.cpp | |
| parent | 50b3ff664665a6186d6d82364a0845d544ec8fac (diff) | |
Refactor to how symbols and namespaces work
Diffstat (limited to 'binaryview.cpp')
| -rw-r--r-- | binaryview.cpp | 46 |
1 files changed, 23 insertions, 23 deletions
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<Ref<Symbol>> BinaryView::GetSymbolsOfType(BNSymbolType type, uint64_t sta } -void BinaryView::DefineAutoSymbol(Ref<Symbol> sym, const NameSpace& nameSpace) +void BinaryView::DefineAutoSymbol(Ref<Symbol> sym) { - BNNameSpace ns = nameSpace.GetAPIObject(); - BNDefineAutoSymbol(m_object, sym->GetObject(), &ns); + BNDefineAutoSymbol(m_object, sym->GetObject()); } -void BinaryView::DefineAutoSymbolAndVariableOrFunction(Ref<Platform> platform, Ref<Symbol> sym, Ref<Type> type, const NameSpace& nameSpace) +void BinaryView::DefineAutoSymbolAndVariableOrFunction(Ref<Platform> platform, Ref<Symbol> sym, Ref<Type> 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<Symbol> sym, const NameSpace& nameSpace) +void BinaryView::UndefineAutoSymbol(Ref<Symbol> sym) { - BNNameSpace ns = nameSpace.GetAPIObject(); - BNUndefineAutoSymbol(m_object, sym->GetObject(), &ns); + BNUndefineAutoSymbol(m_object, sym->GetObject()); } -void BinaryView::DefineUserSymbol(Ref<Symbol> sym, const NameSpace& nameSpace) +void BinaryView::DefineUserSymbol(Ref<Symbol> sym) { - BNNameSpace ns = nameSpace.GetAPIObject(); - BNDefineUserSymbol(m_object, sym->GetObject(), &ns); + BNDefineUserSymbol(m_object, sym->GetObject()); } -void BinaryView::UndefineUserSymbol(Ref<Symbol> sym, const NameSpace& nameSpace) +void BinaryView::UndefineUserSymbol(Ref<Symbol> sym) { - BNNameSpace ns = nameSpace.GetAPIObject(); - BNUndefineUserSymbol(m_object, sym->GetObject(), &ns); + BNUndefineUserSymbol(m_object, sym->GetObject()); } @@ -2283,18 +2283,18 @@ set<NameSpace> 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; |
