From c0e27b98e84c231a5fedbaa631f5cfcfdcfc9040 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Sat, 15 Jun 2019 23:51:36 -0700 Subject: [PATCH] Move LRUMap to browser --- .../renderer/atlas/LRUMap.test.ts | 2 +- src/{ => browser}/renderer/atlas/LRUMap.ts | 18 +++++++++--------- src/renderer/atlas/DynamicCharAtlas.ts | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) rename src/{ => browser}/renderer/atlas/LRUMap.test.ts (96%) rename src/{ => browser}/renderer/atlas/LRUMap.ts (91%) diff --git a/src/renderer/atlas/LRUMap.test.ts b/src/browser/renderer/atlas/LRUMap.test.ts similarity index 96% rename from src/renderer/atlas/LRUMap.test.ts rename to src/browser/renderer/atlas/LRUMap.test.ts index b24ad2af..792f85a7 100644 --- a/src/renderer/atlas/LRUMap.test.ts +++ b/src/browser/renderer/atlas/LRUMap.test.ts @@ -4,7 +4,7 @@ */ import { assert } from 'chai'; -import { LRUMap } from './LRUMap'; +import { LRUMap } from 'browser/renderer/atlas/LRUMap'; describe('LRUMap', () => { it('can be used to store and retrieve values', () => { diff --git a/src/renderer/atlas/LRUMap.ts b/src/browser/renderer/atlas/LRUMap.ts similarity index 91% rename from src/renderer/atlas/LRUMap.ts rename to src/browser/renderer/atlas/LRUMap.ts index 0db5621f..f70962fe 100644 --- a/src/renderer/atlas/LRUMap.ts +++ b/src/browser/renderer/atlas/LRUMap.ts @@ -4,16 +4,16 @@ */ interface ILinkedListNode { - prev: ILinkedListNode; - next: ILinkedListNode; - key: number; - value: T; + prev: ILinkedListNode | null; + next: ILinkedListNode | null; + key: number | null; + value: T | null; } export class LRUMap { private _map: { [key: number]: ILinkedListNode } = {}; - private _head: ILinkedListNode = null; - private _tail: ILinkedListNode = null; + private _head: ILinkedListNode | null = null; + private _tail: ILinkedListNode | null = null; private _nodePool: ILinkedListNode[] = []; public size: number = 0; @@ -106,9 +106,9 @@ export class LRUMap { node.value = value; } else if (this.size >= this.capacity) { // we're out of space: recycle the head node, move it to the tail - node = this._head; + node = this._head!; this._unlinkNode(node); - delete this._map[node.key]; + delete this._map[node.key!]; node.key = key; node.value = value; this._map[key] = node; @@ -117,7 +117,7 @@ export class LRUMap { const nodePool = this._nodePool; if (nodePool.length > 0) { // use a preallocated node if we can - node = nodePool.pop(); + node = nodePool.pop()!; node.key = key; node.value = value; } else { diff --git a/src/renderer/atlas/DynamicCharAtlas.ts b/src/renderer/atlas/DynamicCharAtlas.ts index fdae4e80..24f31b35 100644 --- a/src/renderer/atlas/DynamicCharAtlas.ts +++ b/src/renderer/atlas/DynamicCharAtlas.ts @@ -7,7 +7,7 @@ import { IGlyphIdentifier, ICharAtlasConfig } from './Types'; import { DIM_OPACITY, INVERTED_DEFAULT_COLOR } from './Constants'; import { BaseCharAtlas } from './BaseCharAtlas'; import { DEFAULT_ANSI_COLORS } from 'browser/ColorManager'; -import { LRUMap } from './LRUMap'; +import { LRUMap } from '../../browser/renderer/atlas/LRUMap'; import { isFirefox, isSafari } from 'common/Platform'; import { IColor } from 'browser/Types';