summaryrefslogtreecommitdiff
path: root/bytes/bytes.ts
diff options
context:
space:
mode:
authorJun Kato <i@junkato.jp>2019-05-08 01:02:31 +0900
committerRyan Dahl <ry@tinyclouds.org>2019-05-07 12:02:31 -0400
commit480b9e71ff5b377681341b2f28b6f36a44268172 (patch)
tree801deac4e1015a66f9b01561cc9cb59e76de84a3 /bytes/bytes.ts
parent14afad59aa64b23d983f4ac35068e958a4f25f48 (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.ts14
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++;