PTAL. This CL serves as the immediate fix for libc++ hardening aborts triggered by nested vectors (e.g., HeapVector<HeapVector<...>>) on 32-bit DCHECK builds.
Root Cause:
In DCHECK builds, VectorBufferBase previously used an int64_t for modifications_, artificially boosting alignof(HeapVector) to 8 bytes on 32-bit systems. Oilpan's backing store wrapper (HeapVectorBacking<T>) did not inherit element alignment, resulting in 4-byte aligned backing heap allocations. Casting a 4-byte aligned backing buffer to an 8-byte aligned inner HeapVector pointer triggered fatal memory alignment aborts.
I landed an immediate fix by changing the counter type(https://crrev.com/c/8176251) but I thought we should fix this too.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |