Kernel: Remove unused Process pointer in Memory::AddressSpace

Nobody was using the back-pointer to the process, so let's lose it.
This commit is contained in:
Andreas Kling 2021-08-07 21:32:30 +02:00
parent 2362ebf483
commit 15d033b486
Notes: sideshowbarker 2024-07-18 07:18:02 +09:00
4 changed files with 8 additions and 10 deletions

View file

@ -15,21 +15,20 @@
namespace Kernel::Memory {
OwnPtr<AddressSpace> AddressSpace::try_create(Process& process, AddressSpace const* parent)
OwnPtr<AddressSpace> AddressSpace::try_create(AddressSpace const* parent)
{
auto page_directory = PageDirectory::try_create_for_userspace(parent ? &parent->page_directory().range_allocator() : nullptr);
if (!page_directory)
return {};
auto space = adopt_own_if_nonnull(new (nothrow) AddressSpace(process, page_directory.release_nonnull()));
auto space = adopt_own_if_nonnull(new (nothrow) AddressSpace(page_directory.release_nonnull()));
if (!space)
return {};
space->page_directory().set_space({}, *space);
return space;
}
AddressSpace::AddressSpace(Process& process, NonnullRefPtr<PageDirectory> page_directory)
: m_process(&process)
, m_page_directory(move(page_directory))
AddressSpace::AddressSpace(NonnullRefPtr<PageDirectory> page_directory)
: m_page_directory(move(page_directory))
{
}

View file

@ -18,7 +18,7 @@ namespace Kernel::Memory {
class AddressSpace {
public:
static OwnPtr<AddressSpace> try_create(Process&, AddressSpace const* parent);
static OwnPtr<AddressSpace> try_create(AddressSpace const* parent);
~AddressSpace();
PageDirectory& page_directory() { return *m_page_directory; }
@ -66,9 +66,8 @@ public:
size_t amount_purgeable_nonvolatile() const;
private:
AddressSpace(Process&, NonnullRefPtr<PageDirectory>);
explicit AddressSpace(NonnullRefPtr<PageDirectory>);
Process* m_process { nullptr };
mutable RecursiveSpinLock m_lock;
RefPtr<PageDirectory> m_page_directory;

View file

@ -275,7 +275,7 @@ Process::Process(const String& name, uid_t uid, gid_t gid, ProcessID ppid, bool
KResult Process::attach_resources(RefPtr<Thread>& first_thread, Process* fork_parent)
{
m_space = Memory::AddressSpace::try_create(*this, fork_parent ? &fork_parent->address_space() : nullptr);
m_space = Memory::AddressSpace::try_create(fork_parent ? &fork_parent->address_space() : nullptr);
if (!m_space)
return ENOMEM;

View file

@ -453,7 +453,7 @@ static KResultOr<LoadResult> load_elf_object(NonnullOwnPtr<Memory::AddressSpace>
KResultOr<LoadResult> Process::load(NonnullRefPtr<FileDescription> main_program_description,
RefPtr<FileDescription> interpreter_description, const ElfW(Ehdr) & main_program_header)
{
auto new_space = Memory::AddressSpace::try_create(*this, nullptr);
auto new_space = Memory::AddressSpace::try_create(nullptr);
if (!new_space)
return ENOMEM;