diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1998-07-13 04:38:01 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1998-07-13 04:38:01 +0000 |
commit | 35c6e6af5ba2c405a91dc6b9e4af833d0979ed22 (patch) | |
tree | 7f54dda0bcda0a58eb5229def03ce3015c98a2b5 /object.c | |
parent | 71d408a6c3298b229c0f1d2ff7159ca410a4c612 (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.c | 12 |
1 files changed, 8 insertions, 4 deletions
@@ -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); } |