Issue 11802: filecmp cache was growing without bound.

This commit is contained in:
Raymond Hettinger 2011-06-25 17:21:04 +02:00
commit d0de3d4cc4
1 changed files with 6 additions and 5 deletions

View File

@ -48,11 +48,12 @@ def cmp(f1, f2, shallow=True):
if s1[1] != s2[1]:
return False
result = _cache.get((f1, f2))
if result and (s1, s2) == result[:2]:
return result[2]
outcome = _do_cmp(f1, f2)
_cache[f1, f2] = s1, s2, outcome
outcome = _cache.get((f1, f2, s1, s2))
if outcome is None:
outcome = _do_cmp(f1, f2)
if len(_cache) > 100: # limit the maximum size of the cache
_cache.clear()
_cache[f1, f2, s1, s2] = outcome
return outcome
def _sig(st):