diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-08-05 06:55:36 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-08-05 06:55:36 +0000 |
commit | 1ded4dbd110868891d1255bc11845c1130a0ca3e (patch) | |
tree | 6b65267c4722e6645143f66e572931fcd1661513 /vm_eval.c | |
parent | c3a750ebee3960f5ee47bcba4e60d8c3585eb843 (diff) | |
download | ruby-1ded4dbd110868891d1255bc11845c1130a0ca3e.tar.gz |
* test/ruby/test_object.rb: tests that respond_to? returns false.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32857 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'vm_eval.c')
-rw-r--r-- | vm_eval.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -265,10 +265,12 @@ check_funcall_failed(struct rescue_funcall_args *args, VALUE e) static VALUE check_funcall(VALUE recv, ID mid, int argc, VALUE *argv) { - const rb_method_entry_t *me = rb_method_entry(CLASS_OF(recv), idRespond_to); + VALUE klass = CLASS_OF(recv); + const rb_method_entry_t *me; rb_thread_t *th = GET_THREAD(); int call_status; + me = rb_method_entry(klass, idRespond_to); if (me && !(me->flag & NOEX_BASIC)) { VALUE args[2] = {ID2SYM(mid), Qtrue}; if (!RTEST(vm_call0(th, recv, idRespond_to, 2, args, me))) { @@ -279,7 +281,7 @@ check_funcall(VALUE recv, ID mid, int argc, VALUE *argv) me = rb_search_method_entry(recv, mid); call_status = rb_method_call_status(th, me, CALL_FCALL, Qundef); if (call_status != NOEX_OK) { - if (rb_method_basic_definition_p(CLASS_OF(recv), idMethodMissing)) { + if (rb_method_basic_definition_p(klass, idMethodMissing)) { return Qundef; } else { |