summaryrefslogtreecommitdiff
path: root/workflow.cpp
diff options
context:
space:
mode:
authorBrian Potchik <brian@vector35.com>2021-08-20 16:28:39 -0400
committerBrian Potchik <brian@vector35.com>2021-08-20 16:28:39 -0400
commit72d95afd2541fd8d463a853375f4f36993e7c099 (patch)
tree614bd36961a4f6d11e9e4744f1ac874eb3dcaa86 /workflow.cpp
parentcc1e85a4a8b2001f9fd6cf91b93fb39abef3a0e2 (diff)
Workflows basic blocks and IL function analysis setters.
Diffstat (limited to 'workflow.cpp')
-rw-r--r--workflow.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/workflow.cpp b/workflow.cpp
index 63137ebc..70cd1ced 100644
--- a/workflow.cpp
+++ b/workflow.cpp
@@ -48,12 +48,42 @@ Ref<MediumLevelILFunction> AnalysisContext::GetMediumLevelILFunction()
}
+void AnalysisContext::SetBasicBlockList(vector<Ref<BasicBlock>> basicBlocks)
+{
+ BNBasicBlock** blocks = new BNBasicBlock*[basicBlocks.size()];
+ size_t i = 0;
+ for (auto& j : basicBlocks)
+ blocks[i++] = j->GetObject();
+
+ BNSetBasicBlockList(m_object, blocks, basicBlocks.size());
+ delete[] blocks;
+}
+
+
+void AnalysisContext::SetLiftedILFunction(Ref<LowLevelILFunction> liftedIL)
+{
+ BNSetLiftedILFunction(m_object, liftedIL->m_object);
+}
+
+
void AnalysisContext::SetLowLevelILFunction(Ref<LowLevelILFunction> lowLevelIL)
{
BNSetLowLevelILFunction(m_object, lowLevelIL->m_object);
}
+void AnalysisContext::SetMediumLevelILFunction(Ref<MediumLevelILFunction> mediumLevelIL)
+{
+ BNSetMediumLevelILFunction(m_object, mediumLevelIL->m_object);
+}
+
+
+void AnalysisContext::SetHighLevelILFunction(Ref<HighLevelILFunction> highLevelIL)
+{
+ BNSetHighLevelILFunction(m_object, highLevelIL->m_object);
+}
+
+
bool AnalysisContext::Inform(const string& request)
{
return BNAnalysisContextInform(m_object, request.c_str());