summaryrefslogtreecommitdiff
path: root/mediumlevelil.cpp
diff options
context:
space:
mode:
authorRusty Wagner <rusty@vector35.com>2019-12-19 16:04:11 -0500
committerRusty Wagner <rusty@vector35.com>2019-12-19 16:04:11 -0500
commit741fb0538e0ac6ab14928f78697196803dbd2ed5 (patch)
treedd0b8da88791b03553d659e6672c8d5ba0fdecfa /mediumlevelil.cpp
parent98771ab9f325e310ae07120cf559f601837380f9 (diff)
LLIL_JUMP_TO/MLIL_JUMP_TO now contain mappings from address to destination instruction
Diffstat (limited to 'mediumlevelil.cpp')
-rw-r--r--mediumlevelil.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/mediumlevelil.cpp b/mediumlevelil.cpp
index 3c2f623a..6ce556f4 100644
--- a/mediumlevelil.cpp
+++ b/mediumlevelil.cpp
@@ -165,12 +165,19 @@ vector<uint64_t> MediumLevelILFunction::GetOperandList(ExprId expr, size_t listO
}
-ExprId MediumLevelILFunction::AddLabelList(const vector<BNMediumLevelILLabel*>& labels)
+ExprId MediumLevelILFunction::AddLabelMap(const map<uint64_t, BNMediumLevelILLabel*>& labels)
{
+ uint64_t* valueList = new uint64_t[labels.size()];
BNMediumLevelILLabel** labelList = new BNMediumLevelILLabel*[labels.size()];
- for (size_t i = 0; i < labels.size(); i++)
- labelList[i] = labels[i];
- ExprId result = (ExprId)BNMediumLevelILAddLabelList(m_object, labelList, labels.size());
+ size_t i = 0;
+ for (auto& j : labels)
+ {
+ valueList[i] = j.first;
+ labelList[i] = j.second;
+ i++;
+ }
+ ExprId result = (ExprId)BNMediumLevelILAddLabelMap(m_object, valueList, labelList, labels.size());
+ delete[] valueList;
delete[] labelList;
return result;
}