Issue 11802: filecmp cache was growing without bound.
This commit is contained in:
commit
d0de3d4cc4
|
@ -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):
|
||||
|
|
Loading…
Reference in New Issue