From bcd6ecbc69fba90189c16e84e74488b2817d0700 Mon Sep 17 00:00:00 2001 From: Marcus Eggenberger Date: Tue, 28 Oct 2008 00:51:23 +0100 Subject: [PATCH] fixing a bug where no backlog is requested after an aborted connect --- src/client/client.cpp | 1 + src/client/clientbacklogmanager.cpp | 9 ++++++--- src/client/clientbacklogmanager.h | 2 ++ 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/client/client.cpp b/src/client/client.cpp index 93c5e215..b0be2a3d 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -302,6 +302,7 @@ void Client::disconnectedFromCore() { emit disconnected(); emit coreConnectionStateChanged(false); + backlogManager()->reset(); messageProcessor()->reset(); // Clear internal data. Hopefully nothing relies on it at this point. diff --git a/src/client/clientbacklogmanager.cpp b/src/client/clientbacklogmanager.cpp index 35d46fa1..518ac243 100644 --- a/src/client/clientbacklogmanager.cpp +++ b/src/client/clientbacklogmanager.cpp @@ -83,9 +83,7 @@ void ClientBacklogManager::stopBuffering() { Q_ASSERT(_requester); dispatchMessages(_requester->bufferedMessages(), true); - - delete _requester; - _requester = 0; + reset(); } bool ClientBacklogManager::isBuffering() { @@ -103,3 +101,8 @@ void ClientBacklogManager::dispatchMessages(const MessageList &messages, bool so emit messagesProcessed(tr("Processed %1 messages in %2 seconds.").arg(msgs.count()).arg((float)(end_t - start_t) / CLOCKS_PER_SEC)); } + +void ClientBacklogManager::reset() { + delete _requester; + _requester = 0; +} diff --git a/src/client/clientbacklogmanager.h b/src/client/clientbacklogmanager.h index 6d76789b..400edcba 100644 --- a/src/client/clientbacklogmanager.h +++ b/src/client/clientbacklogmanager.h @@ -37,6 +37,8 @@ public: // helper for the backlogRequester, as it isn't a QObject and can't emit itself inline void emitMessagesRequested(const QString &msg) const { emit messagesRequested(msg); } + void reset(); + public slots: virtual void receiveBacklog(BufferId bufferId, int lastMsgs, int offset, QVariantList msgs); void requestInitialBacklog(); -- 2.20.1