summaryrefslogtreecommitdiff
path: root/object.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-07-13 04:38:01 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-07-13 04:38:01 +0000
commit35c6e6af5ba2c405a91dc6b9e4af833d0979ed22 (patch)
tree7f54dda0bcda0a58eb5229def03ce3015c98a2b5 /object.c
parent71d408a6c3298b229c0f1d2ff7159ca410a4c612 (diff)
str2cstr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@266 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'object.c')
-rw-r--r--object.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/object.c b/object.c
index 6bfa10335b..3dc1243141 100644
--- a/object.c
+++ b/object.c
@@ -547,8 +547,9 @@ class_s_new(argc, argv)
{
VALUE super, klass;
- rb_scan_args(argc, argv, "01", &super);
- if (NIL_P(super)) super = cObject;
+ if (rb_scan_args(argc, argv, "01", &super) == 0) {
+ super = cObject;
+ }
Check_Type(super, T_CLASS);
if (FL_TEST(super, FL_SINGLETON)) {
TypeError("can't make subclass of virtual class");
@@ -770,7 +771,11 @@ fail_to_type(arg)
struct arg_to *arg;
{
TypeError("failed to convert %s into %s",
- rb_class2name(CLASS_OF(arg->val)), arg->s);
+ NIL_P(arg->val) ? "nil" :
+ arg->val == TRUE ? "true" :
+ arg->val == FALSE ? "false" :
+ rb_class2name(CLASS_OF(arg->val)),
+ arg->s);
}
VALUE
@@ -838,7 +843,6 @@ str2cstr(str, len)
VALUE str;
int *len;
{
- if (NIL_P(str)) return NULL;
if (TYPE(str) != T_STRING) {
str = str_to_str(str);
}