diff options
author | Morph <39850852+Morph1984@users.noreply.github.com> | 2022-03-17 06:22:38 +0100 |
---|---|---|
committer | Morph <39850852+Morph1984@users.noreply.github.com> | 2022-03-18 05:28:25 +0100 |
commit | 8b7d571b66c913c2f0a9e2804c90392f34440983 (patch) | |
tree | b5ea0a787bbb15a583d4a095daf6967ee0cff14b /src/core/hle/kernel/k_handle_table.h | |
parent | Merge pull request #8026 from lat9nq/ext-mem-ini (diff) | |
download | yuzu-8b7d571b66c913c2f0a9e2804c90392f34440983.tar yuzu-8b7d571b66c913c2f0a9e2804c90392f34440983.tar.gz yuzu-8b7d571b66c913c2f0a9e2804c90392f34440983.tar.bz2 yuzu-8b7d571b66c913c2f0a9e2804c90392f34440983.tar.lz yuzu-8b7d571b66c913c2f0a9e2804c90392f34440983.tar.xz yuzu-8b7d571b66c913c2f0a9e2804c90392f34440983.tar.zst yuzu-8b7d571b66c913c2f0a9e2804c90392f34440983.zip |
Diffstat (limited to 'src/core/hle/kernel/k_handle_table.h')
-rw-r--r-- | src/core/hle/kernel/k_handle_table.h | 34 |
1 files changed, 8 insertions, 26 deletions
diff --git a/src/core/hle/kernel/k_handle_table.h b/src/core/hle/kernel/k_handle_table.h index 87004a0f9..dd27689b6 100644 --- a/src/core/hle/kernel/k_handle_table.h +++ b/src/core/hle/kernel/k_handle_table.h @@ -42,7 +42,7 @@ public: m_free_head_index = -1; // Free all entries. - for (s32 i = 0; i < static_cast<s32>(m_table_size); ++i) { + for (s16 i = 0; i < static_cast<s16>(m_table_size); ++i) { m_objects[i] = nullptr; m_entry_infos[i].next_free_index = i - 1; m_free_head_index = i; @@ -104,17 +104,8 @@ public: ResultCode Reserve(Handle* out_handle); void Unreserve(Handle handle); - template <typename T> - ResultCode Add(Handle* out_handle, T* obj) { - static_assert(std::is_base_of_v<KAutoObject, T>); - return this->Add(out_handle, obj, obj->GetTypeObj().GetClassToken()); - } - - template <typename T> - void Register(Handle handle, T* obj) { - static_assert(std::is_base_of_v<KAutoObject, T>); - return this->Register(handle, obj, obj->GetTypeObj().GetClassToken()); - } + ResultCode Add(Handle* out_handle, KAutoObject* obj); + void Register(Handle handle, KAutoObject* obj); template <typename T> bool GetMultipleObjects(T** out, const Handle* handles, size_t num_handles) const { @@ -160,9 +151,6 @@ public: } private: - ResultCode Add(Handle* out_handle, KAutoObject* obj, u16 type); - void Register(Handle handle, KAutoObject* obj, u16 type); - s32 AllocateEntry() { ASSERT(m_count < m_table_size); @@ -179,7 +167,7 @@ private: ASSERT(m_count > 0); m_objects[index] = nullptr; - m_entry_infos[index].next_free_index = m_free_head_index; + m_entry_infos[index].next_free_index = static_cast<s16>(m_free_head_index); m_free_head_index = index; @@ -278,19 +266,13 @@ private: } union EntryInfo { - struct { - u16 linear_id; - u16 type; - } info; - s32 next_free_index; + u16 linear_id; + s16 next_free_index; constexpr u16 GetLinearId() const { - return info.linear_id; - } - constexpr u16 GetType() const { - return info.type; + return linear_id; } - constexpr s32 GetNextFreeIndex() const { + constexpr s16 GetNextFreeIndex() const { return next_free_index; } }; |