summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGlenn Smith <glenn@vector35.com>2021-06-03 22:16:22 -0400
committerGlenn Smith <glenn@vector35.com>2021-06-03 23:26:23 -0400
commitdf3aa5a4e1e431ea1ffd5aaff2e7ca8f8cdf20f8 (patch)
treec603320d627444e121ae57d9b5a6a405a2d07552
parent8b5e9d9f10e9e78a3093e41bf0a03073fcbfb1f8 (diff)
If IL is not available, Get*LILIfAvailable should return nullptr
Fixes #2494
-rw-r--r--function.cpp20
1 files changed, 16 insertions, 4 deletions
diff --git a/function.cpp b/function.cpp
index 1d0551db..2c1b34ea 100644
--- a/function.cpp
+++ b/function.cpp
@@ -328,7 +328,10 @@ Ref<LowLevelILFunction> Function::GetLowLevelIL() const
Ref<LowLevelILFunction> Function::GetLowLevelILIfAvailable() const
{
- return new LowLevelILFunction(BNGetFunctionLowLevelILIfAvailable(m_object));
+ BNLowLevelILFunction* function = BNGetFunctionLowLevelILIfAvailable(m_object);
+ if (!function)
+ return nullptr;
+ return new LowLevelILFunction(function);
}
@@ -579,7 +582,10 @@ Ref<LowLevelILFunction> Function::GetLiftedIL() const
Ref<LowLevelILFunction> Function::GetLiftedILIfAvailable() const
{
- return new LowLevelILFunction(BNGetFunctionLiftedILIfAvailable(m_object));
+ BNLowLevelILFunction* function = BNGetFunctionLiftedILIfAvailable(m_object);
+ if (!function)
+ return nullptr;
+ return new LowLevelILFunction(function);
}
@@ -659,7 +665,10 @@ Ref<MediumLevelILFunction> Function::GetMediumLevelIL() const
Ref<MediumLevelILFunction> Function::GetMediumLevelILIfAvailable() const
{
- return new MediumLevelILFunction(BNGetFunctionMediumLevelILIfAvailable(m_object));
+ BNMediumLevelILFunction* function = BNGetFunctionMediumLevelILIfAvailable(m_object);
+ if (!function)
+ return nullptr;
+ return new MediumLevelILFunction(function);
}
@@ -671,7 +680,10 @@ Ref<HighLevelILFunction> Function::GetHighLevelIL() const
Ref<HighLevelILFunction> Function::GetHighLevelILIfAvailable() const
{
- return new HighLevelILFunction(BNGetFunctionHighLevelILIfAvailable(m_object));
+ BNHighLevelILFunction* function = BNGetFunctionHighLevelILIfAvailable(m_object);
+ if (!function)
+ return nullptr;
+ return new HighLevelILFunction(function);
}