summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMason Reed <mason@vector35.com>2025-02-17 13:34:29 -0500
committerMason Reed <mason@vector35.com>2025-02-17 21:22:18 -0500
commit620588cf56e7409d707250a3e69342d789bea0bc (patch)
tree50bb4ea501a729659e699b0513bf55cf59067c30
parentedcba9286268656ee3c5594051263c51c1011f39 (diff)
Add long Symbol constructor for no namespace allocation
This allows us to construct a symbol without constructing a namespace, while also giving us the ability to specify raw, long, short names
-rw-r--r--binaryninjaapi.h2
-rw-r--r--binaryview.cpp7
2 files changed, 9 insertions, 0 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h
index 78843a48..baa2c5fc 100644
--- a/binaryninjaapi.h
+++ b/binaryninjaapi.h
@@ -3934,6 +3934,8 @@ namespace BinaryNinja {
const NameSpace& nameSpace = NameSpace(DEFAULT_INTERNAL_NAMESPACE), uint64_t ordinal = 0);
Symbol(BNSymbolType type, const std::string& name, uint64_t addr, BNSymbolBinding binding = NoBinding,
const NameSpace& nameSpace = NameSpace(DEFAULT_INTERNAL_NAMESPACE), uint64_t ordinal = 0);
+ Symbol(BNSymbolType type, const std::string& shortName, const std::string& fullName, const std::string& rawName,
+ uint64_t addr, BNNameSpace* nameSpace, BNSymbolBinding binding = NoBinding, uint64_t ordinal = 0);
Symbol(BNSymbolType type, const std::string& name, uint64_t addr, BNNameSpace* nameSpace,
BNSymbolBinding binding = NoBinding, uint64_t ordinal = 0);
Symbol(BNSymbol* sym);
diff --git a/binaryview.cpp b/binaryview.cpp
index cb33d616..88c7c331 100644
--- a/binaryview.cpp
+++ b/binaryview.cpp
@@ -745,6 +745,13 @@ Symbol::Symbol(BNSymbolType type, const std::string& name, uint64_t addr, BNSymb
}
+Symbol::Symbol(BNSymbolType type, const string& shortName, const string& fullName, const string& rawName, uint64_t addr,
+ BNNameSpace* nameSpace, BNSymbolBinding binding, uint64_t ordinal)
+{
+ m_object = BNCreateSymbol(type, shortName.c_str(), fullName.c_str(), rawName.c_str(), addr, binding, nameSpace, ordinal);
+}
+
+
Symbol::Symbol(BNSymbolType type, const std::string& name, uint64_t addr, BNNameSpace* nameSpace, BNSymbolBinding binding, uint64_t ordinal)
{
m_object = BNCreateSymbol(type, name.c_str(), name.c_str(), name.c_str(), addr, binding, nameSpace, ordinal);