aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2021-08-16 11:29:54 +0200
committerPeter Keresztes Schmidt <carbenium@outlook.com>2021-08-16 22:42:23 +0200
commit7c7b4760d89f29b7ee3c2f15f94cd9be24dc36cb (patch)
treea6f01fcaba276f8ffe0c874b349895f0c8c14033 /src
parent0d7d49d6d2b7abeb4aceabf92f9901597c398237 (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."
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Commands/cs_rbac.cpp21
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 f2a2ce1e42c..622b625ee3c 100644
--- a/src/server/scripts/Commands/cs_rbac.cpp
+++ b/src/server/scripts/Commands/cs_rbac.cpp
@@ -34,15 +34,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;
@@ -78,18 +78,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)