diff options
| author | Chinmay <chinmay1dd@gmail.com> | 2020-08-17 22:53:09 -0700 |
|---|---|---|
| committer | Chinmay Deshpande <chinmay1dd@gmail.com> | 2020-09-08 09:29:18 -0700 |
| commit | 73b649e79d5cd219cb56866abf2ee5e6a64d976a (patch) | |
| tree | 07bbd8c4e5f8b6d743760a3e226a975cc83c2c15 /function.cpp | |
| parent | 62aa529de8a169578c80b14e3969b076f65be205 (diff) | |
UI changes for user-informed dataflow
Diffstat (limited to 'function.cpp')
| -rw-r--r-- | function.cpp | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/function.cpp b/function.cpp index ecb81a67..168decc2 100644 --- a/function.cpp +++ b/function.cpp @@ -1773,17 +1773,18 @@ Ref<FlowGraph> Function::GetUnresolvedStackAdjustmentGraph() void Function::SetUserVariableValue(const Variable& var, uint64_t defAddr, PossibleValueSet& value) { - auto mlil = GetMediumLevelIL(); - auto varDefs = mlil->GetVariableDefinitions(var); + Ref<MediumLevelILFunction> mlil = GetMediumLevelIL(); + const set<size_t>& varDefs = mlil->GetVariableDefinitions(var); if (varDefs.size() == 0) { LogError("Could not get definition for Variable"); return; } bool found = false; - for (const auto& site : varDefs) + for (auto& site : varDefs) { - if (site == defAddr) + const MediumLevelILInstruction& instr = mlil->GetInstruction(site); + if (instr.address == defAddr) { found = true; break; @@ -1810,16 +1811,18 @@ void Function::SetUserVariableValue(const Variable& var, uint64_t defAddr, Possi void Function::ClearUserVariableValue(const Variable& var, uint64_t defAddr) { - auto mlil = GetMediumLevelIL(); - auto varDefs = mlil->GetVariableDefinitions(var); + Ref<MediumLevelILFunction> mlil = GetMediumLevelIL(); + const set<size_t>& varDefs = mlil->GetVariableDefinitions(var); if (varDefs.size() == 0) { LogError("Could not get definition for Variable"); + return; } bool found = false; - for (auto site : varDefs) + for (auto& site : varDefs) { - if (site == defAddr) + const MediumLevelILInstruction& instr = mlil->GetInstruction(site); + if (instr.address == defAddr) { found = true; break; |
