Skip to content

Commit 1f01e88

Browse files
committed
debt - Avoid Number.MIN_VALUE and Number.MAX_VALUE
1 parent 78fd1e5 commit 1f01e88

23 files changed

Lines changed: 65 additions & 60 deletions

File tree

src/vs/base/common/diff/diff.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
import { DiffChange } from 'vs/base/common/diff/diffChange';
77
import { stringHash } from 'vs/base/common/hash';
8+
import { Constants } from 'vs/base/common/uint';
89

910
export class StringDiffSequence implements ISequence {
1011

@@ -138,8 +139,8 @@ class DiffChangeHelper {
138139
*/
139140
constructor() {
140141
this.m_changes = [];
141-
this.m_originalStart = Number.MAX_VALUE;
142-
this.m_modifiedStart = Number.MAX_VALUE;
142+
this.m_originalStart = Constants.MAX_SAFE_SMALL_INTEGER;
143+
this.m_modifiedStart = Constants.MAX_SAFE_SMALL_INTEGER;
143144
this.m_originalCount = 0;
144145
this.m_modifiedCount = 0;
145146
}
@@ -158,8 +159,8 @@ class DiffChangeHelper {
158159
// Reset for the next change
159160
this.m_originalCount = 0;
160161
this.m_modifiedCount = 0;
161-
this.m_originalStart = Number.MAX_VALUE;
162-
this.m_modifiedStart = Number.MAX_VALUE;
162+
this.m_originalStart = Constants.MAX_SAFE_SMALL_INTEGER;
163+
this.m_modifiedStart = Constants.MAX_SAFE_SMALL_INTEGER;
163164
}
164165

165166
/**
@@ -422,7 +423,7 @@ export class LcsDiff {
422423
let diagonalMin = diagonalForwardStart;
423424
let diagonalMax = diagonalForwardEnd;
424425
let diagonalRelative = (midOriginalArr[0] - midModifiedArr[0]) - diagonalForwardOffset;
425-
let lastOriginalIndex = Number.MIN_VALUE;
426+
let lastOriginalIndex = Constants.MIN_SAFE_SMALL_INTEGER;
426427
let historyIndex = this.m_forwardHistory.length - 1;
427428
let diagonal: number;
428429

@@ -488,7 +489,7 @@ export class LcsDiff {
488489
diagonalMin = diagonalReverseStart;
489490
diagonalMax = diagonalReverseEnd;
490491
diagonalRelative = (midOriginalArr[0] - midModifiedArr[0]) - diagonalReverseOffset;
491-
lastOriginalIndex = Number.MAX_VALUE;
492+
lastOriginalIndex = Constants.MAX_SAFE_SMALL_INTEGER;
492493
historyIndex = (deltaIsEven) ? this.m_reverseHistory.length - 1 : this.m_reverseHistory.length - 2;
493494

494495
do {
Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -3,32 +3,6 @@
33
* Licensed under the MIT License. See License.txt in the project root for license information.
44
*--------------------------------------------------------------------------------------------*/
55

6-
export class Uint8Matrix {
7-
8-
private readonly _data: Uint8Array;
9-
public readonly rows: number;
10-
public readonly cols: number;
11-
12-
constructor(rows: number, cols: number, defaultValue: number) {
13-
const data = new Uint8Array(rows * cols);
14-
for (let i = 0, len = rows * cols; i < len; i++) {
15-
data[i] = defaultValue;
16-
}
17-
18-
this._data = data;
19-
this.rows = rows;
20-
this.cols = cols;
21-
}
22-
23-
public get(row: number, col: number): number {
24-
return this._data[row * this.cols + col];
25-
}
26-
27-
public set(row: number, col: number, value: number): void {
28-
this._data[row * this.cols + col] = value;
29-
}
30-
}
31-
326
export const enum Constants {
337
/**
348
* MAX SMI (SMall Integer) as defined in v8.

src/vs/editor/browser/viewParts/contentWidgets/contentWidgets.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { ContentWidgetPositionPreference, IContentWidget } from 'vs/editor/brows
99
import { PartFingerprint, PartFingerprints, ViewPart } from 'vs/editor/browser/view/viewPart';
1010
import { IPosition, Position } from 'vs/editor/common/core/position';
1111
import { IRange, Range } from 'vs/editor/common/core/range';
12-
import { Constants } from 'vs/editor/common/core/uint';
12+
import { Constants } from 'vs/base/common/uint';
1313
import { RenderingContext, RestrictedRenderingContext } from 'vs/editor/common/view/renderingContext';
1414
import { ViewContext } from 'vs/editor/common/view/viewContext';
1515
import * as viewEvents from 'vs/editor/common/view/viewEvents';

src/vs/editor/browser/viewParts/lines/rangeUtil.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* Licensed under the MIT License. See License.txt in the project root for license information.
44
*--------------------------------------------------------------------------------------------*/
55

6-
import { Constants } from 'vs/editor/common/core/uint';
6+
import { Constants } from 'vs/base/common/uint';
77
import { HorizontalRange } from 'vs/editor/common/view/renderingContext';
88

99
class FloatHorizontalRange {

src/vs/editor/browser/viewParts/lines/viewLines.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import * as viewEvents from 'vs/editor/common/view/viewEvents';
2020
import { ViewportData } from 'vs/editor/common/viewLayout/viewLinesViewportData';
2121
import { Viewport } from 'vs/editor/common/viewModel/viewModel';
2222
import { EditorOption } from 'vs/editor/common/config/editorOptions';
23+
import { Constants } from 'vs/base/common/uint';
2324

2425
class LastRenderedData {
2526

@@ -641,7 +642,7 @@ export class ViewLines extends ViewPart implements IVisibleLinesHost<ViewLine>,
641642
const viewportEndX = viewportStartX + viewport.width;
642643

643644
const visibleRanges = this.visibleRangesForRange2(new Range(lineNumber, startColumn, lineNumber, endColumn));
644-
let boxStartX = Number.MAX_VALUE;
645+
let boxStartX = Constants.MAX_SAFE_SMALL_INTEGER;
645646
let boxEndX = 0;
646647

647648
if (!visibleRanges) {

src/vs/editor/browser/widget/diffEditorWidget.ts

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ import { ITheme, IThemeService, getThemeTypeSelector, registerThemingParticipant
4343
import { IContextMenuService } from 'vs/platform/contextview/browser/contextView';
4444
import { IDiffLinesChange, InlineDiffMargin } from 'vs/editor/browser/widget/inlineDiffMargin';
4545
import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService';
46+
import { Constants } from 'vs/base/common/uint';
4647

4748
interface IEditorDiffDecorations {
4849
decorations: IModelDeltaDecoration[];
@@ -1122,7 +1123,7 @@ export class DiffEditorWidget extends Disposable implements editorBrowser.IDiffE
11221123
while (min < max) {
11231124
let mid = Math.floor((min + max) / 2);
11241125
let midStart = startLineNumberExtractor(lineChanges[mid]);
1125-
let midEnd = (mid + 1 <= max ? startLineNumberExtractor(lineChanges[mid + 1]) : Number.MAX_VALUE);
1126+
let midEnd = (mid + 1 <= max ? startLineNumberExtractor(lineChanges[mid + 1]) : Constants.MAX_SAFE_SMALL_INTEGER);
11261127

11271128
if (lineNumber < midStart) {
11281129
max = mid - 1;
@@ -1682,11 +1683,11 @@ class DiffEditorWidgetSideBySide extends DiffEditorWidgetStyle implements IDiffE
16821683

16831684
if (isChangeOrDelete(lineChange)) {
16841685
result.decorations.push({
1685-
range: new Range(lineChange.originalStartLineNumber, 1, lineChange.originalEndLineNumber, Number.MAX_VALUE),
1686+
range: new Range(lineChange.originalStartLineNumber, 1, lineChange.originalEndLineNumber, Constants.MAX_SAFE_SMALL_INTEGER),
16861687
options: (renderIndicators ? DECORATIONS.lineDeleteWithSign : DECORATIONS.lineDelete)
16871688
});
16881689
if (!isChangeOrInsert(lineChange) || !lineChange.charChanges) {
1689-
result.decorations.push(createDecoration(lineChange.originalStartLineNumber, 1, lineChange.originalEndLineNumber, Number.MAX_VALUE, DECORATIONS.charDeleteWholeLine));
1690+
result.decorations.push(createDecoration(lineChange.originalStartLineNumber, 1, lineChange.originalEndLineNumber, Constants.MAX_SAFE_SMALL_INTEGER, DECORATIONS.charDeleteWholeLine));
16901691
}
16911692

16921693
result.overviewZones.push(new OverviewRulerZone(
@@ -1743,11 +1744,11 @@ class DiffEditorWidgetSideBySide extends DiffEditorWidgetStyle implements IDiffE
17431744
if (isChangeOrInsert(lineChange)) {
17441745

17451746
result.decorations.push({
1746-
range: new Range(lineChange.modifiedStartLineNumber, 1, lineChange.modifiedEndLineNumber, Number.MAX_VALUE),
1747+
range: new Range(lineChange.modifiedStartLineNumber, 1, lineChange.modifiedEndLineNumber, Constants.MAX_SAFE_SMALL_INTEGER),
17471748
options: (renderIndicators ? DECORATIONS.lineInsertWithSign : DECORATIONS.lineInsert)
17481749
});
17491750
if (!isChangeOrDelete(lineChange) || !lineChange.charChanges) {
1750-
result.decorations.push(createDecoration(lineChange.modifiedStartLineNumber, 1, lineChange.modifiedEndLineNumber, Number.MAX_VALUE, DECORATIONS.charInsertWholeLine));
1751+
result.decorations.push(createDecoration(lineChange.modifiedStartLineNumber, 1, lineChange.modifiedEndLineNumber, Constants.MAX_SAFE_SMALL_INTEGER, DECORATIONS.charInsertWholeLine));
17511752
}
17521753
result.overviewZones.push(new OverviewRulerZone(
17531754
lineChange.modifiedStartLineNumber,
@@ -1861,7 +1862,7 @@ class DiffEditorWidgetInline extends DiffEditorWidgetStyle implements IDiffEdito
18611862
// Add overview zones in the overview ruler
18621863
if (isChangeOrDelete(lineChange)) {
18631864
result.decorations.push({
1864-
range: new Range(lineChange.originalStartLineNumber, 1, lineChange.originalEndLineNumber, Number.MAX_VALUE),
1865+
range: new Range(lineChange.originalStartLineNumber, 1, lineChange.originalEndLineNumber, Constants.MAX_SAFE_SMALL_INTEGER),
18651866
options: DECORATIONS.lineDeleteMargin
18661867
});
18671868

@@ -1892,7 +1893,7 @@ class DiffEditorWidgetInline extends DiffEditorWidgetStyle implements IDiffEdito
18921893
// Add decorations & overview zones
18931894
if (isChangeOrInsert(lineChange)) {
18941895
result.decorations.push({
1895-
range: new Range(lineChange.modifiedStartLineNumber, 1, lineChange.modifiedEndLineNumber, Number.MAX_VALUE),
1896+
range: new Range(lineChange.modifiedStartLineNumber, 1, lineChange.modifiedEndLineNumber, Constants.MAX_SAFE_SMALL_INTEGER),
18961897
options: (renderIndicators ? DECORATIONS.lineInsertWithSign : DECORATIONS.lineInsert)
18971898
});
18981899

@@ -1928,7 +1929,7 @@ class DiffEditorWidgetInline extends DiffEditorWidgetStyle implements IDiffEdito
19281929
}
19291930
}
19301931
} else {
1931-
result.decorations.push(createDecoration(lineChange.modifiedStartLineNumber, 1, lineChange.modifiedEndLineNumber, Number.MAX_VALUE, DECORATIONS.charInsertWholeLine));
1932+
result.decorations.push(createDecoration(lineChange.modifiedStartLineNumber, 1, lineChange.modifiedEndLineNumber, Constants.MAX_SAFE_SMALL_INTEGER, DECORATIONS.charInsertWholeLine));
19321933
}
19331934
}
19341935
}

src/vs/editor/common/config/editorOptions.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import * as nls from 'vs/nls';
77
import * as platform from 'vs/base/common/platform';
88
import { ScrollbarVisibility } from 'vs/base/common/scrollable';
99
import { FontInfo } from 'vs/editor/common/config/fontInfo';
10-
import { Constants } from 'vs/editor/common/core/uint';
10+
import { Constants } from 'vs/base/common/uint';
1111
import { USUAL_WORD_SEPARATORS } from 'vs/editor/common/model/wordHelper';
1212
import { AccessibilitySupport } from 'vs/platform/accessibility/common/accessibility';
1313
import { isObject } from 'vs/base/common/types';

src/vs/editor/common/core/characterClassifier.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* Licensed under the MIT License. See License.txt in the project root for license information.
44
*--------------------------------------------------------------------------------------------*/
55

6-
import { toUint8 } from 'vs/editor/common/core/uint';
6+
import { toUint8 } from 'vs/base/common/uint';
77

88
/**
99
* A fast character classifier that uses a compact array for ASCII values.

src/vs/editor/common/modes/linkComputer.ts

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55

66
import { CharCode } from 'vs/base/common/charCode';
77
import { CharacterClassifier } from 'vs/editor/common/core/characterClassifier';
8-
import { Uint8Matrix } from 'vs/editor/common/core/uint';
98
import { ILink } from 'vs/editor/common/modes';
109

1110
export interface ILinkComputerTarget {
@@ -33,6 +32,32 @@ export const enum State {
3332

3433
export type Edge = [State, number, State];
3534

35+
export class Uint8Matrix {
36+
37+
private readonly _data: Uint8Array;
38+
public readonly rows: number;
39+
public readonly cols: number;
40+
41+
constructor(rows: number, cols: number, defaultValue: number) {
42+
const data = new Uint8Array(rows * cols);
43+
for (let i = 0, len = rows * cols; i < len; i++) {
44+
data[i] = defaultValue;
45+
}
46+
47+
this._data = data;
48+
this.rows = rows;
49+
this.cols = cols;
50+
}
51+
52+
public get(row: number, col: number): number {
53+
return this._data[row * this.cols + col];
54+
}
55+
56+
public set(row: number, col: number, value: number): void {
57+
this._data[row * this.cols + col] = value;
58+
}
59+
}
60+
3661
export class StateMachine {
3762

3863
private readonly _states: Uint8Matrix;

src/vs/editor/common/viewLayout/lineDecorations.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*--------------------------------------------------------------------------------------------*/
55

66
import * as strings from 'vs/base/common/strings';
7-
import { Constants } from 'vs/editor/common/core/uint';
7+
import { Constants } from 'vs/base/common/uint';
88
import { InlineDecoration, InlineDecorationType } from 'vs/editor/common/viewModel/viewModel';
99
import { equals } from 'vs/base/common/arrays';
1010

0 commit comments

Comments
 (0)