]> git.saurik.com Git - apt.git/commitdiff
debListParser: ParseDepends: Only query native arch if needed
authorJulian Andres Klode <jak@debian.org>
Sun, 27 Dec 2015 01:19:20 +0000 (02:19 +0100)
committerJulian Andres Klode <jak@debian.org>
Sun, 27 Dec 2015 01:25:49 +0000 (02:25 +0100)
This makes the code parsing architecture lists slower, but on
the other hand, improves the more generic case of reading
dependencies from Packages files.

apt-pkg/deb/deblistparser.cc

index f3ab9d5d82be0213ede23bf5b19d77beadf885b7..85bddcd10d7902f8d48fdba1d9cde3c11b486cd8 100644 (file)
@@ -562,8 +562,8 @@ const char *debListParser::ParseDepends(const char *Start,const char *Stop,
    Package.assign(Start,I - Start);
 
    // We don't want to confuse library users which can't handle MultiArch
    Package.assign(Start,I - Start);
 
    // We don't want to confuse library users which can't handle MultiArch
-   string const arch = _config->Find("APT::Architecture");
    if (StripMultiArch == true) {
    if (StripMultiArch == true) {
+      string const arch = _config->Find("APT::Architecture");
       size_t const found = Package.rfind(':');
       if (found != string::npos &&
          (strcmp(Package.c_str() + found, ":any") == 0 ||
       size_t const found = Package.rfind(':');
       if (found != string::npos &&
          (strcmp(Package.c_str() + found, ":any") == 0 ||
@@ -609,6 +609,7 @@ const char *debListParser::ParseDepends(const char *Start,const char *Stop,
 
    if (ParseArchFlags == true)
    {
 
    if (ParseArchFlags == true)
    {
+      string const arch = _config->Find("APT::Architecture");
       APT::CacheFilter::PackageArchitectureMatchesSpecification matchesArch(arch, false);
 
       // Parse an architecture
       APT::CacheFilter::PackageArchitectureMatchesSpecification matchesArch(arch, false);
 
       // Parse an architecture