Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(213)

Unified Diff: pym/_emerge/FakeVartree.py

Issue 6688037: Update Portage to sync BlockerDB at init, rather than before every package. (Closed) Base URL: http://git.chromium.org/git/portage_tool.git@cros-2.1.9
Patch Set: Address comments by zmedico Created 9 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pym/_emerge/FakeVartree.py
diff --git a/pym/_emerge/FakeVartree.py b/pym/_emerge/FakeVartree.py
index 977824c78433c9104d1b9e5900ea236bd39e484f..9e3dacae2e345880d37314be85fcd8ec301c64d2 100644
--- a/pym/_emerge/FakeVartree.py
+++ b/pym/_emerge/FakeVartree.py
@@ -100,6 +100,16 @@ class FakeVartree(vartree):
pkg, self.dbapi, self._global_updates)
return self._aux_get(pkg, wants)
+ def cpv_discard(self, pkg):
+ """
+ Discard a package from the fake vardb if it exists.
diandersAtChromium 2011/03/22 02:57:59 Is pkg always a Package object? It's never a 4-tu
davidjames 2011/03/23 20:19:11 Nope, we don't need that functionality... that sai
+ """
+ old_pkg = self.dbapi.get(pkg)
diandersAtChromium 2011/03/22 02:57:59 I would _love_ if it you added a docstring to Pack
davidjames 2011/03/23 20:19:11 That's a good idea for a followup CL.
+ if old_pkg:
diandersAtChromium 2011/03/22 02:57:59 Should check for 'is None' or use 'if pkg in self.
davidjames 2011/03/23 20:19:11 Done.
+ self.dbapi.cpv_remove(old_pkg)
+ self._pkg_cache.pop(old_pkg, None)
+ self._aux_get_history.discard(old_pkg.cpv)
+
def sync(self, acquire_lock=1):
"""
Call this method to synchronize state with the real vardb
@@ -141,9 +151,7 @@ class FakeVartree(vartree):
# Remove any packages that have been uninstalled.
for pkg in list(pkg_vardb):
if pkg.cpv not in current_cpv_set:
- pkg_vardb.cpv_remove(pkg)
- pkg_cache.pop(pkg, None)
- aux_get_history.discard(pkg.cpv)
+ self.cpv_discard(pkg)
diandersAtChromium 2011/03/22 02:57:59 Looks like you added an extra level of indirection
davidjames 2011/03/23 20:19:11 Yup.
# Validate counters and timestamps.
slot_counters = {}
@@ -162,9 +170,7 @@ class FakeVartree(vartree):
if counter != pkg.counter or \
mtime != pkg.mtime:
- pkg_vardb.cpv_remove(pkg)
- pkg_cache.pop(pkg, None)
- aux_get_history.discard(pkg.cpv)
+ self.cpv_discard(pkg)
pkg = None
if pkg is None:

Powered by Google App Engine
This is Rietveld 408576698