From 74d5623029b0b8fb987a45190f3a3eac082990e1 Mon Sep 17 00:00:00 2001 From: matz Date: Fri, 31 Jan 2003 04:00:17 +0000 Subject: * variable.c (rb_obj_classname): new function. * string.c (rb_str_dup): should preserve original's class (but not hidden singleton class). * string.c (rb_str_substr): ditto. * parse.y: backout EXPR_CMDARG removal. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3427 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- string.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'string.c') diff --git a/string.c b/string.c index cc82c7fb57..c126ee9e8a 100644 --- a/string.c +++ b/string.c @@ -282,7 +282,7 @@ VALUE rb_str_dup(str) VALUE str; { - VALUE dup = str_alloc(rb_cString); + VALUE dup = str_alloc(rb_obj_class(str)); rb_str_replace(dup, str); return dup; } @@ -503,7 +503,7 @@ rb_str_substr(str, beg, len) if (FL_TEST(str, ELTS_SHARED)) str = RSTRING(str)->aux.shared; else - str = str_new4(CLASS_OF(str), str); + str = str_new4(rb_obj_class(str), str); str2 = rb_str_new3(str); RSTRING(str2)->ptr += RSTRING(str2)->len - len; RSTRING(str2)->len = len; @@ -910,7 +910,7 @@ rb_str_index_m(argc, argv, str) tmp = rb_check_string_type(sub); if (NIL_P(tmp)) { rb_raise(rb_eTypeError, "type mismatch: %s given", - rb_class2name(CLASS_OF(sub))); + rb_obj_classname(sub)); } sub = tmp; } @@ -1010,7 +1010,7 @@ rb_str_rindex_m(argc, argv, str) default: rb_raise(rb_eTypeError, "type mismatch: %s given", - rb_class2name(CLASS_OF(sub))); + rb_obj_classname(sub)); } return Qnil; } @@ -1710,7 +1710,7 @@ uscore_get() line = rb_lastline_get(); if (TYPE(line) != T_STRING) { rb_raise(rb_eTypeError, "$_ value need to be String (%s given)", - NIL_P(line) ? "nil" : rb_class2name(CLASS_OF(line))); + NIL_P(line) ? "nil" : rb_obj_classname(line)); } return line; } -- cgit v1.2.3