summaryrefslogtreecommitdiff
path: root/object.c
diff options
context:
space:
mode:
authornagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-03-29 12:56:40 +0000
committernagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-03-29 12:56:40 +0000
commita64103fbfe0218dcd6f1997e80c60a887897a52d (patch)
tree5e574e984eb419247a1a08c9d033211061c57ead /object.c
parentd084c4f43d975f1f9b3f7bf12a46506dbbea2a2d (diff)
* string.c (rb_String): Kernel#String should call to_str before to_s.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31209 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'object.c')
-rw-r--r--object.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/object.c b/object.c
index b25c0af1c2..fad726cd73 100644
--- a/object.c
+++ b/object.c
@@ -2360,7 +2360,10 @@ rb_num2dbl(VALUE val)
VALUE
rb_String(VALUE val)
{
- return rb_convert_type(val, T_STRING, "String", "to_s");
+ VALUE tmp = rb_check_string_type(val);
+ if (NIL_P(tmp))
+ tmp = rb_convert_type(val, T_STRING, "String", "to_s");
+ return tmp;
}