summaryrefslogtreecommitdiff
path: root/class.c
diff options
context:
space:
mode:
authorko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-06-03 22:27:51 (GMT)
committerko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-06-03 22:27:51 (GMT)
commit9e73d45e0f38fddc7a117c5bc2eab103573e5986 (patch)
treec399c77a5b8318be4521dbf0033214fcbed0d601 /class.c
parent9375ff5b06704b2fbad3f740cecf10399786acfd (diff)
* method.h: introduce rb_method_refined_t for refined method entry.
* class.c (move_refined_method): catch up this fix. * gc.c (mark_method_entry): ditto. * vm_eval.c (vm_call0_body): ditto. * vm_insnhelper.c (vm_call_method): ditto. * vm_method.c: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50761 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'class.c')
-rw-r--r--class.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/class.c b/class.c
index 1dea8b0..94ddd7c 100644
--- a/class.c
+++ b/class.c
@@ -913,9 +913,9 @@ move_refined_method(st_data_t key, st_data_t value, st_data_t data)
st_table *tbl = (st_table *) data;
if (me->def->type == VM_METHOD_TYPE_REFINED) {
- if (me->def->body.orig_me) {
- rb_method_entry_t *orig_me = me->def->body.orig_me, *new_me;
- me->def->body.orig_me = NULL;
+ if (me->def->body.refined.orig_me) {
+ rb_method_entry_t *orig_me = me->def->body.refined.orig_me, *new_me;
+ me->def->body.refined.orig_me = NULL;
new_me = rb_method_entry_clone(me);
st_add_direct(tbl, key, (st_data_t) new_me);
rb_method_entry_copy(me, orig_me);