diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2019-07-25 17:15:48 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2019-07-25 17:31:40 +0900 |
commit | a50c844645c337742584560abc2e2b63bf566e79 (patch) | |
tree | 64552cdc7fd635c171b206de56da120f93a002d7 /vm_insnhelper.h | |
parent | 0f9ec4a877496278534e5956b640ed43a02229ad (diff) |
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
Diffstat (limited to 'vm_insnhelper.h')
-rw-r--r-- | vm_insnhelper.h | 6 |
1 files 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 |