diff --git a/IRCNetwork.cpp b/IRCNetwork.cpp index 7610d0ff..98b11544 100644 --- a/IRCNetwork.cpp +++ b/IRCNetwork.cpp @@ -134,10 +134,6 @@ CIRCNetwork::CIRCNetwork(CUser *pUser, const CIRCNetwork *pNetwork, bool bCloneC } CIRCNetwork::~CIRCNetwork() { - // Delete modules (this unloads all modules) - delete m_pModules; - m_pModules = NULL; - // Delete clients for (vector::const_iterator it = m_vClients.begin(); it != m_vClients.end(); ++it) { CZNC::Get().GetManager().DelSockByAddr(*it); @@ -147,6 +143,10 @@ CIRCNetwork::~CIRCNetwork() { // Delete servers DelServers(); + // Delete modules (this unloads all modules) + delete m_pModules; + m_pModules = NULL; + // Delete Channels for (vector::const_iterator it = m_vChans.begin(); it != m_vChans.end(); ++it) { delete *it; diff --git a/User.cpp b/User.cpp index 80767798..f3ee3780 100644 --- a/User.cpp +++ b/User.cpp @@ -88,10 +88,6 @@ CUser::CUser(const CString& sUserName) } CUser::~CUser() { - // Delete modules (unloads all modules!) - delete m_pModules; - m_pModules = NULL; - // Delete networks for (unsigned int c = 0; c < m_vIRCNetworks.size(); c++) { CIRCNetwork* pNetwork = m_vIRCNetworks[c]; @@ -106,6 +102,10 @@ CUser::~CUser() { } m_vClients.clear(); + // Delete modules (unloads all modules!) + delete m_pModules; + m_pModules = NULL; + CZNC::Get().GetManager().DelCronByAddr(m_pUserTimer); CZNC::Get().AddBytesRead(BytesRead());