From 90a443c488a04473fd131b485f5de02e84e89932 Mon Sep 17 00:00:00 2001 From: skylar taylor-barrick Date: Mon, 19 Oct 2026 00:21:58 +0200 Subject: [PATCH] perf(engine): return an unedited snapshot's source without copying it (#3276) --- crates/engine/src/session.rs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/crates/engine/src/session.rs b/crates/engine/src/session.rs index c130e47f64..5b6007acf5 100644 --- a/crates/engine/src/session.rs +++ b/crates/engine/src/session.rs @@ -687,21 +687,20 @@ impl Session { let cos = writable(&editor.cos)?; guard(|| { if on_saved || rewrite { - return write_incremental(&cos, &opts); + return write_incremental(&cos, &opts).map(Arc::new); } let mut base = pdfcraft_cos::Document::open_with_password(editor.saved.clone(), editor.saved_keys.reopen.as_deref())?; if base.overlay_changes_from(&cos)? { - write_incremental(&base, &opts) + write_incremental(&base, &opts).map(Arc::new) } else if !cos.is_modified() { - Ok(cos.bytes().to_vec()) + Ok(cos.bytes().clone()) } else { // Undo restored security from before the last save: append the snapshot to its // own source, which it hasn't changed security against. - write_incremental(&cos, &opts) + write_incremental(&cos, &opts).map(Arc::new) } }) .map_err(EditError::Write)? - .map(Arc::new) .map_err(|e| EditError::Write(e.to_string())) }