Skip to content

Commit f358454

Browse files
committed
janitor: live-preview: Save a few copies of vecs
... does not make things noticably faster though.
1 parent 7e908af commit f358454

File tree

2 files changed

+13
-14
lines changed

2 files changed

+13
-14
lines changed

tools/lsp/common.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,7 @@ impl DocumentCache {
6363
}
6464

6565
pub fn snapshot(&self) -> Option<Self> {
66-
let type_loader = i_slint_compiler::typeloader::snapshot(&self.0)?;
67-
Some(Self::new_from_type_loader(type_loader))
66+
i_slint_compiler::typeloader::snapshot(&self.0).map(|tl| Self::new_from_type_loader(tl))
6867
}
6968

7069
pub fn resolve_import_path(

tools/lsp/preview/element_selection.rs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ fn collect_all_element_nodes_covering_impl(
186186
position: LogicalPoint,
187187
component_instance: &ComponentInstance,
188188
current_element: &ElementRc,
189-
component_stack: &Vec<Rc<Component>>,
189+
component_stack: &mut Vec<Rc<Component>>,
190190
result: &mut Vec<SelectionCandidate>,
191191
) {
192192
let ce = self_or_embedded_component_root(current_element);
@@ -195,27 +195,27 @@ fn collect_all_element_nodes_covering_impl(
195195
};
196196
let component_root_element = component.root_element.clone();
197197

198-
let mut tmp;
199-
let children_component_stack = {
200-
if Rc::ptr_eq(&component_root_element, &ce) {
201-
tmp = component_stack.clone();
202-
tmp.push(component.clone());
203-
&tmp
204-
} else {
205-
component_stack
206-
}
198+
let must_pop = if Rc::ptr_eq(&component_root_element, &ce) {
199+
component_stack.push(component.clone());
200+
true
201+
} else {
202+
false
207203
};
208204

209205
for c in ce.borrow().children.iter().rev() {
210206
collect_all_element_nodes_covering_impl(
211207
position,
212208
component_instance,
213209
c,
214-
children_component_stack,
210+
component_stack,
215211
result,
216212
);
217213
}
218214

215+
if must_pop {
216+
component_stack.pop();
217+
}
218+
219219
if element_covers_point(position, component_instance, &ce) {
220220
for (i, _) in ce.borrow().debug.iter().enumerate().rev() {
221221
// All nodes have the same geometry
@@ -238,7 +238,7 @@ pub fn collect_all_element_nodes_covering(
238238
position,
239239
component_instance,
240240
&root_element,
241-
&vec![],
241+
&mut vec![],
242242
&mut elements,
243243
);
244244
elements

0 commit comments

Comments
 (0)