aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorleak <leak@bitmx.net>2014-07-20 00:39:43 +0200
committerleak <leak@bitmx.net>2014-07-20 00:40:08 +0200
commitdce92611f3ff33e7db0a7234d611f5bffb0cc45f (patch)
tree19f51fac4cccdac6d4e81466a5e643c244239106 /src
parentd2c120f2c2920760c56f1c2d1954bb28b9f2b678 (diff)
Refactored singletons to enable proper deconstruction during shutdown
Diffstat (limited to 'src')
-rw-r--r--src/server/authserver/Main.cpp4
-rw-r--r--src/server/authserver/Realms/RealmList.h6
-rw-r--r--src/server/authserver/Server/AuthSession.cpp4
-rw-r--r--src/server/game/AI/SmartScripts/SmartScriptMgr.h8
-rw-r--r--src/server/game/Accounts/AccountMgr.h4
-rw-r--r--src/server/game/Achievements/AchievementMgr.h4
-rw-r--r--src/server/game/AuctionHouse/AuctionHouseMgr.h4
-rw-r--r--src/server/game/Battlefield/BattlefieldMgr.h4
-rw-r--r--src/server/game/Battlegrounds/ArenaTeamMgr.h4
-rw-r--r--src/server/game/Battlegrounds/BattlegroundMgr.h4
-rw-r--r--src/server/game/Calendar/CalendarMgr.h4
-rw-r--r--src/server/game/Chat/Channels/ChannelMgr.h4
-rw-r--r--src/server/game/Conditions/ConditionMgr.h4
-rw-r--r--src/server/game/DungeonFinding/LFGMgr.h4
-rw-r--r--src/server/game/Entities/Creature/CreatureGroups.h4
-rw-r--r--src/server/game/Entities/Player/SocialMgr.h4
-rw-r--r--src/server/game/Events/GameEventMgr.h4
-rw-r--r--src/server/game/Globals/ObjectAccessor.h4
-rw-r--r--src/server/game/Globals/ObjectMgr.h4
-rw-r--r--src/server/game/Groups/GroupMgr.h4
-rw-r--r--src/server/game/Guilds/GuildMgr.h4
-rw-r--r--src/server/game/Handlers/AddonHandler.h4
-rw-r--r--src/server/game/Instances/InstanceSaveMgr.h4
-rw-r--r--src/server/game/Maps/MapManager.h4
-rw-r--r--src/server/game/Maps/TransportMgr.h4
-rw-r--r--src/server/game/Movement/Waypoints/WaypointManager.h4
-rw-r--r--src/server/game/OutdoorPvP/OutdoorPvPMgr.h4
-rw-r--r--src/server/game/Pools/PoolMgr.h4
-rw-r--r--src/server/game/Scripting/ScriptMgr.h4
-rw-r--r--src/server/game/Scripting/ScriptSystem.h4
-rw-r--r--src/server/game/Server/Protocol/PacketLog.h4
-rw-r--r--src/server/game/Spells/SpellMgr.h5
-rw-r--r--src/server/game/Texts/CreatureTextMgr.h4
-rw-r--r--src/server/game/Tickets/TicketMgr.h4
-rw-r--r--src/server/game/Warden/WardenCheckMgr.h4
-rw-r--r--src/server/game/World/World.h4
-rw-r--r--src/server/shared/Configuration/Config.h4
-rw-r--r--src/server/shared/Dynamic/ObjectRegistry.h4
-rw-r--r--src/server/shared/Logging/Log.h8
39 files changed, 83 insertions, 84 deletions
diff --git a/src/server/authserver/Main.cpp b/src/server/authserver/Main.cpp
index 701f65c0c14..0f200db6af4 100644
--- a/src/server/authserver/Main.cpp
+++ b/src/server/authserver/Main.cpp
@@ -99,9 +99,9 @@ int main(int argc, char** argv)
return 1;
// Get the list of realms for the server
- sRealmList.Initialize(_ioService, sConfigMgr->GetIntDefault("RealmsStateUpdateDelay", 20));
+ sRealmList->Initialize(_ioService, sConfigMgr->GetIntDefault("RealmsStateUpdateDelay", 20));
- if (sRealmList.size() == 0)
+ if (sRealmList->size() == 0)
{
TC_LOG_ERROR("server.authserver", "No valid realms specified.");
return 1;
diff --git a/src/server/authserver/Realms/RealmList.h b/src/server/authserver/Realms/RealmList.h
index b1c77d5a4b5..64419351b57 100644
--- a/src/server/authserver/Realms/RealmList.h
+++ b/src/server/authserver/Realms/RealmList.h
@@ -62,10 +62,10 @@ class RealmList
public:
typedef std::map<std::string, Realm> RealmMap;
- static RealmList& instance()
+ static RealmList* instance()
{
- static RealmList *instance = new RealmList();
- return *instance;
+ static RealmList instance;
+ return &instance;
}
~RealmList();
diff --git a/src/server/authserver/Server/AuthSession.cpp b/src/server/authserver/Server/AuthSession.cpp
index f518dc7593b..987d6dca03f 100644
--- a/src/server/authserver/Server/AuthSession.cpp
+++ b/src/server/authserver/Server/AuthSession.cpp
@@ -797,13 +797,13 @@ bool AuthSession::_HandleRealmList()
uint32 id = fields[0].GetUInt32();
// Update realm list if need
- sRealmList.UpdateIfNeed();
+ sRealmList->UpdateIfNeed();
// Circle through realms in the RealmList and construct the return packet (including # of user characters in each realm)
ByteBuffer pkt;
size_t RealmListSize = 0;
- for (RealmList::RealmMap::const_iterator i = sRealmList.begin(); i != sRealmList.end(); ++i)
+ for (RealmList::RealmMap::const_iterator i = sRealmList->begin(); i != sRealmList->end(); ++i)
{
const Realm &realm = i->second;
// don't work with realms which not compatible with the client
diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.h b/src/server/game/AI/SmartScripts/SmartScriptMgr.h
index 0380ec8bae9..d4afba54498 100644
--- a/src/server/game/AI/SmartScripts/SmartScriptMgr.h
+++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.h
@@ -1403,8 +1403,8 @@ class SmartWaypointMgr
public:
static SmartWaypointMgr* instance()
{
- static SmartWaypointMgr* instance = new SmartWaypointMgr();
- return instance;
+ static SmartWaypointMgr instance;
+ return &instance;
}
void LoadFromDB();
@@ -1439,8 +1439,8 @@ class SmartAIMgr
public:
static SmartAIMgr* instance()
{
- static SmartAIMgr* instance = new SmartAIMgr();
- return instance;
+ static SmartAIMgr instance;
+ return &instance;
}
void LoadSmartAIFromDB();
diff --git a/src/server/game/Accounts/AccountMgr.h b/src/server/game/Accounts/AccountMgr.h
index 2f3137ae3cd..c4b4bd93728 100644
--- a/src/server/game/Accounts/AccountMgr.h
+++ b/src/server/game/Accounts/AccountMgr.h
@@ -57,8 +57,8 @@ class AccountMgr
public:
static AccountMgr* instance()
{
- static AccountMgr* instance = new AccountMgr();
- return instance;
+ static AccountMgr instance;
+ return &instance;
}
AccountOpResult CreateAccount(std::string username, std::string password, std::string email);
diff --git a/src/server/game/Achievements/AchievementMgr.h b/src/server/game/Achievements/AchievementMgr.h
index 7128b8d6318..219a8fd52fb 100644
--- a/src/server/game/Achievements/AchievementMgr.h
+++ b/src/server/game/Achievements/AchievementMgr.h
@@ -310,8 +310,8 @@ class AchievementGlobalMgr
public:
static AchievementGlobalMgr* instance()
{
- static AchievementGlobalMgr* instance = new AchievementGlobalMgr();
- return instance;
+ static AchievementGlobalMgr instance;
+ return &instance;
}
AchievementCriteriaEntryList const& GetAchievementCriteriaByType(AchievementCriteriaTypes type) const
diff --git a/src/server/game/AuctionHouse/AuctionHouseMgr.h b/src/server/game/AuctionHouse/AuctionHouseMgr.h
index 0f42a5833a2..597da13cb1b 100644
--- a/src/server/game/AuctionHouse/AuctionHouseMgr.h
+++ b/src/server/game/AuctionHouse/AuctionHouseMgr.h
@@ -142,8 +142,8 @@ class AuctionHouseMgr
public:
static AuctionHouseMgr* instance()
{
- static AuctionHouseMgr* instance = new AuctionHouseMgr();
- return instance;
+ static AuctionHouseMgr instance;
+ return &instance;
}
typedef std::unordered_map<uint32, Item*> ItemMap;
diff --git a/src/server/game/Battlefield/BattlefieldMgr.h b/src/server/game/Battlefield/BattlefieldMgr.h
index 9b51fd7710e..65b63ea2952 100644
--- a/src/server/game/Battlefield/BattlefieldMgr.h
+++ b/src/server/game/Battlefield/BattlefieldMgr.h
@@ -29,8 +29,8 @@ class BattlefieldMgr
public:
static BattlefieldMgr* instance()
{
- static BattlefieldMgr* instance = new BattlefieldMgr();
- return instance;
+ static BattlefieldMgr instance;
+ return &instance;
}
// create battlefield events
diff --git a/src/server/game/Battlegrounds/ArenaTeamMgr.h b/src/server/game/Battlegrounds/ArenaTeamMgr.h
index 9a4c1184133..118e9674fbf 100644
--- a/src/server/game/Battlegrounds/ArenaTeamMgr.h
+++ b/src/server/game/Battlegrounds/ArenaTeamMgr.h
@@ -29,8 +29,8 @@ private:
public:
static ArenaTeamMgr* instance()
{
- static ArenaTeamMgr* instance = new ArenaTeamMgr();
- return instance;
+ static ArenaTeamMgr instance;
+ return &instance;
}
typedef std::unordered_map<uint32, ArenaTeam*> ArenaTeamContainer;
diff --git a/src/server/game/Battlegrounds/BattlegroundMgr.h b/src/server/game/Battlegrounds/BattlegroundMgr.h
index 21b87d2bb1f..c21c34d1a10 100644
--- a/src/server/game/Battlegrounds/BattlegroundMgr.h
+++ b/src/server/game/Battlegrounds/BattlegroundMgr.h
@@ -64,8 +64,8 @@ class BattlegroundMgr
public:
static BattlegroundMgr* instance()
{
- static BattlegroundMgr* instance = new BattlegroundMgr();
- return instance;
+ static BattlegroundMgr instance;
+ return &instance;
}
void Update(uint32 diff);
diff --git a/src/server/game/Calendar/CalendarMgr.h b/src/server/game/Calendar/CalendarMgr.h
index 6eecd2a4e8b..e238119defb 100644
--- a/src/server/game/Calendar/CalendarMgr.h
+++ b/src/server/game/Calendar/CalendarMgr.h
@@ -282,8 +282,8 @@ class CalendarMgr
public:
static CalendarMgr* instance()
{
- static CalendarMgr* instance = new CalendarMgr();
- return instance;
+ static CalendarMgr instance;
+ return &instance;
}
void LoadFromDB();
diff --git a/src/server/game/Chat/Channels/ChannelMgr.h b/src/server/game/Chat/Channels/ChannelMgr.h
index 0fd5cdbfe24..f3ca9694176 100644
--- a/src/server/game/Chat/Channels/ChannelMgr.h
+++ b/src/server/game/Chat/Channels/ChannelMgr.h
@@ -37,8 +37,8 @@ class ChannelMgr
public:
static ChannelMgr* instance()
{
- static ChannelMgr* instance = new ChannelMgr();
- return instance;
+ static ChannelMgr instance;
+ return &instance;
}
static ChannelMgr * forTeam(uint32 team);
diff --git a/src/server/game/Conditions/ConditionMgr.h b/src/server/game/Conditions/ConditionMgr.h
index a78434776e0..d5428ed2d14 100644
--- a/src/server/game/Conditions/ConditionMgr.h
+++ b/src/server/game/Conditions/ConditionMgr.h
@@ -230,8 +230,8 @@ class ConditionMgr
static ConditionMgr* instance()
{
- static ConditionMgr* instance = new ConditionMgr();
- return instance;
+ static ConditionMgr instance;
+ return &instance;
}
void LoadConditions(bool isReload = false);
diff --git a/src/server/game/DungeonFinding/LFGMgr.h b/src/server/game/DungeonFinding/LFGMgr.h
index 3b38c23232c..547d026dee0 100644
--- a/src/server/game/DungeonFinding/LFGMgr.h
+++ b/src/server/game/DungeonFinding/LFGMgr.h
@@ -298,8 +298,8 @@ class LFGMgr
public:
static LFGMgr* instance()
{
- static LFGMgr* instance = new LFGMgr();
- return instance;
+ static LFGMgr instance;
+ return &instance;
}
// Functions used outside lfg namespace
diff --git a/src/server/game/Entities/Creature/CreatureGroups.h b/src/server/game/Entities/Creature/CreatureGroups.h
index 29832e4ff76..f53de0d48f1 100644
--- a/src/server/game/Entities/Creature/CreatureGroups.h
+++ b/src/server/game/Entities/Creature/CreatureGroups.h
@@ -47,8 +47,8 @@ class FormationMgr
public:
static FormationMgr* instance()
{
- static FormationMgr* instance = new FormationMgr();
- return instance;
+ static FormationMgr instance;
+ return &instance;
}
void AddCreatureToGroup(uint32 group_id, Creature* creature);
diff --git a/src/server/game/Entities/Player/SocialMgr.h b/src/server/game/Entities/Player/SocialMgr.h
index 68c25fbf648..3ed41a847ef 100644
--- a/src/server/game/Entities/Player/SocialMgr.h
+++ b/src/server/game/Entities/Player/SocialMgr.h
@@ -129,8 +129,8 @@ class SocialMgr
public:
static SocialMgr* instance()
{
- static SocialMgr* instance = new SocialMgr();
- return instance;
+ static SocialMgr instance;
+ return &instance;
}
// Misc
diff --git a/src/server/game/Events/GameEventMgr.h b/src/server/game/Events/GameEventMgr.h
index 94beb9912d5..e5c00da5e91 100644
--- a/src/server/game/Events/GameEventMgr.h
+++ b/src/server/game/Events/GameEventMgr.h
@@ -101,8 +101,8 @@ class GameEventMgr
public:
static GameEventMgr* instance()
{
- static GameEventMgr* instance = new GameEventMgr();
- return instance;
+ static GameEventMgr instance;
+ return &instance;
}
typedef std::set<uint16> ActiveEvents;
diff --git a/src/server/game/Globals/ObjectAccessor.h b/src/server/game/Globals/ObjectAccessor.h
index 79799cec55f..8c92a8f3a6e 100644
--- a/src/server/game/Globals/ObjectAccessor.h
+++ b/src/server/game/Globals/ObjectAccessor.h
@@ -94,8 +94,8 @@ class ObjectAccessor
static ObjectAccessor* instance()
{
- static ObjectAccessor *instance = new ObjectAccessor();
- return instance;
+ static ObjectAccessor instance;
+ return &instance;
}
template<class T> static T* GetObjectInOrOutOfWorld(uint64 guid, T* /*typeSpecifier*/)
diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h
index 1a7fd311ba0..738b99778f8 100644
--- a/src/server/game/Globals/ObjectMgr.h
+++ b/src/server/game/Globals/ObjectMgr.h
@@ -694,8 +694,8 @@ class ObjectMgr
public:
static ObjectMgr* instance()
{
- static ObjectMgr* instance = new ObjectMgr();
- return instance;
+ static ObjectMgr instance;
+ return &instance;
}
typedef std::unordered_map<uint32, Item*> ItemMap;
diff --git a/src/server/game/Groups/GroupMgr.h b/src/server/game/Groups/GroupMgr.h
index 4bf440c881e..556df1bc351 100644
--- a/src/server/game/Groups/GroupMgr.h
+++ b/src/server/game/Groups/GroupMgr.h
@@ -29,8 +29,8 @@ private:
public:
static GroupMgr* instance()
{
- static GroupMgr* instance = new GroupMgr();
- return instance;
+ static GroupMgr instance;
+ return &instance;
}
typedef std::map<uint32, Group*> GroupContainer;
diff --git a/src/server/game/Guilds/GuildMgr.h b/src/server/game/Guilds/GuildMgr.h
index 032a8864e3e..4aa418b7e73 100644
--- a/src/server/game/Guilds/GuildMgr.h
+++ b/src/server/game/Guilds/GuildMgr.h
@@ -29,8 +29,8 @@ private:
public:
static GuildMgr* instance()
{
- static GuildMgr* instance = new GuildMgr();
- return instance;
+ static GuildMgr instance;
+ return &instance;
}
Guild* GetGuildByLeader(uint64 guid) const;
diff --git a/src/server/game/Handlers/AddonHandler.h b/src/server/game/Handlers/AddonHandler.h
index 31bbfa01900..c60f2942efd 100644
--- a/src/server/game/Handlers/AddonHandler.h
+++ b/src/server/game/Handlers/AddonHandler.h
@@ -28,8 +28,8 @@ class AddonHandler
public:
static AddonHandler* instance()
{
- static AddonHandler* instance = new AddonHandler();
- return instance;
+ static AddonHandler instance;
+ return &instance;
}
bool BuildAddonPacket(WorldPacket* Source, WorldPacket* Target);
diff --git a/src/server/game/Instances/InstanceSaveMgr.h b/src/server/game/Instances/InstanceSaveMgr.h
index 98b37386a3f..52e6a847211 100644
--- a/src/server/game/Instances/InstanceSaveMgr.h
+++ b/src/server/game/Instances/InstanceSaveMgr.h
@@ -160,8 +160,8 @@ class InstanceSaveManager
static InstanceSaveManager* instance()
{
- static InstanceSaveManager *instance = new InstanceSaveManager();
- return instance;
+ static InstanceSaveManager instance;
+ return &instance;
}
/* resetTime is a global propery of each (raid/heroic) map
diff --git a/src/server/game/Maps/MapManager.h b/src/server/game/Maps/MapManager.h
index 990d5e80c1a..e028833d72d 100644
--- a/src/server/game/Maps/MapManager.h
+++ b/src/server/game/Maps/MapManager.h
@@ -32,8 +32,8 @@ class MapManager
public:
static MapManager* instance()
{
- static MapManager* instance = new MapManager();
- return instance;
+ static MapManager instance;
+ return &instance;
}
Map* CreateBaseMap(uint32 mapId);
diff --git a/src/server/game/Maps/TransportMgr.h b/src/server/game/Maps/TransportMgr.h
index 6ebc6316710..04c372cc526 100644
--- a/src/server/game/Maps/TransportMgr.h
+++ b/src/server/game/Maps/TransportMgr.h
@@ -100,8 +100,8 @@ class TransportMgr
public:
static TransportMgr* instance()
{
- static TransportMgr* instance = new TransportMgr();
- return instance;
+ static TransportMgr instance;
+ return &instance;
}
void Unload();
diff --git a/src/server/game/Movement/Waypoints/WaypointManager.h b/src/server/game/Movement/Waypoints/WaypointManager.h
index b12396293aa..385f4809729 100644
--- a/src/server/game/Movement/Waypoints/WaypointManager.h
+++ b/src/server/game/Movement/Waypoints/WaypointManager.h
@@ -39,8 +39,8 @@ class WaypointMgr
public:
static WaypointMgr* instance()
{
- static WaypointMgr* instance = new WaypointMgr();
- return instance;
+ static WaypointMgr instance;
+ return &instance;
}
// Attempts to reload a single path from database
diff --git a/src/server/game/OutdoorPvP/OutdoorPvPMgr.h b/src/server/game/OutdoorPvP/OutdoorPvPMgr.h
index ab1908e273d..1a9db2b682e 100644
--- a/src/server/game/OutdoorPvP/OutdoorPvPMgr.h
+++ b/src/server/game/OutdoorPvP/OutdoorPvPMgr.h
@@ -44,8 +44,8 @@ class OutdoorPvPMgr
public:
static OutdoorPvPMgr* instance()
{
- static OutdoorPvPMgr* instance = new OutdoorPvPMgr();
- return instance;
+ static OutdoorPvPMgr instance;
+ return &instance;
}
// create outdoor pvp events
diff --git a/src/server/game/Pools/PoolMgr.h b/src/server/game/Pools/PoolMgr.h
index 0a3f52b55f6..d1fcadd40de 100644
--- a/src/server/game/Pools/PoolMgr.h
+++ b/src/server/game/Pools/PoolMgr.h
@@ -110,8 +110,8 @@ class PoolMgr
public:
static PoolMgr* instance()
{
- static PoolMgr* instance = new PoolMgr();
- return instance;
+ static PoolMgr instance;
+ return &instance;
}
void LoadFromDB();
diff --git a/src/server/game/Scripting/ScriptMgr.h b/src/server/game/Scripting/ScriptMgr.h
index 260c43f9b3b..325a0743d79 100644
--- a/src/server/game/Scripting/ScriptMgr.h
+++ b/src/server/game/Scripting/ScriptMgr.h
@@ -881,8 +881,8 @@ class ScriptMgr
public: /* Initialization */
static ScriptMgr* instance()
{
- static ScriptMgr* instance = new ScriptMgr();
- return instance;
+ static ScriptMgr instance;
+ return &instance;
}
void Initialize();
diff --git a/src/server/game/Scripting/ScriptSystem.h b/src/server/game/Scripting/ScriptSystem.h
index 636343838c1..74c51e5b136 100644
--- a/src/server/game/Scripting/ScriptSystem.h
+++ b/src/server/game/Scripting/ScriptSystem.h
@@ -54,8 +54,8 @@ class SystemMgr
public:
static SystemMgr* instance()
{
- static SystemMgr* instance = new SystemMgr();
- return instance;
+ static SystemMgr instance;
+ return &instance;
}
typedef std::unordered_map<uint32, ScriptPointVector> PointMoveMap;
diff --git a/src/server/game/Server/Protocol/PacketLog.h b/src/server/game/Server/Protocol/PacketLog.h
index 71d87bf45ae..4f298fa3c50 100644
--- a/src/server/game/Server/Protocol/PacketLog.h
+++ b/src/server/game/Server/Protocol/PacketLog.h
@@ -37,8 +37,8 @@ class PacketLog
public:
static PacketLog* instance()
{
- static PacketLog* instance = new PacketLog();
- return instance;
+ static PacketLog instance;
+ return &instance;
}
void Initialize();
diff --git a/src/server/game/Spells/SpellMgr.h b/src/server/game/Spells/SpellMgr.h
index 53b4cef73e8..448ddb9860b 100644
--- a/src/server/game/Spells/SpellMgr.h
+++ b/src/server/game/Spells/SpellMgr.h
@@ -610,9 +610,8 @@ class SpellMgr
public:
static SpellMgr* instance()
{
- static SpellMgr* instance = new SpellMgr();
-
- return instance;
+ static SpellMgr instance;
+ return &instance;
}
// Spell correctness for client using
diff --git a/src/server/game/Texts/CreatureTextMgr.h b/src/server/game/Texts/CreatureTextMgr.h
index f8c499f7ce6..18dc7683b8d 100644
--- a/src/server/game/Texts/CreatureTextMgr.h
+++ b/src/server/game/Texts/CreatureTextMgr.h
@@ -89,8 +89,8 @@ class CreatureTextMgr
public:
static CreatureTextMgr* instance()
{
- static CreatureTextMgr* instance = new CreatureTextMgr();
- return instance;
+ static CreatureTextMgr instance;
+ return &instance;
}
void LoadCreatureTexts();
diff --git a/src/server/game/Tickets/TicketMgr.h b/src/server/game/Tickets/TicketMgr.h
index 00b4e228fab..5ad44365e7f 100644
--- a/src/server/game/Tickets/TicketMgr.h
+++ b/src/server/game/Tickets/TicketMgr.h
@@ -180,8 +180,8 @@ private:
public:
static TicketMgr* instance()
{
- static TicketMgr* instance = new TicketMgr();
- return instance;
+ static TicketMgr instance;
+ return &instance;
}
void LoadTickets();
diff --git a/src/server/game/Warden/WardenCheckMgr.h b/src/server/game/Warden/WardenCheckMgr.h
index c9e26283060..4a56c1fc849 100644
--- a/src/server/game/Warden/WardenCheckMgr.h
+++ b/src/server/game/Warden/WardenCheckMgr.h
@@ -57,8 +57,8 @@ class WardenCheckMgr
public:
static WardenCheckMgr* instance()
{
- static WardenCheckMgr* instance = new WardenCheckMgr();
- return instance;
+ static WardenCheckMgr instance;
+ return &instance;
}
// We have a linear key without any gaps, so we use vector for fast access
diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h
index 22dece5d4f0..7d3c7694463 100644
--- a/src/server/game/World/World.h
+++ b/src/server/game/World/World.h
@@ -520,8 +520,8 @@ class World
public:
static World* instance()
{
- static World* instance = new World();
- return instance;
+ static World instance;
+ return &instance;
}
static std::atomic<uint32> m_worldLoopCounter;
diff --git a/src/server/shared/Configuration/Config.h b/src/server/shared/Configuration/Config.h
index 68daca5440f..42c3a700f3f 100644
--- a/src/server/shared/Configuration/Config.h
+++ b/src/server/shared/Configuration/Config.h
@@ -35,8 +35,8 @@ public:
static ConfigMgr* instance()
{
- static ConfigMgr *instance = new ConfigMgr();
- return instance;
+ static ConfigMgr instance;
+ return &instance;
}
bool Reload();
diff --git a/src/server/shared/Dynamic/ObjectRegistry.h b/src/server/shared/Dynamic/ObjectRegistry.h
index e9e57415073..fe55982f15f 100644
--- a/src/server/shared/Dynamic/ObjectRegistry.h
+++ b/src/server/shared/Dynamic/ObjectRegistry.h
@@ -35,8 +35,8 @@ class ObjectRegistry
static ObjectRegistry<T, Key>* instance()
{
- static ObjectRegistry<T, Key>* instance = new ObjectRegistry<T, Key>();
- return instance;
+ static ObjectRegistry<T, Key> instance;
+ return &instance;
}
/// Returns a registry item
diff --git a/src/server/shared/Logging/Log.h b/src/server/shared/Logging/Log.h
index e739c9eaf4e..8ae8db5bf5f 100644
--- a/src/server/shared/Logging/Log.h
+++ b/src/server/shared/Logging/Log.h
@@ -43,15 +43,15 @@ class Log
static Log* instance(boost::asio::io_service* ioService = nullptr)
{
- static Log* instance = new Log();
+ static Log instance;
if (ioService != nullptr)
{
- instance->_ioService = ioService;
- instance->_strand = new boost::asio::strand(*ioService);
+ instance._ioService = ioService;
+ instance._strand = new boost::asio::strand(*ioService);
}
- return instance;
+ return &instance;
}
void LoadFromConfig();