aboutsummaryrefslogtreecommitdiffstats
path: root/vm_eval.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-08-22 05:43:59 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-08-22 05:43:59 +0000
commit38b6d340d95a614ad72937b888240f8a5a2cf92f (patch)
tree74c48ce89e941733131a01f1188e2d759a352100 /vm_eval.c
parent75601ed088345499fc8779e0104b8a6426ee19a0 (diff)
downloadruby-38b6d340d95a614ad72937b888240f8a5a2cf92f.tar.gz
vm_eval.c: pass thread too
* vm_eval.c (check_funcall_missing): pass same thread to call. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51664 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'vm_eval.c')
-rw-r--r--vm_eval.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/vm_eval.c b/vm_eval.c
index ee22bba13d..65bb81afc1 100644
--- a/vm_eval.c
+++ b/vm_eval.c
@@ -347,6 +347,7 @@ rb_call0(VALUE recv, ID mid, int argc, const VALUE *argv,
}
struct rescue_funcall_args {
+ rb_thread_t *th;
VALUE defined_class;
VALUE recv;
ID mid;
@@ -358,7 +359,7 @@ struct rescue_funcall_args {
static VALUE
check_funcall_exec(struct rescue_funcall_args *args)
{
- return call_method_entry(GET_THREAD(), args->defined_class,
+ return call_method_entry(args->th, args->defined_class,
args->recv, idMethodMissing,
args->me, args->argc, args->argv);
}
@@ -397,6 +398,7 @@ check_funcall_missing(rb_thread_t *th, VALUE klass, VALUE recv, ID mid, int argc
new_args[0] = ID2SYM(mid);
MEMCPY(new_args+1, argv, VALUE, argc);
th->method_missing_reason = MISSING_NOENTRY;
+ args.th = th;
args.recv = recv;
args.me = me;
args.mid = mid;