aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--string.c2
2 files changed, 6 insertions, 1 deletions
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 <akr@fsij.org>
+
+ * string.c (rb_str_each_line): don't call rb_enc_codepoint with empty
+ string.
+
Tue Dec 25 18:06:04 2007 Tanaka Akira <akr@fsij.org>
* 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;