Fix signed integer overflow when parsing INT_MIN (-2147483648) by
negating in int64_t space before casting to int32_t. The previous
code attempted to negate the result after casting, which is undefined
behavior for INT_MIN.
Also add bootstrap-cmake-linux-ubsan.sh for UBSan builds.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Update ARM64 runners from ubuntu-22.04-arm to ubuntu-24.04-arm
- Update LLVM apt repository from jammy to noble for Ubuntu 24.04
- Remove clang default from bootstrap-cmake-linux.sh; now uses
system default compiler unless CC/CXX are explicitly set
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The script was hardcoding CXX=clang++ CC=clang, ignoring any
user-provided environment variables. Now uses shell parameter
expansion to default to clang only if CC/CXX are not already set.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fix move constructor/assignment operator to transfer value array storage
fields (_value_array_storage, _value_array_refs, _use_value_array)
- Fix copy constructor/assignment operator for value array storage fields
- Add bounds checking for blocked[] and offsets[] array access in pprint
- Strip TYPE_ID_1D_ARRAY_BIT before type lookup in print_pod_value_dispatch
and get_pod_type_size to handle array element types correctly
- Add handler for value array storage path in get_samples()
- Set _use_pod=false when using value array storage
This fixes the "Unknown type_id: 1048618" error when printing array-typed
timeSamples (e.g., color3f[]) and prevents heap-buffer-overflow when
printing timeSamples with None values.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This change completes the TypedArray packed pointer implementation by:
- Renaming original TypedArray class to TypedArrayImpl
- Introducing TypedArray as a packed pointer wrapper using PackedPointer<TypedArrayImpl<T>>
- Updating all call sites to use operator-> for packed pointer access
- Removing cassert dependency and assert calls for better portability
- Adding explicit clang compiler selection in bootstrap script
This enables efficient deduplication of TimeSamples data through pointer packing
while maintaining a similar API surface.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>