path: root/marshal.c
diff options
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-12-19 09:20:20 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-12-19 09:20:20 +0000
commitbaa00aa2506745308a598ce91e65a727ba25f30f (patch)
treefc289dbd1d10586ba6537ab070a7f42bd7bc9cb6 /marshal.c
parenta0a14ed14a86b7204ba3e9d557a296ca08a8bb8d (diff)
* numeric.c (num_step): use DBL_EPSILON.
* array.c (rb_check_array_type): new function: return an array (convert if possible), or nil. * string.c (rb_check_string_type): new function: return a string (convert if possible), or nil. * numeric.c (rb_dbl_cmp): returns nil if values are not comparable. * numeric.c (fix_cmp,flo_cmp): use rb_num_coerce_cmp() * bignum.c (rb_big_cmp): ditto. * numeric.c (rb_num_coerce_cmp): new coercing function for "<=>", which does not raise TypeError. * numeric.c (do_coerce): can be supress exception now. * object.c (rb_mod_cmp): should return nil for non class/module objects. * re.c (rb_reg_eqq): return false if the argument is not a string. now returns boolean value. * class.c (rb_include_module): argument should be T_MODULE, not T_class, nor T_ICLASS. * eval.c (is_defined): "defined?" should return "assignment" for attribute assignment (e.g. and indexed assignment (e.g. a[2] = 44). * parse.y (aryset): use NODE_ATTRASGN. git-svn-id: svn+ssh:// b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'marshal.c')
1 files changed, 1 insertions, 1 deletions
diff --git a/marshal.c b/marshal.c
index 5d34b9e..25d08ac 100644
--- a/marshal.c
+++ b/marshal.c
@@ -752,7 +752,7 @@ r_bytes0(len, arg)
VALUE n = LONG2NUM(len);
str = rb_funcall2(src, s_read, 1, &n);
if (NIL_P(str)) goto too_short;
- Check_Type(str, T_STRING);
+ StringValue(str);
if (RSTRING(str)->len != len) goto too_short;
if (OBJ_TAINTED(str)) arg->taint = Qtrue;