memory optimisation
This commit is contained in:
@@ -161,15 +161,21 @@ fn render_visible_lines(
|
||||
|
||||
fn get_line_content(tab: &mut FileTab, show_all: bool, display_idx: usize) -> (usize, String) {
|
||||
if show_all {
|
||||
// Main view: read line by display index
|
||||
let content = tab
|
||||
.line_index
|
||||
.read_line(&mut tab.file_handle, display_idx)
|
||||
.unwrap_or_default();
|
||||
(display_idx, content)
|
||||
} else {
|
||||
// Filtered view: get line number from filtered list, then read content on-demand
|
||||
if display_idx < tab.filtered_lines.len() {
|
||||
let filtered = &tab.filtered_lines[display_idx];
|
||||
(filtered.line_number, filtered.content.clone())
|
||||
let line_number = tab.filtered_lines[display_idx].line_number;
|
||||
let content = tab
|
||||
.line_index
|
||||
.read_line(&mut tab.file_handle, line_number)
|
||||
.unwrap_or_default();
|
||||
(line_number, content)
|
||||
} else {
|
||||
(0, String::new())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user