From 827f8ca3c77ad0b7e667c64b5c983b3b3ffe8d7d Mon Sep 17 00:00:00 2001 From: Subv Date: Tue, 27 Feb 2018 10:22:15 -0500 Subject: Kernel: Store the program id in the Process class instead of the CodeSet class. There may be many CodeSets per Process, so it's wasteful and overcomplicated to store the program id in each of them. --- src/core/hle/kernel/process.cpp | 8 +++----- src/core/hle/kernel/process.h | 9 +++++---- 2 files changed, 8 insertions(+), 9 deletions(-) (limited to 'src/core/hle/kernel') diff --git a/src/core/hle/kernel/process.cpp b/src/core/hle/kernel/process.cpp index 8e74059ea..bb6dc28d7 100644 --- a/src/core/hle/kernel/process.cpp +++ b/src/core/hle/kernel/process.cpp @@ -20,12 +20,9 @@ namespace Kernel { // Lists all processes that exist in the current session. static std::vector> process_list; -SharedPtr CodeSet::Create(std::string name, u64 program_id) { +SharedPtr CodeSet::Create(std::string name) { SharedPtr codeset(new CodeSet); - codeset->name = std::move(name); - codeset->program_id = program_id; - return codeset; } @@ -34,13 +31,14 @@ CodeSet::~CodeSet() {} u32 Process::next_process_id; -SharedPtr Process::Create(std::string&& name) { +SharedPtr Process::Create(std::string&& name, u64 program_id) { SharedPtr process(new Process); process->name = std::move(name); process->flags.raw = 0; process->flags.memory_region.Assign(MemoryRegion::APPLICATION); process->status = ProcessStatus::Created; + process->program_id = program_id; process_list.push_back(process); return process; diff --git a/src/core/hle/kernel/process.h b/src/core/hle/kernel/process.h index add98472f..1de12efd3 100644 --- a/src/core/hle/kernel/process.h +++ b/src/core/hle/kernel/process.h @@ -56,7 +56,7 @@ class ResourceLimit; struct MemoryRegionInfo; struct CodeSet final : public Object { - static SharedPtr Create(std::string name, u64 program_id); + static SharedPtr Create(std::string name); std::string GetTypeName() const override { return "CodeSet"; @@ -72,8 +72,6 @@ struct CodeSet final : public Object { /// Name of the process std::string name; - /// Title ID corresponding to the process - u64 program_id; std::shared_ptr> memory; @@ -97,7 +95,7 @@ private: class Process final : public Object { public: - static SharedPtr Create(std::string&& name); + static SharedPtr Create(std::string&& name, u64 program_id); std::string GetTypeName() const override { return "Process"; @@ -113,6 +111,9 @@ public: static u32 next_process_id; + /// Title ID corresponding to the process + u64 program_id; + /// Resource limit descriptor for this process SharedPtr resource_limit; -- cgit v1.2.3