diff --git a/src/change_processor.rs b/src/change_processor.rs index dce1cd8d..ac9cb869 100644 --- a/src/change_processor.rs +++ b/src/change_processor.rs @@ -154,7 +154,9 @@ impl JobThreadContext { for id in affected_ids { if let Some(patch) = compute_and_apply_changes(&mut tree, &self.vfs, id) { - applied_patches.push(patch); + if !patch.is_empty() { + applied_patches.push(patch); + } } } } @@ -253,7 +255,9 @@ impl JobThreadContext { apply_patch_set(&mut tree, patch_set) }; - self.message_queue.push_messages(&[applied_patch]); + if !applied_patch.is_empty() { + self.message_queue.push_messages(&[applied_patch]); + } } } diff --git a/src/snapshot/patch.rs b/src/snapshot/patch.rs index 1d320a2c..4413db59 100644 --- a/src/snapshot/patch.rs +++ b/src/snapshot/patch.rs @@ -19,7 +19,7 @@ pub struct PatchSet { pub updated_instances: Vec, } -impl<'a> PatchSet { +impl PatchSet { pub fn new() -> Self { PatchSet { removed_instances: Vec::new(), @@ -76,6 +76,10 @@ impl AppliedPatchSet { updated: Vec::new(), } } + + pub fn is_empty(&self) -> bool { + self.removed.is_empty() && self.added.is_empty() && self.updated.is_empty() + } } #[derive(Debug, Clone, Serialize, Deserialize)]