summaryrefslogtreecommitdiff
path: root/function.cpp
diff options
context:
space:
mode:
authorBrandon Miller <brandon@vector35.com>2025-05-19 11:46:24 -0400
committerBrandon Miller <brandon@vector35.com>2025-05-19 11:46:24 -0400
commite6496396f37f337f3a8422fdb66f261257d25b61 (patch)
tree9f18a999420103338bb6b7f284da1060e4fd01d9 /function.cpp
parent42886bea7384f0163c43bacc5afa7b9ffe6a589c (diff)
Implement function level metadata
Diffstat (limited to 'function.cpp')
-rw-r--r--function.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/function.cpp b/function.cpp
index 07f685a5..cc9a8e13 100644
--- a/function.cpp
+++ b/function.cpp
@@ -3369,6 +3369,42 @@ void Function::ExpandAll()
BNFunctionExpandAll(m_object);
}
+
+void Function::StoreMetadata(const std::string& key, Ref<Metadata> value, bool isAuto)
+{
+ if (!value)
+ return;
+ BNFunctionStoreMetadata(m_object, key.c_str(), value->GetObject(), isAuto);
+}
+
+
+Ref<Metadata> Function::QueryMetadata(const std::string& key)
+{
+ BNMetadata* value = BNFunctionQueryMetadata(m_object, key.c_str());
+ if (!value)
+ return nullptr;
+ return new Metadata(value);
+}
+
+
+Ref<Metadata> Function::GetMetadata()
+{
+ return new Metadata(BNFunctionGetMetadata(m_object));
+}
+
+
+Ref<Metadata> Function::GetAutoMetadata()
+{
+ return new Metadata(BNFunctionGetAutoMetadata(m_object));
+}
+
+
+void Function::RemoveMetadata(const std::string& key)
+{
+ BNFunctionRemoveMetadata(m_object, key.c_str());
+}
+
+
AdvancedFunctionAnalysisDataRequestor::AdvancedFunctionAnalysisDataRequestor(Function* func) : m_func(func)
{
if (m_func)