From 22c2873ccff4de8dcfbfa8c99388f934cd860740 Mon Sep 17 00:00:00 2001 From: Mark Rowe Date: Mon, 14 Jul 2025 18:24:35 -0700 Subject: Reserve vector capacity when populating vectors in conversion operators --- lowlevelilinstruction.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'lowlevelilinstruction.cpp') diff --git a/lowlevelilinstruction.cpp b/lowlevelilinstruction.cpp index 516f2ad2..26f5055d 100644 --- a/lowlevelilinstruction.cpp +++ b/lowlevelilinstruction.cpp @@ -644,6 +644,7 @@ uint64_t LowLevelILIntegerList::operator[](size_t i) const LowLevelILIntegerList::operator vector() const { vector result; + result.reserve(size()); for (auto i : *this) result.push_back(i); return result; @@ -697,6 +698,7 @@ size_t LowLevelILIndexList::operator[](size_t i) const LowLevelILIndexList::operator vector() const { vector result; + result.reserve(size()); for (auto i : *this) result.push_back(i); return result; @@ -812,6 +814,7 @@ const LowLevelILInstruction LowLevelILInstructionList::operator[](size_t i) cons LowLevelILInstructionList::operator vector() const { vector result; + result.reserve(size()); for (auto i : *this) result.push_back(i); return result; @@ -866,6 +869,7 @@ const RegisterOrFlag LowLevelILRegisterOrFlagList::operator[](size_t i) const LowLevelILRegisterOrFlagList::operator vector() const { vector result; + result.reserve(size()); for (auto i : *this) result.push_back(i); return result; @@ -924,6 +928,7 @@ const SSARegister LowLevelILSSARegisterList::operator[](size_t i) const LowLevelILSSARegisterList::operator vector() const { vector result; + result.reserve(size()); for (auto i : *this) result.push_back(i); return result; @@ -982,6 +987,7 @@ const SSARegisterStack LowLevelILSSARegisterStackList::operator[](size_t i) cons LowLevelILSSARegisterStackList::operator vector() const { vector result; + result.reserve(size()); for (auto i : *this) result.push_back(i); return result; @@ -1040,6 +1046,7 @@ const SSAFlag LowLevelILSSAFlagList::operator[](size_t i) const LowLevelILSSAFlagList::operator vector() const { vector result; + result.reserve(size()); for (auto i : *this) result.push_back(i); return result; @@ -1098,6 +1105,7 @@ const SSARegisterOrFlag LowLevelILSSARegisterOrFlagList::operator[](size_t i) co LowLevelILSSARegisterOrFlagList::operator vector() const { vector result; + result.reserve(size()); for (auto i : *this) result.push_back(i); return result; @@ -1360,6 +1368,7 @@ const LowLevelILOperand LowLevelILOperandList::operator[](size_t i) const LowLevelILOperandList::operator vector() const { vector result; + result.reserve(size()); for (auto i : *this) result.push_back(i); return result; @@ -3357,6 +3366,7 @@ ExprId LowLevelILFunction::CallStackAdjust( ExprId dest, int64_t adjust, const map& regStackAdjust, const ILSourceLocation& loc) { vector list; + list.reserve(regStackAdjust.size() * 2); for (auto& i : regStackAdjust) { list.push_back(i.first); -- cgit v1.3.1