From 524ed90e3f26205f42aaefd6cd5a3ef4144eedd4 Mon Sep 17 00:00:00 2001 From: Alexander Rose <alexander.rose@weirdbyte.de> Date: Fri, 17 Apr 2020 20:36:20 -0700 Subject: [PATCH] lru cache set returns removed entry --- src/mol-util/lru-cache.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/mol-util/lru-cache.ts b/src/mol-util/lru-cache.ts index b6f843503..b5f39b5da 100644 --- a/src/mol-util/lru-cache.ts +++ b/src/mol-util/lru-cache.ts @@ -43,11 +43,14 @@ namespace LRUCache { return void 0; } - export function set<T>(cache: LRUCache<T>, key: string, data: T): T { + export function set<T>(cache: LRUCache<T>, key: string, data: T): T | undefined { + let removed: T | undefined = undefined; if (cache.entries.count >= cache.capacity) { - cache.entries.remove(cache.entries.first!); + const first = cache.entries.first!; + removed = first.value.data; + cache.entries.remove(first); } cache.entries.addLast(entry(key, data)); - return data; + return removed; } } \ No newline at end of file -- GitLab