diff --git a/ChangeLog b/ChangeLog index ad26d83687..5e0eba52d8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Tue Dec 25 18:27:51 2007 Tanaka Akira + + * string.c (rb_str_each_line): don't call rb_enc_codepoint with empty + string. + Tue Dec 25 18:06:04 2007 Tanaka Akira * string.c (rb_str_inspect): don't call rb_enc_codepoint with empty diff --git a/string.c b/string.c index b06c2f5b8f..aaf14468af 100644 --- a/string.c +++ b/string.c @@ -4310,7 +4310,7 @@ rb_str_each_line(int argc, VALUE *argv, VALUE str) int n = rb_enc_codelen(c, enc); if (rslen == 0 && c == newline) { - while (rb_enc_codepoint(p, pend, enc) == newline) { + while (p < pend && rb_enc_codepoint(p, pend, enc) == newline) { p += n; } p -= n;