summaryrefslogtreecommitdiff
path: root/binaryninjaapi.h
diff options
context:
space:
mode:
authorRusty Wagner <rusty@vector35.com>2016-09-03 01:32:35 -0400
committerRusty Wagner <rusty@vector35.com>2016-09-03 01:32:35 -0400
commit50cafb19ae59ba48fea2e7bd0c79a2e9473c2c86 (patch)
treef8025ed9b2f7adc6a3cdfd04cd46cb3fdda2ead7 /binaryninjaapi.h
parent75f597bb8fcd58315537f1dcd9802bbaadcdbd36 (diff)
Adding APIs to ensure IL is available for upcoming caching methods
Diffstat (limited to 'binaryninjaapi.h')
-rw-r--r--binaryninjaapi.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h
index 342dcc48..72e13567 100644
--- a/binaryninjaapi.h
+++ b/binaryninjaapi.h
@@ -1611,8 +1611,11 @@ namespace BinaryNinja
class Function: public CoreRefCountObject<BNFunction, BNNewFunctionReference, BNFreeFunction>
{
+ int m_advancedAnalysisRequests;
+
public:
Function(BNFunction* func);
+ virtual ~Function();
Ref<Architecture> GetArchitecture() const;
Ref<Platform> GetPlatform() const;
@@ -1684,6 +1687,24 @@ namespace BinaryNinja
BNIntegerDisplayType type);
void Reanalyze();
+
+ void RequestAdvancedAnalysisData();
+ void ReleaseAdvancedAnalysisData();
+ void ReleaseAdvancedAnalysisData(size_t count);
+ };
+
+ class AdvancedFunctionAnalysisDataRequestor
+ {
+ Ref<Function> m_func;
+
+ public:
+ AdvancedFunctionAnalysisDataRequestor(Function* func = nullptr);
+ AdvancedFunctionAnalysisDataRequestor(const AdvancedFunctionAnalysisDataRequestor& req);
+ ~AdvancedFunctionAnalysisDataRequestor();
+ AdvancedFunctionAnalysisDataRequestor& operator=(const AdvancedFunctionAnalysisDataRequestor& req);
+
+ Ref<Function> GetFunction() { return m_func; }
+ void SetFunction(Function* func);
};
struct FunctionGraphEdge