Преглед изворни кода

hle: kernel: k_auto_object: Move unregister with kernel to after Destroy.

- Destructor is no longer invoked, so our object counting was off.
bunnei пре 4 година
родитељ
комит
788bebb160
1 измењених фајлова са 2 додато и 3 уклоњено
  1. 2 3
      src/core/hle/kernel/k_auto_object.h

+ 2 - 3
src/core/hle/kernel/k_auto_object.h

@@ -89,9 +89,7 @@ public:
     explicit KAutoObject(KernelCore& kernel_) : kernel(kernel_) {
     explicit KAutoObject(KernelCore& kernel_) : kernel(kernel_) {
         RegisterWithKernel();
         RegisterWithKernel();
     }
     }
-    virtual ~KAutoObject() {
-        UnregisterWithKernel();
-    }
+    virtual ~KAutoObject() = default;
 
 
     static KAutoObject* Create(KAutoObject* ptr);
     static KAutoObject* Create(KAutoObject* ptr);
 
 
@@ -168,6 +166,7 @@ public:
         // If ref count hits zero, destroy the object.
         // If ref count hits zero, destroy the object.
         if (cur_ref_count - 1 == 0) {
         if (cur_ref_count - 1 == 0) {
             this->Destroy();
             this->Destroy();
+            this->UnregisterWithKernel();
         }
         }
     }
     }