diff options
author | charliesome <charliesome@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-08-31 06:07:21 +0000 |
---|---|---|
committer | charliesome <charliesome@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-08-31 06:07:21 +0000 |
commit | d0d63cff8ac29b294d6751c61528bb01c4d30d64 (patch) | |
tree | 28290b6adb997772aee4a541bb70adcac486b838 /insns.def | |
parent | e1fd7fa03e254e5bcb99f14d2ef56bf144afb2fc (diff) |
* compile.c (NODE_MATCH3): pass CALL_INFO to opt_regexpmatch2
* insns.def (opt_regexpmatch2): use CALL_SIMPLE_METHOD to call =~ if
the receiver is not a T_STRING [Bug #8847] [ruby-core:56916]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42742 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'insns.def')
-rw-r--r-- | insns.def | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -2090,7 +2090,7 @@ opt_regexpmatch1 */ DEFINE_INSN opt_regexpmatch2 -() +(CALL_INFO ci) (VALUE obj2, VALUE obj1) (VALUE val) { @@ -2098,7 +2098,9 @@ opt_regexpmatch2 val = rb_reg_match(obj1, obj2); } else { - val = rb_funcall(obj2, idEqTilde, 1, obj1); + PUSH(obj2); + PUSH(obj1); + CALL_SIMPLE_METHOD(obj2); } } |