summaryrefslogtreecommitdiff
path: root/lowlevelil.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lowlevelil.cpp')
-rw-r--r--lowlevelil.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/lowlevelil.cpp b/lowlevelil.cpp
index 61450c8f..afaacf08 100644
--- a/lowlevelil.cpp
+++ b/lowlevelil.cpp
@@ -184,12 +184,18 @@ vector<uint64_t> LowLevelILFunction::GetOperandList(ExprId expr, size_t listOper
}
-ExprId LowLevelILFunction::AddLabelList(const vector<BNLowLevelILLabel*>& labels)
+ExprId LowLevelILFunction::AddLabelMap(const map<uint64_t, BNLowLevelILLabel*>& labels)
{
+ uint64_t* valueList = new uint64_t[labels.size()];
BNLowLevelILLabel** labelList = new BNLowLevelILLabel*[labels.size()];
- for (size_t i = 0; i < labels.size(); i++)
- labelList[i] = labels[i];
- ExprId result = (ExprId)BNLowLevelILAddLabelList(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)BNLowLevelILAddLabelMap(m_object, valueList, labelList, labels.size());
delete[] labelList;
return result;
}