diff options
| author | Jun Kato <i@junkato.jp> | 2019-05-08 01:02:31 +0900 |
|---|---|---|
| committer | Ryan Dahl <ry@tinyclouds.org> | 2019-05-07 12:02:31 -0400 |
| commit | 480b9e71ff5b377681341b2f28b6f36a44268172 (patch) | |
| tree | 801deac4e1015a66f9b01561cc9cb59e76de84a3 /bytes/bytes.ts | |
| parent | 14afad59aa64b23d983f4ac35068e958a4f25f48 (diff) | |
[bytes] fix bytesFindIndex and bytesFindLastIndex (denoland/deno_std#381)
Original: https://github.com/denoland/deno_std/commit/87142529163ea047066a2991f51cb2cf3001df74
Diffstat (limited to 'bytes/bytes.ts')
| -rw-r--r-- | bytes/bytes.ts | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/bytes/bytes.ts b/bytes/bytes.ts index 080ec4445..a79a9ed56 100644 --- a/bytes/bytes.ts +++ b/bytes/bytes.ts @@ -6,10 +6,11 @@ export function bytesFindIndex(a: Uint8Array, pat: Uint8Array): number { for (let i = 0; i < a.length; i++) { if (a[i] !== s) continue; const pin = i; - let matched = 1; + let matched = 1, + j = i; while (matched < pat.length) { - i++; - if (a[i] !== pat[i - pin]) { + j++; + if (a[j] !== pat[j - pin]) { break; } matched++; @@ -27,10 +28,11 @@ export function bytesFindLastIndex(a: Uint8Array, pat: Uint8Array): number { for (let i = a.length - 1; i >= 0; i--) { if (a[i] !== e) continue; const pin = i; - let matched = 1; + let matched = 1, + j = i; while (matched < pat.length) { - i--; - if (a[i] !== pat[pat.length - 1 - (pin - i)]) { + j--; + if (a[j] !== pat[pat.length - 1 - (pin - j)]) { break; } matched++; |
