aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/handle_table.cpp
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2021-01-16 00:25:29 -0800
committerbunnei <bunneidev@gmail.com>2021-01-28 21:42:26 -0800
commiteb3a02a3fdbf1e9e2ed85da7a673872757543ed0 (patch)
tree3bfe09f91736044f8187af6df737f61012e55801 /src/core/hle/kernel/handle_table.cpp
parent3cefddbb4763cc2dfd9e6fb154e546d454f4043f (diff)
core: hle: kernel: object: Implement Finalize() virtual method.
Diffstat (limited to 'src/core/hle/kernel/handle_table.cpp')
-rw-r--r--src/core/hle/kernel/handle_table.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/core/hle/kernel/handle_table.cpp b/src/core/hle/kernel/handle_table.cpp
index 10a4e05100..1a2fa9cd83 100644
--- a/src/core/hle/kernel/handle_table.cpp
+++ b/src/core/hle/kernel/handle_table.cpp
@@ -89,6 +89,10 @@ ResultCode HandleTable::Close(Handle handle) {
const u16 slot = GetSlot(handle);
+ if (objects[slot].use_count() == 1) {
+ objects[slot]->Finalize();
+ }
+
objects[slot] = nullptr;
generations[slot] = next_free_slot;