Rev 3884: Only cache cleanup functions if they aren't None. in http://bzr.arbash-meinel.com/branches/bzr/1.11/lru_cache

John Arbash Meinel john at arbash-meinel.com
Tue Dec 9 22:32:17 GMT 2008


At http://bzr.arbash-meinel.com/branches/bzr/1.11/lru_cache

------------------------------------------------------------
revno: 3884
revision-id: john at arbash-meinel.com-20081209223156-8usxe0ihbbg4cpjq
parent: john at arbash-meinel.com-20081208182300-u1qmnxafwt2rr5dz
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: lru_cache
timestamp: Tue 2008-12-09 16:31:56 -0600
message:
  Only cache cleanup functions if they aren't None.
-------------- next part --------------
=== modified file 'bzrlib/lru_cache.py'
--- a/bzrlib/lru_cache.py	2008-12-08 18:23:00 +0000
+++ b/bzrlib/lru_cache.py	2008-12-09 22:31:56 +0000
@@ -63,7 +63,8 @@
         if key in self._cache:
             self._remove(key)
         self._cache[key] = value
-        self._cleanup[key] = cleanup
+        if cleanup is not None:
+            self._cleanup[key] = cleanup
         self._record_access(key)
 
         if len(self._cache) > self._max_cache:
@@ -129,7 +130,7 @@
 
     def _remove(self, key):
         """Remove an entry, making sure to maintain the invariants."""
-        cleanup = self._cleanup.pop(key)
+        cleanup = self._cleanup.pop(key, None)
         val = self._cache.pop(key)
         if cleanup is not None:
             cleanup(key, val)
@@ -223,7 +224,8 @@
             return
         self._value_size += value_len
         self._cache[key] = value
-        self._cleanup[key] = cleanup
+        if cleanup is not None:
+            self._cleanup[key] = cleanup
         self._record_access(key)
 
         if self._value_size > self._max_size:



More information about the bazaar-commits mailing list