Gentoo Archives: gentoo-commits

From: "Zac Medico (zmedico)" <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] portage r9881 - main/trunk/pym/portage/sets
Date: Mon, 14 Apr 2008 00:03:03
Message-Id: E1JlCA1-0005JN-8G@stork.gentoo.org
Author: zmedico
Date: 2008-04-14 00:03:00 +0000 (Mon, 14 Apr 2008)
New Revision: 9881

Modified:
   main/trunk/pym/portage/sets/files.py
Log:
Fix buggy logic in WorldSet.load() that causes it to discard all of
it's atoms in some cases (leading to loss of the whole world file).


Modified: main/trunk/pym/portage/sets/files.py
===================================================================
--- main/trunk/pym/portage/sets/files.py	2008-04-13 23:21:13 UTC (rev 9880)
+++ main/trunk/pym/portage/sets/files.py	2008-04-14 00:03:00 UTC (rev 9881)
@@ -185,6 +185,7 @@
 	def load(self):
 		atoms = []
 		nonatoms = []
+		atoms_changed = False
 		# load atoms and non-atoms from different files so the worldfile is 
 		# backwards-compatible with older versions and other PMs, even though 
 		# it's supposed to be private state data :/
@@ -205,11 +206,12 @@
 				data = {}
 			atoms = data.keys()
 			self._mtime = mtime
+			atoms_changed = True
 		try:
 			mtime = os.stat(self._filename2).st_mtime
 		except (OSError, IOError):
 			mtime = None
-		if (not self._loaded or self._mtime2 != mtime):
+		if (not self._loaded or self._mtime2 != mtime or atoms_changed):
 			try:
 				data, errors = self.loader2.load()
 				for fname in errors:
@@ -222,7 +224,8 @@
 				data = {}
 			nonatoms = data.keys()
 			self._mtime2 = mtime
-		if self._atoms != atoms or self._nonatoms != nonatoms:
+			atoms_changed = True
+		if atoms_changed:
 			self._setAtoms(atoms+nonatoms)
 		
 	def _ensure_dirs(self):

-- 
gentoo-commits@l.g.o mailing list