From 5af95139fa0103dcbd489835f4aa15fd6e37852e Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Fri, 28 Feb 2020 14:04:49 +0100 Subject: [PATCH] Kernel: Make Process::m_master_tls_region a WeakPtr Let's not keep raw Region* variables around like that when it's so easy to avoid it. --- Kernel/Process.cpp | 4 ++-- Kernel/Process.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Kernel/Process.cpp b/Kernel/Process.cpp index 695ec26c82..8218535ac6 100644 --- a/Kernel/Process.cpp +++ b/Kernel/Process.cpp @@ -721,7 +721,7 @@ pid_t Process::sys$fork(RegisterState& regs) child_region.map(child->page_directory()); if (®ion == m_master_tls_region) - child->m_master_tls_region = &child_region; + child->m_master_tls_region = child_region.make_weak_ptr(); } child->m_extra_gids = m_extra_gids; @@ -963,7 +963,7 @@ int Process::do_exec(NonnullRefPtr main_program_description, Ve m_unveiled_paths.clear(); // Copy of the master TLS region that we will clone for new threads - m_master_tls_region = master_tls_region; + m_master_tls_region = master_tls_region->make_weak_ptr(); auto main_program_metadata = main_program_description->metadata(); diff --git a/Kernel/Process.h b/Kernel/Process.h index 35d0c33b81..371bdfe089 100644 --- a/Kernel/Process.h +++ b/Kernel/Process.h @@ -498,7 +498,7 @@ private: RefPtr m_tracer; OwnPtr m_elf_loader; - Region* m_master_tls_region { nullptr }; + WeakPtr m_master_tls_region; size_t m_master_tls_size { 0 }; size_t m_master_tls_alignment { 0 };