summaryrefslogtreecommitdiffstats
path: root/string.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2001-11-29 15:57:25 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2001-11-29 15:57:25 +0000
commitd300a4a2fb3eeaa5fad17adfc0407a885c9152ba (patch)
treedd7c8c1a9bb43c226ca5e1702b418f11a94ffd3e /string.c
parent8c1a41589c8cdd898b0da42cef09f9c68e0bcf1f (diff)
downloadruby-d300a4a2fb3eeaa5fad17adfc0407a885c9152ba.tar.gz
ruby-d300a4a2fb3eeaa5fad17adfc0407a885c9152ba.tar.xz
ruby-d300a4a2fb3eeaa5fad17adfc0407a885c9152ba.zip
* string.c (rb_str_equal): object with to_str must be treated as a
string. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@1864 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'string.c')
-rw-r--r--string.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/string.c b/string.c
index 1e55148f4..f1dd8b3b3 100644
--- a/string.c
+++ b/string.c
@@ -722,8 +722,10 @@ rb_str_equal(str1, str2)
VALUE str1, str2;
{
if (str1 == str2) return Qtrue;
- if (TYPE(str2) != T_STRING)
- return Qfalse;
+ if (TYPE(str2) != T_STRING) {
+ str2 = rb_check_convert_type(str2, T_STRING, "String", "to_str");
+ if (NIL_P(str2)) return Qfalse;
+ }
if (RSTRING(str1)->len == RSTRING(str2)->len
&& rb_str_cmp(str1, str2) == 0) {