diff options
author | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-06-10 15:59:05 +0000 |
---|---|---|
committer | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-06-10 15:59:05 +0000 |
commit | 32e3478725e1fde80e8f97ad95550120ece251a0 (patch) | |
tree | be2d8d11a8cf27c215a65d754b4deae6a6bd6cc6 /insns.def | |
parent | 940104867afa60068c4cc8410b3b0597509832cd (diff) |
merges r28101 from trunk into ruby_1_9_2.
--
* insns.def (defined): respond_to_missing? may not be available
(for BasicObject instances).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_2@28267 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'insns.def')
-rw-r--r-- | insns.def | 11 |
1 files changed, 9 insertions, 2 deletions
@@ -799,8 +799,15 @@ defined } } } - if (RTEST(rb_funcall(v, rb_intern("respond_to_missing?"), 2, obj, Qfalse))) - expr_type = "method"; + { + VALUE args[2]; + VALUE r; + + args[0] = obj; args[1] = Qfalse; + r = rb_check_funcall(v, rb_intern("respond_to_missing?"), 2, args); + if (r != Qundef && RTEST(r)) + expr_type = "method"; + } break; } case DEFINED_YIELD: |