diff options
author | Shauren <shauren.trinity@gmail.com> | 2021-08-16 11:29:54 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2022-03-13 00:35:31 +0100 |
commit | bbde3b54b94d4425e0b5800a4884b27f0c7d79cd (patch) | |
tree | 150bfc3840516c8b3112faa65982745dcee54e46 | |
parent | 2c2b235bcdc0e9a0adf3ed36a9317297b19f5615 (diff) |
Scripts/Commands: Avoid copies of RBACCommandData
Silences the PVS V1002 warning:
"The 'RBACCommandData' class, containing pointers, constructor and destructor, is copied by the automatically generated copy constructor."
(cherry picked from commit 7c7b4760d89f29b7ee3c2f15f94cd9be24dc36cb)
-rw-r--r-- | src/server/scripts/Commands/cs_rbac.cpp | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/src/server/scripts/Commands/cs_rbac.cpp b/src/server/scripts/Commands/cs_rbac.cpp index 92c126996f5..4412082ae95 100644 --- a/src/server/scripts/Commands/cs_rbac.cpp +++ b/src/server/scripts/Commands/cs_rbac.cpp @@ -35,15 +35,15 @@ EndScriptData */ struct RBACCommandData { - RBACCommandData() : rbac(nullptr), needDelete(false) {} + RBACCommandData(RBACCommandData const&) = delete; ~RBACCommandData() { if (needDelete) delete rbac; } - rbac::RBACData* rbac; - bool needDelete; + rbac::RBACData* rbac = nullptr; + bool needDelete = false; }; using namespace Trinity::ChatCommands; @@ -79,18 +79,13 @@ public: static RBACCommandData GetRBACData(AccountIdentifier account) { - RBACCommandData data = RBACCommandData(); - if (account.IsConnected()) - data.rbac = account.GetConnectedSession()->GetRBACData(); - else - { - data.rbac = new rbac::RBACData(account.GetID(), account.GetName(), realm.Id.Realm, AccountMgr::GetSecurity(account.GetID(), realm.Id.Realm)); - data.rbac->LoadFromDB(); - data.needDelete = true; - } + return { account.GetConnectedSession()->GetRBACData(), false }; + + rbac::RBACData* rbac = new rbac::RBACData(account.GetID(), account.GetName(), realm.Id.Realm, AccountMgr::GetSecurity(account.GetID(), realm.Id.Realm)); + rbac->LoadFromDB(); - return data; + return { rbac, true }; } static bool HandleRBACPermGrantCommand(ChatHandler* handler, Optional<AccountIdentifier> account, uint32 permId, Optional<int32> realmId) |