diff --git a/public/AutoHandleRooter.h b/public/AutoHandleRooter.h index 3c93699cc..eb5ecb622 100644 --- a/public/AutoHandleRooter.h +++ b/public/AutoHandleRooter.h @@ -110,18 +110,24 @@ public: ~AutoHandleIdentLocker() { - if (this->pSecurity) - this->pSecurity->access[HandleAccess_Delete] &= ~HANDLE_RESTRICT_IDENTEXCLUSIVE; - - this->pSecurity = nullptr; + this->Nuke(); } public: AutoHandleIdentLocker &operator =(const AutoHandleIdentLocker &other) { - ~AutoHandleIdentLocker(); + this->Nuke(); this->pSecurity = other.pSecurity; } +private: + void Nuke(void) + { + if (this->pSecurity) + { + this->pSecurity->access[HandleAccess_Delete] &= ~HANDLE_RESTRICT_IDENTEXCLUSIVE; + this->pSecurity = nullptr; + } + } private: HandleAccess *pSecurity; };