diff options
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++; |
