diff --git a/src/shell/server.cpp b/src/shell/server.cpp index d4ee41fc89..5b4c67396e 100644 --- a/src/shell/server.cpp +++ b/src/shell/server.cpp @@ -516,6 +516,7 @@ void server::handle_complete(cmd_req const & req) { auto complete_gen_task = task_builder([=] { return autocomplete(mod_info, skip_completions, pos); }) + .wrap(library_scopes(log_tree::node())) .set_cancellation_token(m_bg_task_ctok) .build(); @@ -574,7 +575,8 @@ void server::handle_info(server::cmd_req const & req) { auto info_gen_task = task_builder([=] { return info(mod_info, pos); - }).set_cancellation_token(m_bg_task_ctok).build(); + }).wrap(library_scopes(log_tree::node())) + .set_cancellation_token(m_bg_task_ctok).build(); taskq().submit(task_builder([this, req, info_gen_task] { try { diff --git a/src/util/log_tree.cpp b/src/util/log_tree.cpp index 8c067a018f..aa94518ad6 100644 --- a/src/util/log_tree.cpp +++ b/src/util/log_tree.cpp @@ -333,12 +333,12 @@ log_tree::node & logtree() { } } -scope_log_tree::scope_log_tree(log_tree::node const & lt) : m_node(lt), m_scope(&m_node) { - m_node.clear_entries(); +scope_log_tree::scope_log_tree(log_tree::node const & lt) : m_node(lt), m_scope(m_node ? &m_node : nullptr) { + if (m_node) m_node.clear_entries(); } scope_log_tree::~scope_log_tree() { - logtree().finish(); + if (m_node) m_node.finish(); } scope_log_tree::scope_log_tree(std::string const & desc, pos_range const & pos) :