This should fix a bug resulting in a crash, when a IrcUser object was not destroyed...
[quassel.git] / src / core / ircserverhandler.cpp
index 2143050..d83e420 100644 (file)
@@ -153,7 +153,7 @@ void IrcServerHandler::handleJoin(QString prefix, QStringList params) {
   QString channel = params[0];
   IrcUser *ircuser = networkInfo()->updateNickFromMask(prefix);
   emit displayMsg(Message::Join, channel, channel, prefix);
-
+  qDebug() << "IrcServerHandler::handleJoin()" << prefix << params;
   ircuser->joinChannel(channel);
 }
 
@@ -285,6 +285,7 @@ void IrcServerHandler::handlePrivmsg(QString prefix, QStringList params) {
 void IrcServerHandler::handleQuit(QString prefix, QStringList params) {
   IrcUser *ircuser = networkInfo()->updateNickFromMask(prefix);
   Q_ASSERT(ircuser);
+  qDebug() << "IrcServerHandler:handleQuit" << prefix << params;
 
   QString msg;
   if(params.count())
@@ -292,8 +293,8 @@ void IrcServerHandler::handleQuit(QString prefix, QStringList params) {
   
   foreach(QString channel, ircuser->channels())
     emit displayMsg(Message::Quit, channel, msg, prefix);
-
-  ircuser->deleteLater();
+  
+  networkInfo()->removeIrcUser(nickFromMask(prefix));
 }
 
 void IrcServerHandler::handleTopic(QString prefix, QStringList params) {