From 1d3bc61320a7628bc4e60c70880656867c22dc10 Mon Sep 17 00:00:00 2001 From: nobu Date: Mon, 23 Jun 2003 08:41:07 +0000 Subject: * dir.c (find_dirsep): get rid of warnings. * eval.c (error_print): temporary value might be disposed by GC. * hash.c (env_has_value, env_index): should not increment NULL. * io.c (io_read, rb_io_sysread): not read when length is 0. * io.c (rb_io_reopen): ensure initialized IO. * io.c (rb_io_init_copy): sychronize file pointer. * io.c (rb_io_s_pipe): make exception proof. * string.c (rb_str_rindex_m): Fixnum 0 matched end of string. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3984 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- string.c | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) (limited to 'string.c') diff --git a/string.c b/string.c index eed7a0e88..15b68374f 100644 --- a/string.c +++ b/string.c @@ -450,18 +450,6 @@ static char *null_str = ""; VALUE rb_string_value(ptr) volatile VALUE *ptr; -{ - *ptr = rb_str_to_str(*ptr); - if (!RSTRING(*ptr)->ptr) { - FL_SET(*ptr, ELTS_SHARED); - RSTRING(*ptr)->ptr = null_str; - } - return *ptr; -} - -char * -rb_string_value_ptr(ptr) - volatile VALUE *ptr; { VALUE s = *ptr; if (TYPE(s) != T_STRING) { @@ -472,7 +460,14 @@ rb_string_value_ptr(ptr) FL_SET(s, ELTS_SHARED); RSTRING(s)->ptr = null_str; } - return RSTRING(s)->ptr; + return s; +} + +char * +rb_string_value_ptr(ptr) + volatile VALUE *ptr; +{ + return RSTRING(rb_string_value(s))->ptr; } VALUE @@ -1015,9 +1010,8 @@ rb_str_rindex_m(argc, argv, str) char *p = RSTRING(str)->ptr + pos; char *pbeg = RSTRING(str)->ptr; - while (pbeg <= p) { + while (pbeg <= --p) { if (*p == c) return LONG2NUM(p - RSTRING(str)->ptr); - p--; } return Qnil; } -- cgit