Instead of using std::copy, clear the vector first and add new elements. NFC.

Differential Revision: https://reviews.llvm.org/D45227

llvm-svn: 329107
This commit is contained in:
Rui Ueyama 2018-04-03 20:08:45 +00:00
parent bca630bd61
commit c6bf37d56d
1 changed files with 9 additions and 10 deletions

View File

@ -1137,24 +1137,23 @@ sortISDBySectionOrder(InputSectionDescription *ISD,
// of the second block of cold code can call the hot code without a thunk. So
// we effectively double the amount of code that could potentially call into
// the hot code without a thunk.
size_t UnorderedInsPt = 0;
size_t InsPt = 0;
if (Target->ThunkSectionSpacing && !OrderedSections.empty()) {
uint64_t UnorderedPos = 0;
for (; UnorderedInsPt != UnorderedSections.size(); ++UnorderedInsPt) {
UnorderedPos += UnorderedSections[UnorderedInsPt]->getSize();
for (; InsPt != UnorderedSections.size(); ++InsPt) {
UnorderedPos += UnorderedSections[InsPt]->getSize();
if (UnorderedPos > UnorderedSize / 2)
break;
}
}
std::copy(UnorderedSections.begin(),
UnorderedSections.begin() + UnorderedInsPt, ISD->Sections.begin());
std::vector<InputSection *>::iterator SectionsPos =
ISD->Sections.begin() + UnorderedInsPt;
ISD->Sections.clear();
for (InputSection *IS : makeArrayRef(UnorderedSections).slice(0, InsPt))
ISD->Sections.push_back(IS);
for (std::pair<InputSection *, int> P : OrderedSections)
*SectionsPos++ = P.first;
std::copy(UnorderedSections.begin() + UnorderedInsPt, UnorderedSections.end(),
SectionsPos);
ISD->Sections.push_back(P.first);
for (InputSection *IS : makeArrayRef(UnorderedSections).slice(InsPt))
ISD->Sections.push_back(IS);
}
static void sortSection(OutputSection *Sec,