key by offset+length to allow fetches of magic numbers

This commit is contained in:
Brandon Liu
2022-06-01 13:33:15 +08:00
parent 9309f42ced
commit beef7a3ab7

View File

@@ -280,13 +280,13 @@ interface CacheEntry {
} }
export class LRUCacheSource implements Source { export class LRUCacheSource implements Source {
entries: Map<number, CacheEntry>; entries: Map<string, CacheEntry>;
maxEntries: number; maxEntries: number;
source: Source; source: Source;
constructor(source: Source, maxEntries: number) { constructor(source: Source, maxEntries: number) {
this.source = source; this.source = source;
this.entries = new Map<number, CacheEntry>(); this.entries = new Map<string, CacheEntry>();
this.maxEntries = maxEntries; this.maxEntries = maxEntries;
} }
@@ -295,7 +295,7 @@ export class LRUCacheSource implements Source {
}; };
async getBytes(offset: number, length: number) { async getBytes(offset: number, length: number) {
let val = this.entries.get(offset); let val = this.entries.get(offset + "-" + length);
if (val) { if (val) {
val.lastUsed = performance.now(); val.lastUsed = performance.now();
return val.buffer; return val.buffer;
@@ -303,7 +303,7 @@ export class LRUCacheSource implements Source {
let promise = this.source.getBytes(offset, length); let promise = this.source.getBytes(offset, length);
this.entries.set(offset, { this.entries.set(offset + "-" + length, {
lastUsed: performance.now(), lastUsed: performance.now(),
buffer: promise, buffer: promise,
}); });