From e3a8c626308cb8546baaf75e6133df304142f0c8 Mon Sep 17 00:00:00 2001 From: matz Date: Wed, 24 Apr 2002 04:54:16 +0000 Subject: * io.c (rb_io_mode_flags): both 'r+b' and 'rb+' should be allowed. * io.c (rb_io_mode_modenum): ditto. * gc.c (rb_memerror): rename from mem_error, and exported. * gc.c (Init_GC): pre-allocate NoMemoryError instance. * object.c (convert_type): error message changed from "failed to convert" to "cannot convert", since it does not try to convert if an object does not respond to the converting method. * eval.c (block_pass): convert Method to Proc using rb_check_convert_type(). * object.c (rb_check_convert_type): always convert T_DATA * eval.c (rb_thread_cleanup): should not terminate main_thread by Fatal error. * regex.c (is_in_list): need to not exclude NUL and NEWLINE. * re.c (rb_reg_expr_str): wrong backslash escapement. * re.c (rb_reg_expr_str): do not escape embedded space characters. * marshal.c (w_object): T_DATA process patch from Joel VanderWerf . This is temporary hack; it remains undocumented, and it will be removed when marshaling is re-designed. * marshal.c (r_object): ditto. * numeric.c (num_step): Integer#step is moved to Numeric#step; Fixnum#step is merged into this method. * numeric.c (int_dotimes): Fixnum#times is merged. * numeric.c (int_upto): Fixnum#upto is merged. * numeric.c (int_downto): Fixnum#downto is merged. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2401 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- object.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'object.c') diff --git a/object.c b/object.c index dd3ad41664..99b8767895 100644 --- a/object.c +++ b/object.c @@ -867,7 +867,7 @@ convert_type(val, tname, method, raise) m = rb_intern(method); if (!rb_respond_to(val, m)) { if (raise) { - rb_raise(rb_eTypeError, "failed to convert %s into %s", + rb_raise(rb_eTypeError, "cannot convert %s into %s", NIL_P(val) ? "nil" : val == Qtrue ? "true" : val == Qfalse ? "false" : @@ -906,7 +906,8 @@ rb_check_convert_type(val, type, tname, method) { VALUE v; - if (TYPE(val) == type) return val; + /* always convert T_DATA */ + if (TYPE(val) == type && type != T_DATA) return val; v = convert_type(val, tname, method, Qfalse); if (NIL_P(v)) return Qnil; if (TYPE(v) != type) { -- cgit v1.2.3