From e6496396f37f337f3a8422fdb66f261257d25b61 Mon Sep 17 00:00:00 2001 From: Brandon Miller Date: Mon, 19 May 2025 11:46:24 -0400 Subject: Implement function level metadata --- function.cpp | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'function.cpp') 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 value, bool isAuto) +{ + if (!value) + return; + BNFunctionStoreMetadata(m_object, key.c_str(), value->GetObject(), isAuto); +} + + +Ref Function::QueryMetadata(const std::string& key) +{ + BNMetadata* value = BNFunctionQueryMetadata(m_object, key.c_str()); + if (!value) + return nullptr; + return new Metadata(value); +} + + +Ref Function::GetMetadata() +{ + return new Metadata(BNFunctionGetMetadata(m_object)); +} + + +Ref 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) -- cgit v1.3.1