---
 yum/transactioninfo.py |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/yum/transactioninfo.py b/yum/transactioninfo.py
index b0c7ddd..55643ce 100644
--- a/yum/transactioninfo.py
+++ b/yum/transactioninfo.py
@@ -104,6 +104,8 @@ class TransactionData:
         self.depupdated = []
         self.reinstalled = []
         self.downgraded = []
+
+        self._future_rpmdbv = None
         
     def __len__(self):
         return len(self.pkgdict)
@@ -618,6 +620,12 @@ class TransactionData:
         """ Return a simple version for the future rpmdb. Works like
             rpmdb.simpleVersion(main_only=True)[0], but for the state the rpmdb
             will be in after the transaction. """
+
+        if self._future_rpmdbv is not None:
+            sc, ret = self._future_rpmdbv
+            if sc == self.state_counter:
+                return ret
+
         pkgs = self.rpmdb.returnPackages()
         _reinstalled_pkgtups = {}
         for txmbr in self.getMembersWithState(None, TS_INSTALL_STATES):
@@ -657,6 +665,7 @@ class TransactionData:
 
         self.rpmdb.transactionCachePackageChecksums(pkg_checksum_tups)
 
+        self._future_rpmdbv = (self.state_counter, main)
         return main
     
     def findObsoletedByThisMember(self, txmbr):
-- 
1.7.3.4

_______________________________________________
Yum-devel mailing list
[email protected]
http://lists.baseurl.org/mailman/listinfo/yum-devel

Reply via email to