summaryrefslogtreecommitdiff
path: root/function.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'function.cpp')
-rw-r--r--function.cpp22
1 files changed, 21 insertions, 1 deletions
diff --git a/function.cpp b/function.cpp
index 2219ba57..6e0a221d 100644
--- a/function.cpp
+++ b/function.cpp
@@ -29,7 +29,7 @@ uint64_t Function::GetStart() const
Ref<Symbol> Function::GetSymbol() const
{
- return new Symbol(BNNewSymbolReference(BNGetFunctionSymbol(m_func)));
+ return new Symbol(BNGetFunctionSymbol(m_func));
}
@@ -53,6 +53,26 @@ void Function::MarkRecentUse()
}
+Ref<LowLevelILFunction> Function::GetLowLevelIL() const
+{
+ return new LowLevelILFunction(BNGetFunctionLowLevelIL(m_func));
+}
+
+
+vector<Ref<BasicBlock>> Function::GetLowLevelILBasicBlocks() const
+{
+ size_t count;
+ BNBasicBlock** blocks = BNGetFunctionLowLevelILBasicBlockList(m_func, &count);
+
+ vector<Ref<BasicBlock>> result;
+ for (size_t i = 0; i < count; i++)
+ result.push_back(new BasicBlock(BNNewBasicBlockReference(blocks[i])));
+
+ BNFreeBasicBlockList(blocks, count);
+ return result;
+}
+
+
Ref<FunctionGraph> Function::CreateFunctionGraph()
{
BNFunctionGraph* graph = BNCreateFunctionGraph(m_func);