summaryrefslogtreecommitdiff
path: root/workflow.cpp
diff options
context:
space:
mode:
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());