From: David Kalnischkies Date: Tue, 5 Jul 2016 12:46:39 +0000 (+0200) Subject: don't add default compressors two times if disabled X-Git-Tag: 1.3_pre1~9 X-Git-Url: https://git.saurik.com/apt.git/commitdiff_plain/29b8e6b939bb7fcf0b2959545d8c822995c84118?ds=inline don't add default compressors two times if disabled 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 --- 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)); }