Repository navigation
Commit b2973c2
fix(read): bound the character window to the byte budget before slicing
A large `max_chars` on a very long single-line file sliced the whole requested
window before the 50 KB byte limit applied, so a minified or generated file could
allocate hundreds of megabytes although only about 50 KB can be returned. The
slice end is now clamped to the byte budget (one character is at least one byte)
before slicing; the UTF-8 refinement, surrogate-pair handling, clipping and
continuation output are unchanged.
Test: a 20 MB single-line file read with `max_chars: 10_000_000` returns the same
clipped output and the slice requested from the string is bounded by the budget.
Co-Authored-By: Claude Fable 5.1 <[email protected]>1 parent 1453824 commit b2973c2
2 files changed
Lines changed: 43 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
182 | 182 | | |
183 | 183 | | |
184 | 184 | | |
185 | | - | |
| 185 | + | |
| 186 | + | |
186 | 187 | | |
187 | 188 | | |
188 | 189 | | |
189 | | - | |
| 190 | + | |
190 | 191 | | |
191 | 192 | | |
192 | 193 | | |
193 | 194 | | |
194 | | - | |
| 195 | + | |
195 | 196 | | |
196 | 197 | | |
197 | 198 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
3 | 6 | | |
4 | 7 | | |
5 | 8 | | |
| |||
382 | 385 | | |
383 | 386 | | |
384 | 387 | | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
385 | 424 | | |
386 | 425 | | |
387 | 426 | | |
| |||
0 commit comments