diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2021-10-26 20:14:19 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2021-10-26 20:17:00 +0900 |
commit | afdca0e780760e008e26f4c9fc7262a0a4fe56bb (patch) | |
tree | 01f2c8186c65bd792f8a57355f2e63c013da8510 /numeric.c | |
parent | e1ecda297e1b184d824fb4045169a20bba98a9ea (diff) |
Fix unaligned access to `double` in RFloat
Diffstat (limited to 'numeric.c')
-rw-r--r-- | numeric.c | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -951,7 +951,11 @@ rb_float_new_in_heap(double d) { NEWOBJ_OF(flt, struct RFloat, rb_cFloat, T_FLOAT | (RGENGC_WB_PROTECTED_FLOAT ? FL_WB_PROTECTED : 0)); +#if UNALIGNED_DOUBLE_ACCESS flt->float_value = d; +#else + memcpy(&flt->float_value, &d, sizeof(double)); +#endif OBJ_FREEZE((VALUE)flt); return (VALUE)flt; } |