diff --git a/src/mol-util/lru-cache.ts b/src/mol-util/lru-cache.ts index b6f843503a4b76ec0a16f9876f0c179b374c5c94..b5f39b5dabeee7f5050a3e8cc7a21e7a09a1a457 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