summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-12-07 18:46:27 +0000
committerko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-12-07 18:46:27 +0000
commit8dce6b15cc9eaa12d89926570cffd7ac7634fb83 (patch)
tree4609424abfa24347bffac0951cbdbe9f267536b8
parent21366b17a5009d13b9f0ebf78e5a248494835847 (diff)
* iseq.c (iseq_load): disable peephole optimization option
because apply it multiple times change the sequence. (iseq != peephole_optimize(load(iseq.to_a))) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52924 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog6
-rw-r--r--iseq.c1
2 files changed, 7 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 0ede8ca47d..34023b0fae 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Tue Dec 8 03:44:51 2015 Koichi Sasada <ko1@atdot.net>
+
+ * iseq.c (iseq_load): disable peephole optimization option
+ because apply it multiple times change the sequence.
+ (iseq != peephole_optimize(load(iseq.to_a)))
+
Tue Dec 8 03:43:21 2015 Koichi Sasada <ko1@atdot.net>
* compile.c (rb_iseq_build_from_ary): do not allocate table
diff --git a/iseq.c b/iseq.c
index c8f468662f..17bfee4981 100644
--- a/iseq.c
+++ b/iseq.c
@@ -565,6 +565,7 @@ iseq_load(VALUE data, const rb_iseq_t *parent, VALUE opt)
}
make_compile_option(&option, opt);
+ option.peephole_optimization = FALSE; /* because peephole optimization can modify original iseq */
prepare_iseq_build(iseq, name, path, absolute_path, first_lineno,
parent, (enum iseq_type)iseq_type, &option);