Index: extensions/browser/file_highlighter.cc |
diff --git a/extensions/browser/file_highlighter.cc b/extensions/browser/file_highlighter.cc |
index d3edeca42cf7bb0eed41ef2f95df899de1700816..2cc669ee2f5f3161cb27348ecbd9caf79da479b8 100644 |
--- a/extensions/browser/file_highlighter.cc |
+++ b/extensions/browser/file_highlighter.cc |
@@ -203,8 +203,19 @@ SourceHighlighter::~SourceHighlighter() { |
} |
void SourceHighlighter::Parse(size_t line_number) { |
- for (size_t i = 1; i < line_number; ++i) |
- start_ = contents_.find('\n', start_) + 1; |
+ // If line 0 is requested, highlight nothing. |
+ if (line_number == 0) { |
+ start_ = contents_.size(); |
+ return; |
+ } |
+ |
+ for (size_t i = 1; i < line_number; ++i) { |
+ start_ = contents_.find('\n', start_); |
+ if (start_ == std::string::npos) |
+ break; |
+ start_ += 1; |
+ } |
+ |
end_ = contents_.find('\n', start_); |
// If we went off the end of the string (i.e., the line number was invalid), |