summaryrefslogtreecommitdiff
path: root/apt-pkg/deb/debmetaindex.cc
diff options
context:
space:
mode:
authorDavid Kalnischkies <david@kalnischkies.de>2015-08-29 12:28:24 +0200
committerDavid Kalnischkies <david@kalnischkies.de>2015-08-29 12:33:30 +0200
commit8dd562a894c2472e3705fe13c212f665b55744a9 (patch)
treea042b35a689ba64e0a76207115fb937cefa8f0c2 /apt-pkg/deb/debmetaindex.cc
parentd7a51997c30b2098bb60b3397095ec58ec825303 (diff)
use c++11 algorithms to avoid strange compiler warnings
Nobody knows what makes the 'unable to optimize loop' warning to appear in the sourceslist minus-options parsing, especially if we use a foreach loop, but we can replace it with some nice c++11 algorithm+lambda usage, which also helps in making even clearer what happens here. And as this would be a lonely change, lets do it for a few more loops as well where I might or might not have seen the warning at some point in time, too. Git-Dch: Ignore
Diffstat (limited to 'apt-pkg/deb/debmetaindex.cc')
-rw-r--r--apt-pkg/deb/debmetaindex.cc63
1 files changed, 29 insertions, 34 deletions
diff --git a/apt-pkg/deb/debmetaindex.cc b/apt-pkg/deb/debmetaindex.cc
index 00dc1eeec..a26b94d82 100644
--- a/apt-pkg/deb/debmetaindex.cc
+++ b/apt-pkg/deb/debmetaindex.cc
@@ -446,10 +446,8 @@ bool debReleaseIndex::GetIndexes(pkgAcquire *Owner, bool const &GetAll)/*{{{*/
#undef APT_TARGET
// special case for --print-uris
if (GetAll)
- {
- for (std::vector<IndexTarget>::const_iterator Target = targets.begin(); Target != targets.end(); ++Target)
- new pkgAcqIndex(Owner, TransactionManager, *Target);
- }
+ for (auto const &Target: targets)
+ new pkgAcqIndex(Owner, TransactionManager, Target);
return true;
}
@@ -537,17 +535,16 @@ std::vector <pkgIndexFile *> *debReleaseIndex::GetIndexFiles() /*{{{*/
return Indexes;
Indexes = new std::vector<pkgIndexFile*>();
- std::vector<IndexTarget> const Targets = GetIndexTargets();
bool const istrusted = IsTrusted();
- for (std::vector<IndexTarget>::const_iterator T = Targets.begin(); T != Targets.end(); ++T)
+ for (auto const &T: GetIndexTargets())
{
- std::string const TargetName = T->Option(IndexTarget::CREATED_BY);
+ std::string const TargetName = T.Option(IndexTarget::CREATED_BY);
if (TargetName == "Packages")
- Indexes->push_back(new debPackagesIndex(*T, istrusted));
+ Indexes->push_back(new debPackagesIndex(T, istrusted));
else if (TargetName == "Sources")
- Indexes->push_back(new debSourcesIndex(*T, istrusted));
+ Indexes->push_back(new debSourcesIndex(T, istrusted));
else if (TargetName == "Translations")
- Indexes->push_back(new debTranslationsIndex(*T));
+ Indexes->push_back(new debTranslationsIndex(T));
}
return Indexes;
}
@@ -673,20 +670,17 @@ static std::vector<std::string> parsePlusMinusOptions(std::string const &Name, /
if ((val = Options.find(Name + "+")) != Options.end())
{
- std::vector<std::string> const plusArch = VectorizeString(val->second, ',');
- for (std::vector<std::string>::const_iterator plus = plusArch.begin(); plus != plusArch.end(); ++plus)
- if (std::find(Values.begin(), Values.end(), *plus) == Values.end())
- Values.push_back(*plus);
+ std::vector<std::string> const plus = VectorizeString(val->second, ',');
+ std::copy_if(plus.begin(), plus.end(), std::back_inserter(Values), [&Values](std::string const &v) {
+ return std::find(Values.begin(), Values.end(), v) == Values.end();
+ });
}
if ((val = Options.find(Name + "-")) != Options.end())
{
- std::vector<std::string> const minusArch = VectorizeString(val->second, ',');
- for (std::vector<std::string>::const_iterator minus = minusArch.begin(); minus != minusArch.end(); ++minus)
- {
- std::vector<std::string>::iterator kill = std::find(Values.begin(), Values.end(), *minus);
- if (kill != Values.end())
- Values.erase(kill);
- }
+ std::vector<std::string> const minus = VectorizeString(val->second, ',');
+ Values.erase(std::remove_if(Values.begin(), Values.end(), [&minus](std::string const &v) {
+ return std::find(minus.begin(), minus.end(), v) != minus.end();
+ }), Values.end());
}
return Values;
}
@@ -743,25 +737,26 @@ class APT_HIDDEN debSLTypeDebian : public pkgSourceList::Type /*{{{*/
std::vector<std::string> const alltargets = _config->FindVector(std::string("Acquire::IndexTargets::") + Name, "", true);
std::vector<std::string> mytargets = parsePlusMinusOptions("target", Options, alltargets);
- if (mytargets.empty() == false)
- for (auto const &target : alltargets)
- {
- std::map<std::string, std::string>::const_iterator const opt = Options.find(target);
- if (opt == Options.end())
- continue;
- auto const tarItr = std::find(mytargets.begin(), mytargets.end(), target);
- bool const optValue = StringToBool(opt->second);
- if (optValue == true && tarItr == mytargets.end())
- mytargets.push_back(target);
- else if (optValue == false && tarItr != mytargets.end())
- mytargets.erase(std::remove(mytargets.begin(), mytargets.end(), target), mytargets.end());
- }
+ for (auto const &target : alltargets)
+ {
+ std::map<std::string, std::string>::const_iterator const opt = Options.find(target);
+ if (opt == Options.end())
+ continue;
+ auto const tarItr = std::find(mytargets.begin(), mytargets.end(), target);
+ bool const optValue = StringToBool(opt->second);
+ if (optValue == true && tarItr == mytargets.end())
+ mytargets.push_back(target);
+ else if (optValue == false && tarItr != mytargets.end())
+ mytargets.erase(std::remove(mytargets.begin(), mytargets.end(), target), mytargets.end());
+ }
+
bool UsePDiffs = _config->FindB("Acquire::PDiffs", true);
{
std::map<std::string, std::string>::const_iterator const opt = Options.find("pdiffs");
if (opt != Options.end())
UsePDiffs = StringToBool(opt->second);
}
+
Deb->AddComponent(
IsSrc,
Section,