summaryrefslogtreecommitdiff
path: root/function.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'function.cpp')
-rw-r--r--function.cpp22
1 files changed, 19 insertions, 3 deletions
diff --git a/function.cpp b/function.cpp
index 835ab144..62a8e1b0 100644
--- a/function.cpp
+++ b/function.cpp
@@ -119,6 +119,12 @@ Function::~Function()
}
+Ref<BinaryView> Function::GetView() const
+{
+ return new BinaryView(BNGetFunctionData(m_object));
+}
+
+
Ref<Platform> Function::GetPlatform() const
{
return new Platform(BNGetFunctionPlatform(m_object));
@@ -802,10 +808,10 @@ void Function::ApplyAutoDiscoveredType(Type* type)
}
-Ref<FunctionGraph> Function::CreateFunctionGraph()
+Ref<FlowGraph> Function::CreateFunctionGraph(BNFunctionGraphType type, DisassemblySettings* settings)
{
- BNFunctionGraph* graph = BNCreateFunctionGraph(m_object);
- return new FunctionGraph(graph);
+ BNFlowGraph* graph = BNCreateFunctionGraph(m_object, type, settings ? settings->GetObject() : nullptr);
+ return new FlowGraph(graph);
}
@@ -1338,6 +1344,7 @@ vector<DisassemblyTextLine> Function::GetTypeTokens(DisassemblySettings* setting
DisassemblyTextLine line;
line.addr = lines[i].addr;
line.instrIndex = lines[i].instrIndex;
+ line.highlight = lines[i].highlight;
line.tokens.reserve(lines[i].count);
for (size_t j = 0; j < lines[i].count; j++)
{
@@ -1384,6 +1391,15 @@ void Function::SetAnalysisSkipOverride(BNFunctionAnalysisSkipOverride skip)
}
+Ref<FlowGraph> Function::GetUnresolvedStackAdjustmentGraph()
+{
+ BNFlowGraph* graph = BNGetUnresolvedStackAdjustmentGraph(m_object);
+ if (!graph)
+ return nullptr;
+ return new FlowGraph(graph);
+}
+
+
AdvancedFunctionAnalysisDataRequestor::AdvancedFunctionAnalysisDataRequestor(Function* func): m_func(func)
{
if (m_func)