diff options
| author | Jon Palmisciano <jp@jonpalmisc.com> | 2021-07-27 07:59:29 -0400 |
|---|---|---|
| committer | Jon Palmisciano <jp@jonpalmisc.com> | 2021-07-30 13:36:31 -0400 |
| commit | ea8f992f355a9152e0a77fa861d01f39081d9670 (patch) | |
| tree | ef585d76ea768ee55cbbdb496b0a4317df0c7d44 /function.cpp | |
| parent | 4c1e6c0348fd0d275c077b93db06fa7d82c1941f (diff) | |
Function: Add C++ bindings for `Get{Medium,High}LevelILVariables()`
Diffstat (limited to 'function.cpp')
| -rw-r--r-- | function.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/function.cpp b/function.cpp index 9c9e5e68..fc90a8d1 100644 --- a/function.cpp +++ b/function.cpp @@ -1107,6 +1107,42 @@ map<Variable, VariableNameAndType> Function::GetVariables() } +set<Variable> Function::GetMediumLevelILVariables() +{ + auto mlil = this->GetMediumLevelIL(); + if (!mlil) + return {}; + + size_t count; + BNVariable* vars = BNGetMediumLevelILVariables(mlil->GetObject(), &count); + + set<Variable> result; + for (size_t i = 0; i < count; i++) + result.insert({vars[i]}); + + BNFreeVariableList(vars); + return result; +} + + +set<Variable> Function::GetHighLevelILVariables() +{ + auto hlil = this->GetHighLevelIL(); + if (!hlil) + return {}; + + size_t count; + BNVariable* vars = BNGetHighLevelILVariables(hlil->GetObject(), &count); + + set<Variable> result; + for (size_t i = 0; i < count; i++) + result.insert({vars[i]}); + + BNFreeVariableList(vars); + return result; +} + + void Function::CreateAutoVariable(const Variable& var, const Confidence<Ref<Type>>& type, const string& name, bool ignoreDisjointUses) { |
