aboutsummaryrefslogtreecommitdiffstats
path: root/vm_insnhelper.h
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2019-07-25 17:15:48 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2019-07-25 17:31:40 +0900
commita50c844645c337742584560abc2e2b63bf566e79 (patch)
tree64552cdc7fd635c171b206de56da120f93a002d7 /vm_insnhelper.h
parent0f9ec4a877496278534e5956b640ed43a02229ad (diff)
downloadruby-a50c844645c337742584560abc2e2b63bf566e79.tar.gz
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.h6
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