ruby-changes:56660
From: Nobuyoshi <ko1@a...>
Date: Thu, 25 Jul 2019 17:34:44 +0900 (JST)
Subject: [ruby-changes:56660] Nobuyoshi Nakada: a50c844645 (master): Initialize vm_throw_data::throw_state as int
https://git.ruby-lang.org/ruby.git/commit/?id=a50c844645 From a50c844645c337742584560abc2e2b63bf566e79 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada <nobu@r...> Date: Thu, 25 Jul 2019 17:15:48 +0900 Subject: 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 diff --git a/vm_insnhelper.h b/vm_insnhelper.h index 920ea6a..f937af8 100644 --- a/vm_insnhelper.h +++ b/vm_insnhelper.h @@ -180,9 +180,11 @@ enum vm_regan_acttype { https://github.com/ruby/ruby/blob/trunk/vm_insnhelper.h#L180 #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 -- cgit v0.10.2 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/