[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]