summaryrefslogtreecommitdiff
path: root/apt
diff options
context:
space:
mode:
Diffstat (limited to 'apt')
-rw-r--r--apt/cache.py12
1 files changed, 8 insertions, 4 deletions
diff --git a/apt/cache.py b/apt/cache.py
index cfe6bedc..3b0c5f7e 100644
--- a/apt/cache.py
+++ b/apt/cache.py
@@ -176,10 +176,14 @@ class Cache(object):
def get_changes(self):
""" Get the marked changes """
changes = []
- for pkg in self:
- if (pkg.marked_upgrade or pkg.marked_install or pkg.marked_delete
- or pkg.marked_downgrade or pkg.marked_reinstall):
- changes.append(pkg)
+ marked_keep = self._depcache.marked_keep
+ for pkg in self._cache.packages:
+ if not marked_keep(pkg):
+ try:
+ changes.append(self._weakref[pkg.name])
+ except KeyError:
+ package = self._weakref[pkg.name] = Package(self, pkg)
+ changes.append(package)
return changes
@deprecated_args