ruby-changes:4422
From: ko1@a...
Date: Mon, 7 Apr 2008 12:15:39 +0900 (JST)
Subject: [ruby-changes:4422] nobu - Ruby:r15913 (trunk): * range.c (range_each_func): should not leave a variable
nobu 2008-04-07 12:15:26 +0900 (Mon, 07 Apr 2008) New Revision: 15913 Modified files: trunk/ChangeLog trunk/range.c Log: * range.c (range_each_func): should not leave a variable uninitialized, which could cause SEGV. * range.c (range_step): removed duplicated and unreachable code. http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=15913&r2=15912&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/range.c?r1=15913&r2=15912&diff_format=u Index: ChangeLog =================================================================== --- ChangeLog (revision 15912) +++ ChangeLog (revision 15913) @@ -1,3 +1,10 @@ +Mon Apr 7 12:15:24 2008 Nobuyoshi Nakada <nobu@r...> + + * range.c (range_each_func): should not leave a variable + uninitialized, which could cause SEGV. + + * range.c (range_step): removed duplicated and unreachable code. + Mon Apr 7 02:12:27 2008 Yukihiro Matsumoto <matz@r...> * string.c (rb_str_intern): need not to check if tainted. Index: range.c =================================================================== --- range.c (revision 15912) +++ range.c (revision 15913) @@ -228,7 +228,7 @@ int c; VALUE b = RANGE_BEG(range); VALUE e = RANGE_END(range); - VALUE v; + VALUE v = b; if (EXCL(range)) { while (r_lt(v, e)) { @@ -295,9 +295,8 @@ static VALUE range_step(int argc, VALUE *argv, VALUE range) { - VALUE b, e, step, tmp, c; + VALUE b, e, step, tmp; long unit; - int nv; RETURN_ENUMERATOR(range, argc, argv); @@ -361,16 +360,6 @@ iter[1] = step; rb_block_call(b, rb_intern("upto"), 2, args, step_i, (VALUE)iter); } - else if (rb_obj_is_kind_of(b, rb_cNumeric)) { - ID c = rb_intern(EXCL(range) ? "<" : "<="); - - if (rb_equal(step, INT2FIX(0))) - rb_raise(rb_eArgError, "step can't be 0"); - while (RTEST(rb_funcall(b, c, 1, e))) { - rb_yield(b); - b = rb_funcall(b, '+', 1, step); - } - } else { VALUE args[2]; -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/