diff options
| author | Rusty Wagner <rusty.wagner@gmail.com> | 2022-08-16 20:49:02 -0400 |
|---|---|---|
| committer | Rusty Wagner <rusty.wagner@gmail.com> | 2022-09-01 23:13:43 -0400 |
| commit | 40bdfac7b71dd1cbe9223b82518053f80268e2a8 (patch) | |
| tree | e53fc5710bb6e6844c1f09e967b715db0aac4444 /function.cpp | |
| parent | 2f6ebaa0042f6a02b9fcbf49b742fc25887bfdb4 (diff) | |
Splitting of variables
Diffstat (limited to 'function.cpp')
| -rw-r--r-- | function.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/function.cpp b/function.cpp index 06815c39..96795ef0 100644 --- a/function.cpp +++ b/function.cpp @@ -2611,6 +2611,38 @@ void Function::UnmergeVariables(const Variable& target, const std::set<Variable> } +std::set<Variable> Function::GetSplitVariables() +{ + size_t count = 0; + BNVariable* vars = BNGetSplitVariables(m_object, &count); + + std::set<Variable> result; + for (size_t i = 0; i < count; i++) + { + Variable var; + var.type = vars[i].type; + var.index = vars[i].index; + var.storage = vars[i].storage; + result.insert(var); + } + + BNFreeVariableList(vars); + return result; +} + + +void Function::SplitVariable(const Variable& var) +{ + BNSplitVariable(m_object, &var); +} + + +void Function::UnsplitVariable(const Variable& var) +{ + BNUnsplitVariable(m_object, &var); +} + + vector<ILReferenceSource> Function::GetMediumLevelILVariableReferences(const Variable& var) { size_t count; |
