added spicy new segfaults

This commit is contained in:
fourtf
2017-01-11 01:08:20 +01:00
parent a8c2b1151f
commit 580a411e9d
22 changed files with 472 additions and 111 deletions
+12 -9
View File
@@ -1,8 +1,10 @@
#include "channel.h"
#include "message.h"
Channel Channel::whispers = Channel(QString("/whispers"));
Channel Channel::mentions = Channel(QString("/mentions"));
#include <memory>
Channel Channel::whispers(QString("/whispers"));
Channel Channel::mentions(QString("/mentions"));
QMap<QString, Channel*> Channel::channels = QMap<QString, Channel*>();
@@ -30,7 +32,7 @@ Channel* Channel::addChannel(const QString &channel)
return c;
}
c->referenceCount++;
c->m_referenceCount++;
return c;
}
@@ -60,25 +62,26 @@ void Channel::removeChannel(const QString &channel)
if (c == NULL) return;
c->referenceCount--;
c->m_referenceCount--;
if (c->referenceCount == 0) {
if (c->m_referenceCount == 0) {
channels.remove(channel);
delete c;
}
}
QVector<Message*> Channel::getMessagesClone()
QVector<std::shared_ptr<Message>> Channel::getMessagesClone()
{
m_messageMutex.lock();
QVector M = QVector<Message*>(*m_messages);
QVector<std::shared_ptr<Message>> M(m_messages);
M.detach();
m_messageMutex.unlock();
return M;
}
void Channel::addMessage(Message *message)
void Channel::addMessage(std::shared_ptr<Message> message)
{
m_messageMutex.lock();
// messages
m_messages.append(message);
m_messageMutex.unlock();
}