ICU: per-item zstd decompression hook for compressed libicudata#31200
Merged
Claude / Claude Code Review
completed
May 22, 2026 in 10m 28s
Code review found 1 important issue
Found 8 candidates, confirmed 1. See review comments for details.
Details
| Severity | Count |
|---|---|
| 🔴 Important | 1 |
| 🟡 Nit | 0 |
| 🟣 Pre-existing | 0 |
| Severity | File:Line | Issue |
|---|---|---|
| 🔴 Important | src/jsc/bindings/bun_icu_decompress.cpp:67 |
tryAlignedMalloc debug ASSERT fires when dlen is not 16-aligned |
Annotations
Check failure on line 67 in src/jsc/bindings/bun_icu_decompress.cpp
claude / Claude Code Review
tryAlignedMalloc debug ASSERT fires when dlen is not 16-aligned
`MimallocMalloc::tryAlignedMalloc(dlen, 16)` will trip the debug `ASSERT(((alignment - 1) & size) == 0)` at MimallocWTFMalloc.h:82 whenever the decompressed item size isn't a multiple of 16 — ICU `.res` items are only 4-byte-aligned, and the zstd frame's content size is the raw item length. The PR's test matrix lists baseline / compressed-release / compressed-LTO but not compressed-debug, so this path hasn't been exercised with `ASSERT_ENABLED`. Round the allocation size up, e.g. `tryAlignedMall
Loading