From f137a720e935dd8461a6153c83b78b6cc269c744 Mon Sep 17 00:00:00 2001 From: matz Date: Wed, 20 Oct 1999 07:10:23 +0000 Subject: marshal load GC protect git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@548 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- string.c | 136 ++++++++++++++++++++++++++++----------------------------------- 1 file changed, 61 insertions(+), 75 deletions(-) (limited to 'string.c') diff --git a/string.c b/string.c index 4a4532cb4..af2db491d 100644 --- a/string.c +++ b/string.c @@ -1042,10 +1042,9 @@ rb_str_sub(argc, argv, str) VALUE *argv; VALUE str; { - VALUE val = rb_str_sub_bang(argc, argv, str = rb_str_dup(str)); - - if (NIL_P(val)) return str; - return val; + str = rb_str_dup(str); + rb_str_sub_bang(argc, argv, str); + return str; } static VALUE @@ -1149,10 +1148,9 @@ rb_str_gsub(argc, argv, str) VALUE *argv; VALUE str; { - VALUE val = rb_str_gsub_bang(argc, argv, str = rb_str_dup(str)); - - if (NIL_P(val)) return str; - return val; + str = rb_str_dup(str); + rb_str_gsub_bang(argc, argv, str); + return str; } static VALUE @@ -1194,13 +1192,13 @@ rb_f_sub(argc, argv) int argc; VALUE *argv; { - VALUE line, v; + VALUE line; - line = uscore_get(); - v = rb_str_sub_bang(argc, argv, line = rb_str_dup(line)); - if (NIL_P(v)) return line; - rb_lastline_set(v); - return v; + line = rb_str_dup(uscore_get()); + if (!NIL_P(rb_str_sub_bang(argc, argv, line))) { + rb_lastline_set(line); + } + return line; } static VALUE @@ -1216,13 +1214,13 @@ rb_f_gsub(argc, argv) int argc; VALUE *argv; { - VALUE line, v; + VALUE line; - line = uscore_get(); - v = rb_str_gsub_bang(argc, argv, line = rb_str_dup(line)); - if (NIL_P(v)) return line; - rb_lastline_set(v); - return v; + line = rb_str_dup(uscore_get()); + if (!NIL_P(rb_str_gsub_bang(argc, argv, line = rb_str_dup(line)))) { + rb_lastline_set(line); + } + return line; } static VALUE @@ -1523,10 +1521,9 @@ static VALUE rb_str_upcase(str) VALUE str; { - VALUE val = rb_str_upcase_bang(str = rb_str_dup(str)); - - if (NIL_P(val)) return str; - return val; + str = rb_str_dup(str); + rb_str_upcase_bang(str); + return str; } static VALUE @@ -1557,10 +1554,9 @@ static VALUE rb_str_downcase(str) VALUE str; { - VALUE val = rb_str_downcase_bang(str = rb_str_dup(str)); - - if (NIL_P(val)) return str; - return val; + str = rb_str_dup(str); + rb_str_downcase_bang(str); + return str; } static VALUE @@ -1593,10 +1589,9 @@ static VALUE rb_str_capitalize(str) VALUE str; { - VALUE val = rb_str_capitalize_bang(str = rb_str_dup(str)); - - if (NIL_P(val)) return str; - return val; + str = rb_str_dup(str); + rb_str_capitalize_bang(str); + return str; } static VALUE @@ -1631,10 +1626,9 @@ static VALUE rb_str_swapcase(str) VALUE str; { - VALUE val = rb_str_swapcase_bang(str = rb_str_dup(str)); - - if (NIL_P(val)) return str; - return val; + str = rb_str_dup(str); + rb_str_swapcase_bang(str); + return str; } typedef unsigned char *USTR; @@ -1782,10 +1776,9 @@ static VALUE rb_str_tr(str, src, repl) VALUE str, src, repl; { - VALUE val = tr_trans(str = rb_str_dup(str), src, repl, 0); - - if (NIL_P(val)) return str; - return val; + str = rb_str_dup(str); + tr_trans(str, src, repl, 0); + return str; } static void @@ -1866,10 +1859,9 @@ rb_str_delete(argc, argv, str) VALUE *argv; VALUE str; { - VALUE val = rb_str_delete_bang(argc, argv, str = rb_str_dup(str)); - - if (NIL_P(val)) return str; - return val; + str = rb_str_dup(str); + rb_str_delete_bang(argc, argv, str); + return str; } static VALUE @@ -1927,10 +1919,9 @@ rb_str_squeeze(argc, argv, str) VALUE *argv; VALUE str; { - VALUE val = rb_str_squeeze_bang(argc, argv, str = rb_str_dup(str)); - - if (NIL_P(val)) return str; - return val; + str = rb_str_dup(str); + rb_str_squeeze_bang(argc, argv, str); + return str; } static VALUE @@ -1944,10 +1935,9 @@ static VALUE rb_str_tr_s(str, src, repl) VALUE str, src, repl; { - VALUE val = tr_trans(str = rb_str_dup(str), src, repl, 1); - - if (NIL_P(val)) return str; - return val; + str = rb_str_dup(str); + tr_trans(str, src, repl, 1); + return str; } static VALUE @@ -2235,10 +2225,9 @@ static VALUE rb_str_chop(str) VALUE str; { - VALUE val = rb_str_chop_bang(str = rb_str_dup(str)); - - if (NIL_P(val)) return str; - return val; + str = rb_str_dup(str); + rb_str_chop_bang(str); + return str; } static VALUE @@ -2251,12 +2240,12 @@ rb_f_chop_bang(str) static VALUE rb_f_chop() { - VALUE str = uscore_get(); - VALUE val = rb_str_chop_bang(str = rb_str_dup(str)); + VALUE str = rb_str_dup(uscore_get()); - if (NIL_P(val)) return str; - rb_lastline_set(val); - return val; + if (!NIL_P(rb_str_chop_bang(str))) { + rb_lastline_set(str); + } + return str; } static VALUE @@ -2308,10 +2297,9 @@ rb_str_chomp(argc, argv, str) VALUE *argv; VALUE str; { - VALUE val = rb_str_chomp_bang(argc, argv, str = rb_str_dup(str)); - - if (NIL_P(val)) return str; - return val; + str = rb_str_dup(str); + rb_str_chomp_bang(argc, argv, str); + return str; } static VALUE @@ -2327,12 +2315,11 @@ rb_f_chomp(argc, argv) int argc; VALUE *argv; { - VALUE str = uscore_get(); - VALUE val = rb_str_chomp_bang(argc, argv, str = rb_str_dup(str)); - - if (NIL_P(val)) return str; - rb_lastline_set(val); - return val; + VALUE str = rb_str_dup(uscore_get()); + if (!NIL_P(rb_str_chomp_bang(argc, argv, str))) { + rb_lastline_set(str); + } + return str; } static VALUE @@ -2375,10 +2362,9 @@ static VALUE rb_str_strip(str) VALUE str; { - VALUE val = rb_str_strip_bang(str = rb_str_dup(str)); - - if (NIL_P(val)) return str; - return val; + str = rb_str_dup(str); + rb_str_strip_bang(str); + return str; } static VALUE -- cgit