summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--class.c1
-rw-r--r--version.h2
-rw-r--r--vm_insnhelper.c1
4 files changed, 10 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 36dcaae14f..cc3298d0ed 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Wed Feb 25 17:30:10 2015 NAKAMURA Usaku <usa@ruby-lang.org>
+
+ * class.c (clone_method): fixed missing assignment introduced by
+ previous commit.
+
+ * vm_insnhelper.c (rb_vm_rewrite_cref_stack): ditto.
+
Wed Feb 25 15:07:01 2015 Kazuki Tsujimoto <kazuki@callcc.net>
* vm_insnhelper.c (rb_vm_rewrite_cref_stack): copy nd_refinements
diff --git a/class.c b/class.c
index 60038fc5f4..8a0bba5a32 100644
--- a/class.c
+++ b/class.c
@@ -131,6 +131,7 @@ clone_method(VALUE klass, ID mid, const rb_method_entry_t *me)
newiseqval = rb_iseq_clone(me->def->body.iseq->self, klass);
GetISeqPtr(newiseqval, iseq);
rb_vm_rewrite_cref_stack(me->def->body.iseq->cref_stack, me->klass, klass, &new_cref);
+ iseq->cref_stack = new_cref;
rb_add_method(klass, mid, VM_METHOD_TYPE_ISEQ, iseq, me->flag);
RB_GC_GUARD(newiseqval);
}
diff --git a/version.h b/version.h
index 1b70859cc8..a7d4f06ec2 100644
--- a/version.h
+++ b/version.h
@@ -1,6 +1,6 @@
#define RUBY_VERSION "2.0.0"
#define RUBY_RELEASE_DATE "2015-02-25"
-#define RUBY_PATCHLEVEL 642
+#define RUBY_PATCHLEVEL 643
#define RUBY_RELEASE_YEAR 2015
#define RUBY_RELEASE_MONTH 2
diff --git a/vm_insnhelper.c b/vm_insnhelper.c
index 707739e98f..9d107bbebd 100644
--- a/vm_insnhelper.c
+++ b/vm_insnhelper.c
@@ -303,6 +303,7 @@ rb_vm_rewrite_cref_stack(NODE *node, VALUE old_klass, VALUE new_klass, NODE **ne
if (node->nd_clss == old_klass) {
new_node = NEW_CREF(new_klass);
COPY_CREF_OMOD(new_node, node);
+ new_node->nd_next = node->nd_next;
*new_cref_ptr = new_node;
return;
}