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."
This commit is contained in:
Shauren
2021-08-16 11:29:54 +02:00
committed by Peter Keresztes Schmidt
parent 0d7d49d6d2
commit 7c7b4760d8

View File

@@ -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 };
return data;
rbac::RBACData* rbac = new rbac::RBACData(account.GetID(), account.GetName(), realm.Id.Realm, AccountMgr::GetSecurity(account.GetID(), realm.Id.Realm));
rbac->LoadFromDB();
return { rbac, true };
}
static bool HandleRBACPermGrantCommand(ChatHandler* handler, Optional<AccountIdentifier> account, uint32 permId, Optional<int32> realmId)