diff --git a/basis/cache/cache.factor b/basis/cache/cache.factor index 4caa5b40ac..f2e31d9369 100644 --- a/basis/cache/cache.factor +++ b/basis/cache/cache.factor @@ -38,9 +38,9 @@ M: cache-assoc dispose* clear-assoc ; PRIVATE> : purge-cache ( cache -- ) - [ assoc>> ] [ max-age>> ] bi V{ } clone [ + dup [ assoc>> ] [ max-age>> ] bi V{ } clone [ '[ nip dup age>> 1 + [ >>age ] keep _ < [ drop t ] [ _ dispose-to f ] if - ] assoc-filter! drop + ] assoc-filter >>assoc drop ] keep [ last rethrow ] unless-empty ;