diff options
author | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-08-24 22:02:03 +0000 |
---|---|---|
committer | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-08-24 22:02:03 +0000 |
commit | beb26e1b491f8d9fd20a2d944f036100cd1abac3 (patch) | |
tree | 55827b3594aa69f0c294e464598685630b161b78 /vm_insnhelper.c | |
parent | 72107daf0e9b35d28ae75c728134b64d2383cb65 (diff) | |
download | ruby-beb26e1b491f8d9fd20a2d944f036100cd1abac3.tar.gz |
* vm_insnhelper.h, vm_insnhelper.c, vm.c, vm_method.c, insns.def:
Manage a redefinition of special methods for each classes.
A patch from Joel Gouly <joel.gouly@gmail.com>. Thanks!
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33059 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'vm_insnhelper.c')
-rw-r--r-- | vm_insnhelper.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/vm_insnhelper.c b/vm_insnhelper.c index 918c7fb7de..9410963d5c 100644 --- a/vm_insnhelper.c +++ b/vm_insnhelper.c @@ -1696,13 +1696,13 @@ VALUE opt_eq_func(VALUE recv, VALUE obj, IC ic) { if (FIXNUM_2_P(recv, obj) && - BASIC_OP_UNREDEFINED_P(BOP_EQ)) { + BASIC_OP_UNREDEFINED_P(BOP_EQ, FIXNUM_REDEFINED_OP_FLAG)) { return (recv == obj) ? Qtrue : Qfalse; } else if (!SPECIAL_CONST_P(recv) && !SPECIAL_CONST_P(obj)) { if (HEAP_CLASS_OF(recv) == rb_cFloat && HEAP_CLASS_OF(obj) == rb_cFloat && - BASIC_OP_UNREDEFINED_P(BOP_EQ)) { + BASIC_OP_UNREDEFINED_P(BOP_EQ, FLOAT_REDEFINED_OP_FLAG)) { double a = RFLOAT_VALUE(recv); double b = RFLOAT_VALUE(obj); @@ -1713,7 +1713,7 @@ opt_eq_func(VALUE recv, VALUE obj, IC ic) } else if (HEAP_CLASS_OF(recv) == rb_cString && HEAP_CLASS_OF(obj) == rb_cString && - BASIC_OP_UNREDEFINED_P(BOP_EQ)) { + BASIC_OP_UNREDEFINED_P(BOP_EQ, STRING_REDEFINED_OP_FLAG)) { return rb_str_equal(recv, obj); } } |