Files
mruby-mruby/mrbgems/mruby-random/src
Yukihiro "Matz" Matsumoto 6dd5f05525 mruby-random: split 64-bit state into two 32-bit values on 32-bit platforms
on 32-bit systems, the rand_state struct with uint64_t state (8 bytes,
8-byte aligned) followed by uint32_t seed_value (4 bytes) resulted in
16 bytes due to padding, exceeding the 12-byte ISTRUCT_DATA_SIZE limit.
this caused the static_assert at line 540 to fail.

split the state field into state_lo and state_hi on MRB_32BIT platforms
to achieve perfect 12-byte alignment (4+4+4) without padding. add
GET_STATE/SET_STATE macros to provide uniform access across platforms.

Co-authored-by: Claude <noreply@anthropic.com>
2025-10-16 17:50:03 +09:00
..