diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2000-12-25 06:29:27 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2000-12-25 06:29:27 +0000 |
commit | 99020d6e50702eb371111d73280eb80b4b29ba5b (patch) | |
tree | f2ec985d66f5d99a203277cf0961d960228d441e /hash.c | |
parent | 8f6673c2d4a7e6ff470b584141c590e4b066f5e2 (diff) |
001225
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1075 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'hash.c')
-rw-r--r-- | hash.c | 13 |
1 files changed, 9 insertions, 4 deletions
@@ -59,11 +59,15 @@ rb_any_cmp(a, b) VALUE a, b; { VALUE args[2]; - if (FIXNUM_P(a)) { - if (FIXNUM_P(b)) return a != b; + if (FIXNUM_P(a) && FIXNUM_P(b)) { + return a != b; } - else if (TYPE(a) == T_STRING) { - if (TYPE(b) == T_STRING) return rb_str_cmp(a, b); + if (TYPE(a) == T_STRING && RBASIC(a)->klass == rb_cString && + TYPE(b) == T_STRING && RBASIC(b)->klass == rb_cString) { + return rb_str_cmp(a, b); + } + if (SYMBOL_P(a) && SYMBOL_P(b)) { + return a != b; } args[0] = a; @@ -79,6 +83,7 @@ rb_any_hash(a) switch (TYPE(a)) { case T_FIXNUM: + case T_SYMBOL: hval = a; break; |