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 7c7b4760d8)
This commit is contained in:
Shauren
2021-08-16 11:29:54 +02:00
parent 2c2b235bcd
commit bbde3b54b9

View File

@@ -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 };
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)