From fcfa33a14fc309984880b535b9f9b4fcfc316466 Mon Sep 17 00:00:00 2001 From: kat Date: Tue, 3 Jan 2023 14:29:32 -0500 Subject: Allow DataVariables to be added to Components --- component.cpp | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'component.cpp') diff --git a/component.cpp b/component.cpp index 88e7a20a..03be498a 100644 --- a/component.cpp +++ b/component.cpp @@ -71,6 +71,12 @@ bool Component::AddComponent(Ref component) } +bool Component::AddDataVariable(DataVariable dataVariable) +{ + return BNComponentAddDataVariable(m_object, dataVariable.address); +} + + bool Component::RemoveComponent(Ref component) { return BNComponentRemoveComponent(component->m_object); @@ -83,6 +89,12 @@ bool Component::RemoveFunction(Ref func) } +bool Component::RemoveDataVariable(DataVariable dataVariable) +{ + return BNComponentRemoveDataVariable(m_object, dataVariable.address); +} + + std::vector> Component::GetContainedComponents() { std::vector> components; @@ -123,6 +135,27 @@ std::vector> Component::GetContainedFunctions() } +std::vector Component::GetContainedDataVariables() +{ + vector result; + + size_t count; + BNDataVariable* variables = BNComponentGetContainedDataVariables(m_object, &count); + + result.reserve(count); + for (size_t i = 0; i < count; ++i) + { + result.emplace_back(variables[i].address, + Confidence(new Type(BNNewTypeReference(variables[i].type)), variables[i].typeConfidence), + variables[i].autoDiscovered); + } + + BNFreeDataVariables(variables, count); + return result; +} + + + std::vector> Component::GetReferencedTypes() { std::vector> types; -- cgit v1.3.1