diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-07-24 09:48:21 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-07-24 09:48:21 +0000 |
commit | 8006f6f71f8c3370a702a21f3ea65d7300ae5bf7 (patch) | |
tree | b5a3121173a5179382f052482ee4b92e7b9349f1 /range.c | |
parent | fa0053812ac44024ea9a6cedeb70b5535868d191 (diff) | |
download | ruby-8006f6f71f8c3370a702a21f3ea65d7300ae5bf7.tar.gz ruby-8006f6f71f8c3370a702a21f3ea65d7300ae5bf7.tar.xz ruby-8006f6f71f8c3370a702a21f3ea65d7300ae5bf7.zip |
* range.c (rb_range_beg_len): returns Qnil only when "beg" points
outside of a range. No boundary check for "end".
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@6692 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'range.c')
-rw-r--r-- | range.c | 6 |
1 files changed, 2 insertions, 4 deletions
@@ -480,14 +480,12 @@ rb_range_beg_len(range, begp, lenp, len, err) } if (err == 0 || err == 2) { if (beg > len) goto out_of_range; - if (end > len) - end = len; + if (end > len) end = len; } if (end < 0) end += len; if (!EXCL(range)) end++; /* include end point */ - if (end < 0) goto out_of_range; len = end - beg; - if (len < 0) goto out_of_range; + if (len < 0) len = 0; *begp = beg; *lenp = len; |