diff --git a/ChangeLog b/ChangeLog index 4678b61a24..f2b89c44ca 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Wed Sep 10 02:51:38 2014 Koichi Sasada + + * iseq.c (rb_iseq_clone): Should not insert write barrier from + non-RVALUE data (to non-RVALUE data, of course). + + Ruby 2.1 also has a same problem. + Wed Sep 10 02:33:08 2014 Koichi Sasada * parse.y (setup_fake_str): fake strings should not set class by diff --git a/iseq.c b/iseq.c index 32d9967964..700a161f6b 100644 --- a/iseq.c +++ b/iseq.c @@ -1943,7 +1943,7 @@ rb_iseq_clone(VALUE iseqval, VALUE newcbase) if (iseq0->cref_stack->nd_next) { RB_OBJ_WRITE(iseq1->cref_stack, &iseq1->cref_stack->nd_next, iseq0->cref_stack->nd_next); } - RB_OBJ_WRITE(iseq1, &iseq1->klass, newcbase); + RB_OBJ_WRITE(iseq1->self, &iseq1->klass, newcbase); } return newiseq; diff --git a/version.h b/version.h index 341b57cdbc..4275f66862 100644 --- a/version.h +++ b/version.h @@ -1,6 +1,6 @@ #define RUBY_VERSION "2.1.2" #define RUBY_RELEASE_DATE "2014-09-10" -#define RUBY_PATCHLEVEL 228 +#define RUBY_PATCHLEVEL 229 #define RUBY_RELEASE_YEAR 2014 #define RUBY_RELEASE_MONTH 9