From d0d63cff8ac29b294d6751c61528bb01c4d30d64 Mon Sep 17 00:00:00 2001
From: charliesome <charliesome@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>
Date: Sat, 31 Aug 2013 06:07:21 +0000
Subject: * 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
---
 insns.def | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

(limited to 'insns.def')

diff --git a/insns.def b/insns.def
index 9a516ccbcd..20ba34f067 100644
--- a/insns.def
+++ b/insns.def
@@ -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);
     }
 }
 
-- 
cgit v1.2.3

