Skip to content

Commit 154b59d

Browse files
committed
[perf] tweak text file handling a bit
1 parent cf25d7a commit 154b59d

2 files changed

Lines changed: 7 additions & 3 deletions

File tree

src/logfile.cc

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1067,11 +1067,13 @@ logfile::rebuild_index(std::optional<ui_clock::time_point> deadline)
10671067
sbr_str.erase(line_iter->sf_begin, 22);
10681068
}
10691069
}
1070-
if (is_utf8(sbr_str).is_valid()) {
1070+
const auto& sbr_meta = avail_sbr.get_metadata();
1071+
if (!sbr_meta.m_valid_utf) {
1072+
return text_format_t::TF_BINARY;
1073+
}
1074+
if (sbr_meta.m_has_ansi) {
10711075
auto new_size = erase_ansi_escapes(sbr_str);
10721076
sbr_str.resize(new_size);
1073-
} else {
1074-
return text_format_t::TF_BINARY;
10751077
}
10761078
return detect_text_format(sbr_str, path);
10771079
})

src/shared_buffer.hh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,8 @@ struct shared_buffer_ref {
105105
return (this->sb_data <= ptr && ptr < buffer_end);
106106
}
107107

108+
const file_range::metadata& get_metadata() const { return this->sb_metadata; }
109+
108110
file_range::metadata& get_metadata() { return this->sb_metadata; }
109111

110112
char* get_writable_data(size_t length)

0 commit comments

Comments
 (0)