diff options
Diffstat (limited to 'workflow.cpp')
| -rw-r--r-- | workflow.cpp | 30 |
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()); |
