From 29b8e6b939bb7fcf0b2959545d8c822995c84118 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 5 Jul 2016 14:46:39 +0200 Subject: don't add default compressors two times if disabled MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is in so far pointless as the first match will deal with the extension, so we don't actually ever use these second instances – probably for the better as most need arguments to behave as epected & more importantly: the point of the exercise disabling their use for testing proposes. Gbp-Dch: Ignore --- apt-pkg/aptconfiguration.cc | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) (limited to 'apt-pkg/aptconfiguration.cc') diff --git a/apt-pkg/aptconfiguration.cc b/apt-pkg/aptconfiguration.cc index 68135c926..0035f70df 100644 --- a/apt-pkg/aptconfiguration.cc +++ b/apt-pkg/aptconfiguration.cc @@ -365,42 +365,45 @@ const Configuration::getCompressors(bool const Cached) { setDefaultConfigurationForCompressors(); - compressors.push_back(Compressor(".", "", "", NULL, NULL, 0)); + std::vector CompressorsDone; +# define APT_ADD_COMPRESSOR(NAME, EXT, BINARY, ARG, DEARG, COST) \ + { CompressorsDone.push_back(NAME); compressors.emplace_back(NAME, EXT, BINARY, ARG, DEARG, COST); } + APT_ADD_COMPRESSOR(".", "", "", nullptr, nullptr, 0) if (_config->Exists("Dir::Bin::lz4") == false || FileExists(_config->Find("Dir::Bin::lz4")) == true) - compressors.push_back(Compressor("lz4",".lz4","lz4","-1","-d",50)); + APT_ADD_COMPRESSOR("lz4",".lz4","lz4","-1","-d",50) #ifdef HAVE_LZ4 else - compressors.push_back(Compressor("lz4",".lz4","false", NULL, NULL, 50)); + APT_ADD_COMPRESSOR("lz4",".lz4","false", nullptr, nullptr, 50) #endif if (_config->Exists("Dir::Bin::gzip") == false || FileExists(_config->Find("Dir::Bin::gzip")) == true) - compressors.push_back(Compressor("gzip",".gz","gzip","-6n","-d",100)); + APT_ADD_COMPRESSOR("gzip",".gz","gzip","-6n","-d",100) #ifdef HAVE_ZLIB else - compressors.push_back(Compressor("gzip",".gz","false", NULL, NULL, 100)); + APT_ADD_COMPRESSOR("gzip",".gz","false", nullptr, nullptr, 100) #endif if (_config->Exists("Dir::Bin::xz") == false || FileExists(_config->Find("Dir::Bin::xz")) == true) - compressors.push_back(Compressor("xz",".xz","xz","-6","-d",200)); + APT_ADD_COMPRESSOR("xz",".xz","xz","-6","-d",200) #ifdef HAVE_LZMA else - compressors.push_back(Compressor("xz",".xz","false", NULL, NULL, 200)); + APT_ADD_COMPRESSOR("xz",".xz","false", nullptr, nullptr, 200) #endif if (_config->Exists("Dir::Bin::bzip2") == false || FileExists(_config->Find("Dir::Bin::bzip2")) == true) - compressors.push_back(Compressor("bzip2",".bz2","bzip2","-6","-d",300)); + APT_ADD_COMPRESSOR("bzip2",".bz2","bzip2","-6","-d",300) #ifdef HAVE_BZ2 else - compressors.push_back(Compressor("bzip2",".bz2","false", NULL, NULL, 300)); + APT_ADD_COMPRESSOR("bzip2",".bz2","false", nullptr, nullptr, 300) #endif if (_config->Exists("Dir::Bin::lzma") == false || FileExists(_config->Find("Dir::Bin::lzma")) == true) - compressors.push_back(Compressor("lzma",".lzma","lzma","-6","-d",400)); + APT_ADD_COMPRESSOR("lzma",".lzma","lzma","-6","-d",400) #ifdef HAVE_LZMA else - compressors.push_back(Compressor("lzma",".lzma","false", NULL, NULL, 400)); + APT_ADD_COMPRESSOR("lzma",".lzma","false", nullptr, nullptr, 400) #endif std::vector const comp = _config->FindVector("APT::Compressor", "", true); for (auto const &c: comp) { - if (c.empty() || std::any_of(compressors.begin(), compressors.end(), [&c](Compressor const &ac) { return ac.Name == c; })) + if (c.empty() || std::find(CompressorsDone.begin(), CompressorsDone.end(), c) != CompressorsDone.end()) continue; compressors.push_back(Compressor(c.c_str(), std::string(".").append(c).c_str(), c.c_str(), nullptr, nullptr, 1000)); } -- cgit v1.2.3