From: David Kalnischkies Date: Fri, 27 Nov 2015 21:22:21 +0000 (+0100) Subject: outsmart gcc -O3 over-optimization in pkgCdrom::FindPackages X-Git-Tag: 1.1.2~11 X-Git-Url: https://git.saurik.com/apt.git/commitdiff_plain/0300f0077af832e87beb290f26b13404cab81fd3 outsmart gcc -O3 over-optimization in pkgCdrom::FindPackages Seems like a simpler workaround than forcing a lower optimization level just for this for all of apt. See also: https://bugs.launchpad.net/ubuntu/+source/gcc-5/+bug/1473674 --- diff --git a/apt-pkg/cdrom.cc b/apt-pkg/cdrom.cc index 29eeca066..5613459e7 100644 --- a/apt-pkg/cdrom.cc +++ b/apt-pkg/cdrom.cc @@ -61,10 +61,10 @@ bool pkgCdrom::FindPackages(string CD, return _error->Errno("chdir","Unable to change to %s",CD.c_str()); // Look for a .disk subdirectory - if (DirectoryExists(".disk") == true) + if (InfoDir.empty() == true) { - if (InfoDir.empty() == true) - InfoDir = CD + ".disk/"; + if (DirectoryExists(".disk") == true) + InfoDir = InfoDir + CD + ".disk/"; } // Don't look into directories that have been marked to ingore. diff --git a/test/libapt/cdromfindpackages_test.cc b/test/libapt/cdromfindpackages_test.cc index 6121d32b6..0d8eb1f90 100644 --- a/test/libapt/cdromfindpackages_test.cc +++ b/test/libapt/cdromfindpackages_test.cc @@ -24,7 +24,9 @@ class Cdrom : public pkgCdrom { std::string &InfoDir) { std::string const startdir = SafeGetCWD(); EXPECT_FALSE(startdir.empty()); + EXPECT_TRUE(InfoDir.empty()); bool const result = pkgCdrom::FindPackages(CD, List, SList, SigList, TransList, InfoDir, NULL, 0); + EXPECT_FALSE(InfoDir.empty()); std::sort(List.begin(), List.end()); std::sort(SList.begin(), SList.end()); std::sort(SigList.begin(), SigList.end());