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