summaryrefslogtreecommitdiff
path: root/function.cpp
diff options
context:
space:
mode:
authorRusty Wagner <rusty@vector35.com>2016-08-30 22:05:21 -0400
committerRusty Wagner <rusty@vector35.com>2016-08-30 22:05:21 -0400
commit5b9887694a608b263f58fecfc3fa747b5f8dddf8 (patch)
tree523d576b8b55693c0c495a7ba5f5f37b98ab6d98 /function.cpp
parent3c19753e3ec474d4c84110b9e6ab8ef1f1971fe2 (diff)
parent3978e18b09ca745fd08defb8f00fbece267beaf2 (diff)
Merge branch 'analysis_cache' into dev
Diffstat (limited to 'function.cpp')
-rw-r--r--function.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/function.cpp b/function.cpp
index c5033276..cbd9ec40 100644
--- a/function.cpp
+++ b/function.cpp
@@ -72,6 +72,12 @@ bool Function::HasExplicitlyDefinedType() const
}
+bool Function::NeedsUpdate() const
+{
+ return BNIsFunctionUpdateNeeded(m_object);
+}
+
+
vector<Ref<BasicBlock>> Function::GetBasicBlocks() const
{
size_t count;
@@ -288,6 +294,19 @@ vector<StackVariableReference> Function::GetStackVariablesReferencedByInstructio
}
+vector<BNConstantReference> Function::GetConstantsReferencedByInstruction(Architecture* arch, uint64_t addr)
+{
+ size_t count;
+ BNConstantReference* refs = BNGetConstantsReferencedByInstruction(m_object, arch->GetObject(), addr, &count);
+
+ vector<BNConstantReference> result;
+ result.insert(result.end(), &refs[0], &refs[count]);
+
+ BNFreeConstantReferenceList(refs);
+ return result;
+}
+
+
Ref<LowLevelILFunction> Function::GetLiftedIL() const
{
return new LowLevelILFunction(BNGetFunctionLiftedIL(m_object));
@@ -553,3 +572,9 @@ void Function::SetIntegerConstantDisplayType(Architecture* arch, uint64_t instrA
{
BNSetIntegerConstantDisplayType(m_object, arch->GetObject(), instrAddr, value, operand, type);
}
+
+
+void Function::Reanalyze()
+{
+ BNReanalyzeFunction(m_object);
+}