From a50c844645c337742584560abc2e2b63bf566e79 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Thu, 25 Jul 2019 17:15:48 +0900 Subject: [PATCH] Initialize vm_throw_data::throw_state as int As `struct vm_throw_data::throw_state` is initialized as `VALUE` by rb_imemo_new, extended MSW part is assigned to it on LP64 big-endian platforms. Fix up 1feda1c2b091b950efcaa481a11fd660efa9e717 --- vm_insnhelper.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/vm_insnhelper.h b/vm_insnhelper.h index 920ea6ac17..f937af8b59 100644 --- a/vm_insnhelper.h +++ b/vm_insnhelper.h @@ -180,9 +180,11 @@ enum vm_regan_acttype { #define INC_GLOBAL_CONSTANT_STATE() (++ruby_vm_global_constant_state) static inline struct vm_throw_data * -THROW_DATA_NEW(VALUE val, const rb_control_frame_t *cf, VALUE st) +THROW_DATA_NEW(VALUE val, const rb_control_frame_t *cf, int st) { - return (struct vm_throw_data *)rb_imemo_new(imemo_throw_data, val, (VALUE)cf, st, 0); + struct vm_throw_data *obj = (struct vm_throw_data *)rb_imemo_new(imemo_throw_data, val, (VALUE)cf, 0, 0); + obj->throw_state = st; + return obj; } static inline VALUE