diff --git a/src/generic/apt/apt.cc b/src/generic/apt/apt.cc index 05dbb8a..3d003d4 100644 --- a/src/generic/apt/apt.cc +++ b/src/generic/apt/apt.cc @@ -1724,8 +1724,8 @@ namespace aptitude return; } - pkgDPkgPM pm(*apt_cache_file); - pm.GetArchives(&fetcher, &l, apt_package_records); + std::unique_ptr pm(_system->CreatePM(*apt_cache_file)); + pm->GetArchives(&fetcher, &l, apt_package_records); if (_error->PendingError()) return; diff --git a/src/generic/apt/aptitude_resolver.cc b/src/generic/apt/aptitude_resolver.cc index 3603f02..5f660d5 100644 --- a/src/generic/apt/aptitude_resolver.cc +++ b/src/generic/apt/aptitude_resolver.cc @@ -1085,7 +1085,7 @@ void aptitude_resolver::add_default_resolution_score(const pkgCache::DepIterator pkgCache::VerIterator instVer(*cache, NULL); // See if we have a match that's not through a Provides. - for( ; *curr != NULL && (*curr)->ParentPkg == p.Index(); ++curr) + for( ; *curr != NULL && (*curr)->ParentPkg == p.MapPointer(); ++curr) { pkgCache::PkgIterator currPkg(*cache, cache->GetCache().PkgP + (*curr)->ParentPkg); if((*cache)[currPkg].CandidateVer != *curr) diff --git a/src/generic/apt/download_install_manager.cc b/src/generic/apt/download_install_manager.cc index 93c5625..d4d32e4 100644 --- a/src/generic/apt/download_install_manager.cc +++ b/src/generic/apt/download_install_manager.cc @@ -33,6 +33,7 @@ #include #include #include +#include #include @@ -44,7 +45,7 @@ using namespace std; download_install_manager::download_install_manager(bool _download_only, const run_dpkg_in_terminal_func &_run_dpkg_in_terminal) - : log(NULL), download_only(_download_only), pm(new pkgDPkgPM(*apt_cache_file)), + : log(NULL), download_only(_download_only), pm(_system->CreatePM(*apt_cache_file)), run_dpkg_in_terminal(_run_dpkg_in_terminal) { }