diff --git a/crates/language_tools/src/lsp_button.rs b/crates/language_tools/src/lsp_button.rs index 1589947d9e..54aae61a69 100644 --- a/crates/language_tools/src/lsp_button.rs +++ b/crates/language_tools/src/lsp_button.rs @@ -125,7 +125,11 @@ impl ProcessMemoryCache { fn is_descendant_of(&self, pid: Pid, root_pid: Pid, parent_map: &HashMap) -> bool { let mut current = pid; + let mut visited = HashSet::default(); while current != root_pid { + if !visited.insert(current) { + return false; + } match parent_map.get(¤t) { Some(&parent) => current = parent, None => return false,