From 9abfaaa771f91010dbe01a1b9b5b9e2801956718 Mon Sep 17 00:00:00 2001 From: Tobias Markmann Date: Thu, 29 Sep 2016 17:22:52 +0200 Subject: Fix uninitialised class members Initialised previously uninitialised class members. Changed some raw pointers to std::unique_ptr for clearer and automatically initialised code. Test-Information: Builds on macOS 10.12 and unit tests pass in ASAN-enabled build. Change-Id: I7900fe6131119c228ca92c79c0ee8125137f2e48 diff --git a/Sluift/SluiftClient.h b/Sluift/SluiftClient.h index 1b0dd43..2c221e6 100644 --- a/Sluift/SluiftClient.h +++ b/Sluift/SluiftClient.h @@ -123,10 +123,10 @@ namespace Swift { Client* client; ClientOptions options; ClientXMLTracer* tracer; - bool rosterReceived; + bool rosterReceived = false; std::deque pendingEvents; boost::optional disconnectedError; - bool requestResponseReceived; + bool requestResponseReceived = false; std::shared_ptr requestResponse; std::shared_ptr requestError; }; diff --git a/Sluift/SluiftComponent.h b/Sluift/SluiftComponent.h index 675d6c0..d45c3b2 100644 --- a/Sluift/SluiftComponent.h +++ b/Sluift/SluiftComponent.h @@ -102,7 +102,7 @@ namespace Swift { ComponentXMLTracer* tracer; std::deque pendingEvents; boost::optional disconnectedError; - bool requestResponseReceived; + bool requestResponseReceived = false; std::shared_ptr requestResponse; std::shared_ptr requestError; }; diff --git a/SwifTools/Idle/UnitTest/ActualIdleDetectorTest.cpp b/SwifTools/Idle/UnitTest/ActualIdleDetectorTest.cpp index fa9b184..ecd72b1 100644 --- a/SwifTools/Idle/UnitTest/ActualIdleDetectorTest.cpp +++ b/SwifTools/Idle/UnitTest/ActualIdleDetectorTest.cpp @@ -30,16 +30,11 @@ class ActualIdleDetectorTest : public CppUnit::TestFixture { public: void setUp() { - querier = new MockIdleQuerier(); - timerFactory = new MockTimerFactory(); + querier = std::unique_ptr(new MockIdleQuerier()); + timerFactory = std::unique_ptr(new MockTimerFactory()); idleEvents.clear(); } - void tearDown() { - delete timerFactory; - delete querier; - } - void testDestructor() { ActualIdleDetector* testling = createDetector(); testling->setIdleTimeSeconds(15); @@ -101,7 +96,7 @@ class ActualIdleDetectorTest : public CppUnit::TestFixture { private: ActualIdleDetector* createDetector() { - ActualIdleDetector* detector = new ActualIdleDetector(querier, timerFactory, 10); + ActualIdleDetector* detector = new ActualIdleDetector(querier.get(), timerFactory.get(), 10); detector->onIdleChanged.connect(boost::bind(&ActualIdleDetectorTest::handleIdle, this, _1)); return detector; } @@ -165,8 +160,8 @@ class ActualIdleDetectorTest : public CppUnit::TestFixture { std::vector > timers; }; - MockIdleQuerier* querier; - MockTimerFactory* timerFactory; + std::unique_ptr querier; + std::unique_ptr timerFactory; std::vector idleEvents; }; diff --git a/Swift/Controllers/Chat/ChatController.h b/Swift/Controllers/Chat/ChatController.h index 99f8e23..7bd6107 100644 --- a/Swift/Controllers/Chat/ChatController.h +++ b/Swift/Controllers/Chat/ChatController.h @@ -98,7 +98,7 @@ namespace Swift { UIEventStream* eventStream_; Tristate contactSupportsReceipts_; - bool receivingPresenceFromUs_; + bool receivingPresenceFromUs_ = false; bool userWantsReceipts_; std::map ftControllers; SettingsProvider* settings_; diff --git a/Swift/Controllers/HistoryViewController.h b/Swift/Controllers/HistoryViewController.h index 4c4d9f9..75fc460 100644 --- a/Swift/Controllers/HistoryViewController.h +++ b/Swift/Controllers/HistoryViewController.h @@ -69,7 +69,7 @@ namespace Swift { std::map contacts_; ContactRosterItem* selectedItem_; - HistoryMessage::Type selectedItemType_; + HistoryMessage::Type selectedItemType_ = HistoryMessage::Chat; boost::gregorian::date currentResultDate_; }; } diff --git a/Swift/Controllers/MainController.h b/Swift/Controllers/MainController.h index 4f691ee..cc3d45f 100644 --- a/Swift/Controllers/MainController.h +++ b/Swift/Controllers/MainController.h @@ -187,7 +187,7 @@ namespace Swift { int timeBeforeNextReconnect_; Timer::ref reconnectTimer_; StatusTracker* statusTracker_; - bool myStatusLooksOnline_; + bool myStatusLooksOnline_ = false; bool quitRequested_; bool offlineRequested_; static const int SecondsToWaitBeforeForceQuitting; diff --git a/Swift/Controllers/Roster/UnitTest/RosterTest.cpp b/Swift/Controllers/Roster/UnitTest/RosterTest.cpp index 4687176..5f500d4 100644 --- a/Swift/Controllers/Roster/UnitTest/RosterTest.cpp +++ b/Swift/Controllers/Roster/UnitTest/RosterTest.cpp @@ -30,11 +30,7 @@ class RosterTest : public CppUnit::TestFixture { jid1_ = JID("a@b.c"); jid2_ = JID("b@c.d"); jid3_ = JID("c@d.e"); - roster_ = new Roster(); - } - - void tearDown() { - delete roster_; + roster_ = std::unique_ptr(new Roster()); } void testGetGroup() { @@ -136,7 +132,7 @@ class RosterTest : public CppUnit::TestFixture { } private: - Roster *roster_; + std::unique_ptr roster_; JID jid1_; JID jid2_; JID jid3_; diff --git a/Swift/Controllers/Roster/UnitTest/TableRosterTest.cpp b/Swift/Controllers/Roster/UnitTest/TableRosterTest.cpp index e4e8bdb..ddc8785 100644 --- a/Swift/Controllers/Roster/UnitTest/TableRosterTest.cpp +++ b/Swift/Controllers/Roster/UnitTest/TableRosterTest.cpp @@ -13,10 +13,11 @@ std::ostream& operator<<(std::ostream& os, const Swift::TableRoster::Index& i) { return os; } +#include + #include #include -#include #include #include @@ -33,17 +34,12 @@ class TableRosterTest : public CppUnit::TestFixture { public: void setUp() { - timerFactory = new DummyTimerFactory(); - roster = new Roster(); + timerFactory = std::unique_ptr(new DummyTimerFactory()); + roster = std::unique_ptr(new Roster()); jid1 = JID("jid1@example.com"); jid2 = JID("jid2@example.com"); } - void tearDown() { - delete roster; - delete timerFactory; - } - void testAddContact_EmptyRoster() { /* std::shared_ptr tableRoster(createTestling()); @@ -73,7 +69,7 @@ class TableRosterTest : public CppUnit::TestFixture { } TableRoster* createTestling() { - TableRoster* result = new TableRoster(roster, timerFactory, 10); + TableRoster* result = new TableRoster(roster.get(), timerFactory.get(), 10); result->onUpdate.connect(boost::bind(&TableRosterTest::handleUpdate, this, _1)); return result; } @@ -83,8 +79,8 @@ class TableRosterTest : public CppUnit::TestFixture { } private: - DummyTimerFactory* timerFactory; - Roster* roster; + std::unique_ptr timerFactory; + std::unique_ptr roster; JID jid1; JID jid2; std::vector updates; diff --git a/Swift/Controllers/Settings/UnitTest/SettingsProviderHierachyTest.cpp b/Swift/Controllers/Settings/UnitTest/SettingsProviderHierachyTest.cpp index 5822add..3cfebc7 100644 --- a/Swift/Controllers/Settings/UnitTest/SettingsProviderHierachyTest.cpp +++ b/Swift/Controllers/Settings/UnitTest/SettingsProviderHierachyTest.cpp @@ -4,6 +4,8 @@ * See the COPYING file for more information. */ +#include + #include #include @@ -29,17 +31,11 @@ public: SettingsProviderHierachyTest() : setting1("somekey", 42) {} void setUp() { - bottom = new DummySettingsProvider(); - top = new DummySettingsProvider(); - testling = new SettingsProviderHierachy(); - testling->addProviderToTopOfStack(bottom); - testling->addProviderToTopOfStack(top); - } - - void tearDown() { - delete testling; - delete top; - delete bottom; + bottom = std::unique_ptr(new DummySettingsProvider()); + top = std::unique_ptr(new DummySettingsProvider()); + testling = std::unique_ptr(new SettingsProviderHierachy()); + testling->addProviderToTopOfStack(bottom.get()); + testling->addProviderToTopOfStack(top.get()); } void testEmpty() { @@ -82,9 +78,9 @@ public: CPPUNIT_ASSERT_EQUAL(17, testling->getSetting(setting1)); } private: - SettingsProviderHierachy* testling; - DummySettingsProvider* bottom; - DummySettingsProvider* top; + std::unique_ptr testling; + std::unique_ptr bottom; + std::unique_ptr top; SettingsProvider::Setting setting1; }; diff --git a/Swift/Controllers/UnitTest/MockChatWindow.h b/Swift/Controllers/UnitTest/MockChatWindow.h index 054cd31..9b943f0 100644 --- a/Swift/Controllers/UnitTest/MockChatWindow.h +++ b/Swift/Controllers/UnitTest/MockChatWindow.h @@ -14,7 +14,7 @@ namespace Swift { class MockChatWindow : public ChatWindow { public: - MockChatWindow() : labelsEnabled_(false), impromptuMUCSupported_(false) {} + MockChatWindow() {} virtual ~MockChatWindow(); virtual std::string addMessage(const ChatMessage& message, const std::string& senderName, bool senderIsSelf, std::shared_ptr /*label*/, const std::string& /*avatarPath*/, const boost::posix_time::ptime& /*time*/) { @@ -128,21 +128,21 @@ namespace Swift { std::string name_; ChatMessage lastAddedMessage_; std::string lastAddedMessageSenderName_; - bool lastAddedMessageSenderIsSelf_; + bool lastAddedMessageSenderIsSelf_ = false; ChatMessage lastAddedAction_; std::string lastAddedActionSenderName_; - bool lastAddedActionSenderIsSelf_; + bool lastAddedActionSenderIsSelf_ = false; ChatMessage lastAddedPresence_; ChatMessage lastReplacedMessage_; ChatMessage lastAddedSystemMessage_; ChatMessage lastReplacedSystemMessage_; - ChatMessage lastAddedErrorMessage_; + ChatMessage lastAddedErrorMessage_; JID lastMUCInvitationJID_; std::vector labels_; - bool labelsEnabled_; - bool impromptuMUCSupported_; + bool labelsEnabled_ = false; + bool impromptuMUCSupported_ = false; SecurityLabelsCatalog::Item label_; - Roster* roster_; + Roster* roster_ = nullptr; std::vector> receiptChanges_; }; } diff --git a/Swift/QtUI/QtHighlightEditor.h b/Swift/QtUI/QtHighlightEditor.h index dbcef4b..c4a12e2 100644 --- a/Swift/QtUI/QtHighlightEditor.h +++ b/Swift/QtUI/QtHighlightEditor.h @@ -68,7 +68,7 @@ namespace Swift { private: Ui::QtHighlightEditor ui_; QtSettingsProvider* settings_; - HighlightManager* highlightManager_; + HighlightManager* highlightManager_ = nullptr; QtSuggestingJIDInput* jid_; int previousRow_; }; diff --git a/Swift/QtUI/QtLoginWindow.h b/Swift/QtUI/QtLoginWindow.h index 91b21f6..c42d65d 100644 --- a/Swift/QtUI/QtLoginWindow.h +++ b/Swift/QtUI/QtLoginWindow.h @@ -98,7 +98,7 @@ namespace Swift { QMenuBar* menuBar_; QMenu* swiftMenu_; QMenu* generalMenu_; - QMenu* viewMenu_; + QMenu* viewMenu_ = nullptr; QAction* toggleSoundsAction_; QAction* toggleNotificationsAction_; UIEventStream* uiEventStream_; diff --git a/Swift/QtUI/Roster/QtTreeWidget.cpp b/Swift/QtUI/Roster/QtTreeWidget.cpp index f04575d..1264a09 100644 --- a/Swift/QtUI/Roster/QtTreeWidget.cpp +++ b/Swift/QtUI/Roster/QtTreeWidget.cpp @@ -33,9 +33,7 @@ namespace Swift { -QtTreeWidget::QtTreeWidget(UIEventStream* eventStream, SettingsProvider* settings, MessageTarget messageTarget, QWidget* parent) : QTreeView(parent), tooltipShown_(false), messageTarget_(messageTarget) { - eventStream_ = eventStream; - settings_ = settings; +QtTreeWidget::QtTreeWidget(UIEventStream* eventStream, SettingsProvider* settings, MessageTarget messageTarget, QWidget* parent) : QTreeView(parent), eventStream_(eventStream), settings_(settings), messageTarget_(messageTarget) { model_ = new RosterModel(this, settings_->getSetting(QtUISettingConstants::USE_SCREENREADER)); setModel(model_); delegate_ = new RosterDelegate(this, settings_->getSetting(QtUISettingConstants::COMPACT_ROSTER)); diff --git a/Swift/QtUI/Roster/QtTreeWidget.h b/Swift/QtUI/Roster/QtTreeWidget.h index b22f6bb..331458a 100644 --- a/Swift/QtUI/Roster/QtTreeWidget.h +++ b/Swift/QtUI/Roster/QtTreeWidget.h @@ -68,13 +68,13 @@ class QtTreeWidget : public QTreeView { private: RosterModel* model_; - Roster* roster_; + Roster* roster_ = nullptr; RosterDelegate* delegate_; - QtTreeWidgetItem* treeRoot_; + QtTreeWidgetItem* treeRoot_ = nullptr; SettingsProvider* settings_; - bool tooltipShown_; + bool tooltipShown_ = false; MessageTarget messageTarget_; - bool isOnline_; + bool isOnline_ = false; }; } diff --git a/Swift/QtUI/Trellis/QtDNDTabBar.h b/Swift/QtUI/Trellis/QtDNDTabBar.h index e9b6771..6de04d5 100644 --- a/Swift/QtUI/Trellis/QtDNDTabBar.h +++ b/Swift/QtUI/Trellis/QtDNDTabBar.h @@ -36,9 +36,9 @@ class QtDNDTabBar : public QTabBar { private: int defaultTabHeight; - int dragIndex; + int dragIndex = -1; QString dragText; - QWidget* dragWidget; + QWidget* dragWidget = nullptr; }; } diff --git a/Swift/QtUI/Whiteboard/QtWhiteboardWindow.h b/Swift/QtUI/Whiteboard/QtWhiteboardWindow.h index 3b3f74e..21aa7ca 100644 --- a/Swift/QtUI/Whiteboard/QtWhiteboardWindow.h +++ b/Swift/QtUI/Whiteboard/QtWhiteboardWindow.h @@ -76,7 +76,6 @@ namespace Swift { QHBoxLayout* fillLayout; ColorWidget* strokeColor; ColorWidget* fillColor; - QWidget* widget; QPushButton* moveUpButton; QPushButton* moveDownButton; QSpinBox* widthBox; diff --git a/Swiften/Avatars/UnitTest/CombinedAvatarProviderTest.cpp b/Swiften/Avatars/UnitTest/CombinedAvatarProviderTest.cpp index 288a5af..8aca98e 100644 --- a/Swiften/Avatars/UnitTest/CombinedAvatarProviderTest.cpp +++ b/Swiften/Avatars/UnitTest/CombinedAvatarProviderTest.cpp @@ -4,6 +4,7 @@ * See the COPYING file for more information. */ +#include #include #include @@ -47,8 +48,8 @@ class CombinedAvatarProviderTest : public CppUnit::TestFixture { public: void setUp() { - avatarProvider1 = new DummyAvatarProvider(); - avatarProvider2 = new DummyAvatarProvider(); + avatarProvider1 = std::unique_ptr(new DummyAvatarProvider()); + avatarProvider2 = std::unique_ptr(new DummyAvatarProvider()); user1 = JID("user1@bar.com/bla"); user2 = JID("user2@foo.com/baz"); avatarHash1 = "ABCDEFG"; @@ -56,11 +57,6 @@ class CombinedAvatarProviderTest : public CppUnit::TestFixture { avatarHash3 = "IDGH"; } - void tearDown() { - delete avatarProvider1; - delete avatarProvider2; - } - void testGetAvatarWithNoAvatarProviderReturnsEmpty() { std::shared_ptr testling(createProvider()); @@ -71,7 +67,7 @@ class CombinedAvatarProviderTest : public CppUnit::TestFixture { void testGetAvatarWithSingleAvatarProvider() { std::shared_ptr testling(createProvider()); avatarProvider1->avatars[user1] = avatarHash1; - testling->addProvider(avatarProvider1); + testling->addProvider(avatarProvider1.get()); boost::optional hash = testling->getAvatarHash(user1); CPPUNIT_ASSERT(hash); @@ -82,8 +78,8 @@ class CombinedAvatarProviderTest : public CppUnit::TestFixture { std::shared_ptr testling(createProvider()); avatarProvider1->avatars[user1] = avatarHash1; avatarProvider2->avatars[user1] = avatarHash2; - testling->addProvider(avatarProvider1); - testling->addProvider(avatarProvider2); + testling->addProvider(avatarProvider1.get()); + testling->addProvider(avatarProvider2.get()); boost::optional hash = testling->getAvatarHash(user1); CPPUNIT_ASSERT(hash); @@ -93,8 +89,8 @@ class CombinedAvatarProviderTest : public CppUnit::TestFixture { void testGetAvatarWithMultipleAvatarProviderAndFailingFirstProviderReturnsSecondAvatar() { std::shared_ptr testling(createProvider()); avatarProvider2->avatars[user1] = avatarHash2; - testling->addProvider(avatarProvider1); - testling->addProvider(avatarProvider2); + testling->addProvider(avatarProvider1.get()); + testling->addProvider(avatarProvider2.get()); boost::optional hash = testling->getAvatarHash(user1); CPPUNIT_ASSERT(hash); @@ -103,7 +99,7 @@ class CombinedAvatarProviderTest : public CppUnit::TestFixture { void testProviderUpdateTriggersChange() { std::shared_ptr testling(createProvider()); - testling->addProvider(avatarProvider1); + testling->addProvider(avatarProvider1.get()); avatarProvider1->avatars[user1] = avatarHash1; avatarProvider1->onAvatarChanged(user1); @@ -113,8 +109,8 @@ class CombinedAvatarProviderTest : public CppUnit::TestFixture { void testProviderUpdateWithoutChangeDoesNotTriggerChange() { std::shared_ptr testling(createProvider()); - testling->addProvider(avatarProvider1); - testling->addProvider(avatarProvider2); + testling->addProvider(avatarProvider1.get()); + testling->addProvider(avatarProvider2.get()); avatarProvider1->avatars[user1] = avatarHash1; avatarProvider1->onAvatarChanged(user1); changes.clear(); @@ -127,7 +123,7 @@ class CombinedAvatarProviderTest : public CppUnit::TestFixture { void testProviderSecondUpdateTriggersChange() { std::shared_ptr testling(createProvider()); - testling->addProvider(avatarProvider1); + testling->addProvider(avatarProvider1.get()); avatarProvider1->avatars[user1] = avatarHash1; avatarProvider1->onAvatarChanged(user1); changes.clear(); @@ -141,7 +137,7 @@ class CombinedAvatarProviderTest : public CppUnit::TestFixture { void testProviderUpdateWithAvatarDisappearingTriggersChange() { std::shared_ptr testling(createProvider()); - testling->addProvider(avatarProvider1); + testling->addProvider(avatarProvider1.get()); avatarProvider1->avatars[user1] = avatarHash1; avatarProvider1->onAvatarChanged(user1); changes.clear(); @@ -154,7 +150,7 @@ class CombinedAvatarProviderTest : public CppUnit::TestFixture { void testProviderUpdateAfterAvatarDisappearedTriggersChange() { std::shared_ptr testling(createProvider()); - testling->addProvider(avatarProvider1); + testling->addProvider(avatarProvider1.get()); avatarProvider1->avatars[user1] = avatarHash1; avatarProvider1->onAvatarChanged(user1); avatarProvider1->avatars.clear(); @@ -170,7 +166,7 @@ class CombinedAvatarProviderTest : public CppUnit::TestFixture { void testProviderUpdateAfterGetDoesNotTriggerChange() { std::shared_ptr testling(createProvider()); - testling->addProvider(avatarProvider1); + testling->addProvider(avatarProvider1.get()); avatarProvider1->avatars[user1] = avatarHash1; testling->getAvatarHash(user1); @@ -181,9 +177,9 @@ class CombinedAvatarProviderTest : public CppUnit::TestFixture { void testRemoveProviderDisconnectsUpdates() { std::shared_ptr testling(createProvider()); - testling->addProvider(avatarProvider1); - testling->addProvider(avatarProvider2); - testling->removeProvider(avatarProvider1); + testling->addProvider(avatarProvider1.get()); + testling->addProvider(avatarProvider2.get()); + testling->removeProvider(avatarProvider1.get()); avatarProvider1->avatars[user1] = avatarHash1; avatarProvider2->avatars[user1] = avatarHash2; avatarProvider1->onAvatarChanged(user1); @@ -194,7 +190,7 @@ class CombinedAvatarProviderTest : public CppUnit::TestFixture { void testProviderUpdateBareJIDAfterGetFullJID() { std::shared_ptr testling(createProvider()); avatarProvider1->useBare = true; - testling->addProvider(avatarProvider1); + testling->addProvider(avatarProvider1.get()); avatarProvider1->avatars[user1.toBare()] = avatarHash1; testling->getAvatarHash(user1); @@ -366,8 +362,8 @@ class CombinedAvatarProviderTest : public CppUnit::TestFixture { std::vector mucs_; }; - DummyAvatarProvider* avatarProvider1; - DummyAvatarProvider* avatarProvider2; + std::unique_ptr avatarProvider1; + std::unique_ptr avatarProvider2; JID user1; JID user2; std::string avatarHash1; diff --git a/Swiften/Component/UnitTest/ComponentSessionTest.cpp b/Swiften/Component/UnitTest/ComponentSessionTest.cpp index 63c89dc..48c6d8d 100644 --- a/Swiften/Component/UnitTest/ComponentSessionTest.cpp +++ b/Swiften/Component/UnitTest/ComponentSessionTest.cpp @@ -214,7 +214,7 @@ class ComponentSessionTest : public CppUnit::TestFixture { }; std::shared_ptr server; - bool sessionFinishedReceived; + bool sessionFinishedReceived = false; std::shared_ptr sessionFinishedError; std::shared_ptr crypto; }; diff --git a/Swiften/Disco/UnitTest/CapsManagerTest.cpp b/Swiften/Disco/UnitTest/CapsManagerTest.cpp index ca727c2..153e821 100644 --- a/Swiften/Disco/UnitTest/CapsManagerTest.cpp +++ b/Swiften/Disco/UnitTest/CapsManagerTest.cpp @@ -4,6 +4,7 @@ * See the COPYING file for more information. */ +#include #include #include @@ -46,9 +47,9 @@ class CapsManagerTest : public CppUnit::TestFixture { public: void setUp() { crypto = std::shared_ptr(PlatformCryptoProvider::create()); - stanzaChannel = new DummyStanzaChannel(); - iqRouter = new IQRouter(stanzaChannel); - storage = new CapsMemoryStorage(); + stanzaChannel = std::unique_ptr(new DummyStanzaChannel()); + iqRouter = std::unique_ptr(new IQRouter(stanzaChannel.get())); + storage = std::unique_ptr(new CapsMemoryStorage()); user1 = JID("user1@bar.com/bla"); discoInfo1 = std::make_shared(); discoInfo1->addFeature("http://swift.im/feature1"); @@ -63,9 +64,7 @@ class CapsManagerTest : public CppUnit::TestFixture { } void tearDown() { - delete storage; - delete iqRouter; - delete stanzaChannel; + iqRouter.reset(); } void testReceiveNewHashRequestsDisco() { @@ -251,7 +250,7 @@ class CapsManagerTest : public CppUnit::TestFixture { private: std::shared_ptr createManager() { - std::shared_ptr manager(new CapsManager(storage, stanzaChannel, iqRouter, crypto.get())); + std::shared_ptr manager(new CapsManager(storage.get(), stanzaChannel.get(), iqRouter.get(), crypto.get())); manager->setWarnOnInvalidHash(false); //manager->onCapsChanged.connect(boost::bind(&CapsManagerTest::handleCapsChanged, this, _1)); return manager; @@ -273,9 +272,9 @@ class CapsManagerTest : public CppUnit::TestFixture { } private: - DummyStanzaChannel* stanzaChannel; - IQRouter* iqRouter; - CapsStorage* storage; + std::unique_ptr stanzaChannel; + std::unique_ptr iqRouter; + std::unique_ptr storage; std::vector changes; JID user1; std::shared_ptr discoInfo1; diff --git a/Swiften/Disco/UnitTest/EntityCapsManagerTest.cpp b/Swiften/Disco/UnitTest/EntityCapsManagerTest.cpp index d775f6c..8c59741 100644 --- a/Swiften/Disco/UnitTest/EntityCapsManagerTest.cpp +++ b/Swiften/Disco/UnitTest/EntityCapsManagerTest.cpp @@ -4,6 +4,7 @@ * See the COPYING file for more information. */ +#include #include #include @@ -36,8 +37,8 @@ class EntityCapsManagerTest : public CppUnit::TestFixture { void setUp() { crypto = std::shared_ptr(PlatformCryptoProvider::create()); - stanzaChannel = new DummyStanzaChannel(); - capsProvider = new DummyCapsProvider(); + stanzaChannel = std::unique_ptr(new DummyStanzaChannel()); + capsProvider = std::unique_ptr(new DummyCapsProvider()); user1 = JID("user1@bar.com/bla"); discoInfo1 = std::make_shared(); @@ -52,11 +53,6 @@ class EntityCapsManagerTest : public CppUnit::TestFixture { legacyCapsInfo = std::make_shared("http://swift.im", "ver1", ""); } - void tearDown() { - delete capsProvider; - delete stanzaChannel; - } - void testReceiveKnownHash() { std::shared_ptr testling = createManager(); capsProvider->caps[capsInfo1->getVersion()] = discoInfo1; @@ -140,7 +136,7 @@ class EntityCapsManagerTest : public CppUnit::TestFixture { private: std::shared_ptr createManager() { - std::shared_ptr manager(new EntityCapsManager(capsProvider, stanzaChannel)); + std::shared_ptr manager(new EntityCapsManager(capsProvider.get(), stanzaChannel.get())); manager->onCapsChanged.connect(boost::bind(&EntityCapsManagerTest::handleCapsChanged, this, _1)); return manager; } @@ -177,8 +173,8 @@ class EntityCapsManagerTest : public CppUnit::TestFixture { }; private: - DummyStanzaChannel* stanzaChannel; - DummyCapsProvider* capsProvider; + std::unique_ptr stanzaChannel; + std::unique_ptr capsProvider; JID user1; std::shared_ptr discoInfo1; std::shared_ptr capsInfo1; diff --git a/Swiften/Elements/Whiteboard/WhiteboardEllipseElement.h b/Swiften/Elements/Whiteboard/WhiteboardEllipseElement.h index 7d80bf7..8086aed 100644 --- a/Swiften/Elements/Whiteboard/WhiteboardEllipseElement.h +++ b/Swiften/Elements/Whiteboard/WhiteboardEllipseElement.h @@ -76,6 +76,6 @@ namespace Swift { int cx_, cy_, rx_, ry_; WhiteboardColor penColor_; WhiteboardColor brushColor_; - int penWidth_; + int penWidth_ = 0; }; } diff --git a/Swiften/Elements/Whiteboard/WhiteboardFreehandPathElement.h b/Swiften/Elements/Whiteboard/WhiteboardFreehandPathElement.h index b8b7e54..bc6c846 100644 --- a/Swiften/Elements/Whiteboard/WhiteboardFreehandPathElement.h +++ b/Swiften/Elements/Whiteboard/WhiteboardFreehandPathElement.h @@ -59,6 +59,6 @@ namespace Swift { private: std::vector points_; WhiteboardColor color_; - int penWidth_; + int penWidth_ = 0; }; } diff --git a/Swiften/Elements/Whiteboard/WhiteboardOperation.h b/Swiften/Elements/Whiteboard/WhiteboardOperation.h index 7d48e4d..2e90c69 100644 --- a/Swiften/Elements/Whiteboard/WhiteboardOperation.h +++ b/Swiften/Elements/Whiteboard/WhiteboardOperation.h @@ -54,6 +54,6 @@ namespace Swift { private: std::string id_; std::string parentID_; - int pos_; + int pos_ = 0; }; } diff --git a/Swiften/Elements/Whiteboard/WhiteboardPolygonElement.h b/Swiften/Elements/Whiteboard/WhiteboardPolygonElement.h index b8591cf..6ad5dc7 100644 --- a/Swiften/Elements/Whiteboard/WhiteboardPolygonElement.h +++ b/Swiften/Elements/Whiteboard/WhiteboardPolygonElement.h @@ -67,6 +67,6 @@ namespace Swift { std::vector points_; WhiteboardColor penColor_; WhiteboardColor brushColor_; - int penWidth_; + int penWidth_ = 0; }; } diff --git a/Swiften/Elements/Whiteboard/WhiteboardTextElement.h b/Swiften/Elements/Whiteboard/WhiteboardTextElement.h index 41f31f6..2e1c145 100644 --- a/Swiften/Elements/Whiteboard/WhiteboardTextElement.h +++ b/Swiften/Elements/Whiteboard/WhiteboardTextElement.h @@ -64,7 +64,7 @@ namespace Swift { private: int x_, y_; - int size_; + int size_ = 0; std::string text_; WhiteboardColor color_; }; diff --git a/Swiften/Elements/Whiteboard/WhiteboardUpdateOperation.h b/Swiften/Elements/Whiteboard/WhiteboardUpdateOperation.h index b6dfd4f..36cbc6d 100644 --- a/Swiften/Elements/Whiteboard/WhiteboardUpdateOperation.h +++ b/Swiften/Elements/Whiteboard/WhiteboardUpdateOperation.h @@ -39,6 +39,6 @@ namespace Swift { private: WhiteboardElement::ref element_; - int newPos_; + int newPos_ = 0; }; } diff --git a/Swiften/EventLoop/BoostASIOEventLoop.h b/Swiften/EventLoop/BoostASIOEventLoop.h index 3f74a60..fbdf443 100644 --- a/Swiften/EventLoop/BoostASIOEventLoop.h +++ b/Swiften/EventLoop/BoostASIOEventLoop.h @@ -29,7 +29,7 @@ namespace Swift { private: std::shared_ptr ioService_; - bool isEventInASIOEventLoop_; + bool isEventInASIOEventLoop_ = false; std::recursive_mutex isEventInASIOEventLoopMutex_; }; } diff --git a/Swiften/FileTransfer/SOCKS5BytestreamServerManager.h b/Swiften/FileTransfer/SOCKS5BytestreamServerManager.h index 6dbdd1b..3c06513 100644 --- a/Swiften/FileTransfer/SOCKS5BytestreamServerManager.h +++ b/Swiften/FileTransfer/SOCKS5BytestreamServerManager.h @@ -78,7 +78,7 @@ namespace Swift { enum { Start, Initializing, Initialized } state; SOCKS5BytestreamServer* server; std::shared_ptr connectionServer; - int connectionServerPort; + int connectionServerPort = -1; std::shared_ptr getPublicIPRequest; std::shared_ptr forwardPortRequest; diff --git a/Swiften/FileTransfer/UnitTest/SOCKS5BytestreamClientSessionTest.cpp b/Swiften/FileTransfer/UnitTest/SOCKS5BytestreamClientSessionTest.cpp index b241320..cb43d78 100644 --- a/Swiften/FileTransfer/UnitTest/SOCKS5BytestreamClientSessionTest.cpp +++ b/Swiften/FileTransfer/UnitTest/SOCKS5BytestreamClientSessionTest.cpp @@ -59,9 +59,9 @@ public: crypto = std::shared_ptr(PlatformCryptoProvider::create()); destination = "092a44d859d19c9eed676b551ee80025903351c2"; randomGen.seed(static_cast(time(nullptr))); - eventLoop = new DummyEventLoop(); - timerFactory = new DummyTimerFactory(); - connection = std::make_shared(failingPorts, true, eventLoop); + eventLoop = std::unique_ptr(new DummyEventLoop()); + timerFactory = std::unique_ptr(new DummyTimerFactory()); + connection = std::make_shared(failingPorts, true, eventLoop.get()); //connection->onDataSent.connect(boost::bind(&SOCKS5BytestreamServerSessionTest::handleDataWritten, this, _1)); //stream1 = std::make_shared(createByteArray("abcdefg"))); // connection->onDataRead.connect(boost::bind(&SOCKS5BytestreamClientSessionTest::handleDataRead, this, _1)); @@ -69,15 +69,13 @@ public: void tearDown() { //connection.reset(); - delete timerFactory; - delete eventLoop; } void testForSessionReady() { TestHelper helper; connection->onDataSent.connect(boost::bind(&TestHelper::handleConnectionDataWritten, &helper, _1)); - SOCKS5BytestreamClientSession::ref clientSession = std::make_shared(connection, destinationAddressPort, destination, timerFactory); + SOCKS5BytestreamClientSession::ref clientSession = std::make_shared(connection, destinationAddressPort, destination, timerFactory.get()); clientSession->onSessionReady.connect(boost::bind(&TestHelper::handleSessionReady, &helper, _1)); clientSession->start(); @@ -103,7 +101,7 @@ public: TestHelper helper; connection->onDataSent.connect(boost::bind(&TestHelper::handleConnectionDataWritten, &helper, _1)); - SOCKS5BytestreamClientSession::ref clientSession = std::make_shared(connection, destinationAddressPort, destination, timerFactory); + SOCKS5BytestreamClientSession::ref clientSession = std::make_shared(connection, destinationAddressPort, destination, timerFactory.get()); clientSession->onSessionReady.connect(boost::bind(&TestHelper::handleSessionReady, &helper, _1)); clientSession->start(); @@ -123,7 +121,7 @@ public: TestHelper helper; connection->onDataSent.connect(boost::bind(&TestHelper::handleConnectionDataWritten, &helper, _1)); - SOCKS5BytestreamClientSession::ref clientSession = std::make_shared(connection, destinationAddressPort, destination, timerFactory); + SOCKS5BytestreamClientSession::ref clientSession = std::make_shared(connection, destinationAddressPort, destination, timerFactory.get()); clientSession->onSessionReady.connect(boost::bind(&TestHelper::handleSessionReady, &helper, _1)); clientSession->start(); @@ -150,7 +148,7 @@ public: TestHelper helper; connection->onDataSent.connect(boost::bind(&TestHelper::handleConnectionDataWritten, &helper, _1)); - SOCKS5BytestreamClientSession::ref clientSession = std::make_shared(connection, destinationAddressPort, destination, timerFactory); + SOCKS5BytestreamClientSession::ref clientSession = std::make_shared(connection, destinationAddressPort, destination, timerFactory.get()); clientSession->onSessionReady.connect(boost::bind(&TestHelper::handleSessionReady, &helper, _1)); clientSession->start(); @@ -178,7 +176,7 @@ public: TestHelper helper; connection->onDataSent.connect(boost::bind(&TestHelper::handleConnectionDataWritten, &helper, _1)); - SOCKS5BytestreamClientSession::ref clientSession = std::make_shared(connection, destinationAddressPort, destination, timerFactory); + SOCKS5BytestreamClientSession::ref clientSession = std::make_shared(connection, destinationAddressPort, destination, timerFactory.get()); clientSession->onSessionReady.connect(boost::bind(&TestHelper::handleSessionReady, &helper, _1)); clientSession->start(); @@ -203,8 +201,6 @@ public: CPPUNIT_ASSERT_EQUAL(createByteArray(vecptr(transferData), transferData.size()), helper.unprocessedInput); } - - private: static ByteArray generateRandomByteArray(size_t len) { boost::uniform_int<> dist(0, 255); @@ -308,8 +304,8 @@ private: private: HostAddressPort destinationAddressPort; std::string destination; - DummyEventLoop* eventLoop; - DummyTimerFactory* timerFactory; + std::unique_ptr eventLoop; + std::unique_ptr timerFactory; std::shared_ptr connection; const std::vector failingPorts; std::shared_ptr crypto; diff --git a/Swiften/MUC/MUCImpl.cpp b/Swiften/MUC/MUCImpl.cpp index ba8d03e..029bb4b 100644 --- a/Swiften/MUC/MUCImpl.cpp +++ b/Swiften/MUC/MUCImpl.cpp @@ -29,7 +29,7 @@ namespace Swift { typedef std::pair StringMUCOccupantPair; -MUCImpl::MUCImpl(StanzaChannel* stanzaChannel, IQRouter* iqRouter, DirectedPresenceSender* presenceSender, const JID &muc, MUCRegistry* mucRegistry) : ownMUCJID(muc), stanzaChannel(stanzaChannel), iqRouter_(iqRouter), presenceSender(presenceSender), mucRegistry(mucRegistry), createAsReservedIfNew(false), unlocking(false), isUnlocked_(false) { +MUCImpl::MUCImpl(StanzaChannel* stanzaChannel, IQRouter* iqRouter, DirectedPresenceSender* presenceSender, const JID &muc, MUCRegistry* mucRegistry) : ownMUCJID(muc), stanzaChannel(stanzaChannel), iqRouter_(iqRouter), presenceSender(presenceSender), mucRegistry(mucRegistry) { scopedConnection_ = stanzaChannel->onPresenceReceived.connect(boost::bind(&MUCImpl::handleIncomingPresence, this, _1)); } diff --git a/Swiften/MUC/MUCImpl.h b/Swiften/MUC/MUCImpl.h index 5009bc2..1c02dee 100644 --- a/Swiften/MUC/MUCImpl.h +++ b/Swiften/MUC/MUCImpl.h @@ -117,13 +117,13 @@ namespace Swift { DirectedPresenceSender* presenceSender; MUCRegistry* mucRegistry; std::map occupants; - bool joinSucceeded_; - bool joinComplete_; + bool joinSucceeded_ = false; + bool joinComplete_ = false; boost::signals2::scoped_connection scopedConnection_; boost::posix_time::ptime joinSince_; - bool createAsReservedIfNew; - bool unlocking; - bool isUnlocked_; + bool createAsReservedIfNew = false; + bool unlocking = false; + bool isUnlocked_ = false; boost::optional password; Presence::ref joinRequestPresence_; }; diff --git a/Swiften/Presence/UnitTest/DirectedPresenceSenderTest.cpp b/Swiften/Presence/UnitTest/DirectedPresenceSenderTest.cpp index 2ce67dc..38e67fb 100644 --- a/Swiften/Presence/UnitTest/DirectedPresenceSenderTest.cpp +++ b/Swiften/Presence/UnitTest/DirectedPresenceSenderTest.cpp @@ -4,6 +4,8 @@ * See the COPYING file for more information. */ +#include + #include #include @@ -27,17 +29,12 @@ class DirectedPresenceSenderTest : public CppUnit::TestFixture { public: void setUp() { - channel = new DummyStanzaChannel(); + channel = std::unique_ptr(new DummyStanzaChannel()); testPresence = std::make_shared(); testPresence->setStatus("Foo"); secondTestPresence = std::make_shared(); secondTestPresence->setStatus("Bar"); - stanzaChannelPresenceSender = new StanzaChannelPresenceSender(channel); - } - - void tearDown() { - delete stanzaChannelPresenceSender; - delete channel; + stanzaChannelPresenceSender = std::unique_ptr(new StanzaChannelPresenceSender(channel.get())); } void testSendPresence() { @@ -140,12 +137,12 @@ class DirectedPresenceSenderTest : public CppUnit::TestFixture { private: DirectedPresenceSender* createPresenceSender() { - return new DirectedPresenceSender(stanzaChannelPresenceSender); + return new DirectedPresenceSender(stanzaChannelPresenceSender.get()); } private: - DummyStanzaChannel* channel; - StanzaChannelPresenceSender* stanzaChannelPresenceSender; + std::unique_ptr channel; + std::unique_ptr stanzaChannelPresenceSender; std::shared_ptr testPresence; std::shared_ptr secondTestPresence; }; diff --git a/Swiften/QA/TLSTest/CertificateTest.cpp b/Swiften/QA/TLSTest/CertificateTest.cpp index ede1063..b53cd2f 100644 --- a/Swiften/QA/TLSTest/CertificateTest.cpp +++ b/Swiften/QA/TLSTest/CertificateTest.cpp @@ -4,6 +4,8 @@ * See the COPYING file for more information. */ +#include + #include #include @@ -32,14 +34,9 @@ class CertificateTest : public CppUnit::TestFixture { public: void setUp() { - pathProvider = new PlatformApplicationPathProvider("FileReadBytestreamTest"); + pathProvider = std::unique_ptr(new PlatformApplicationPathProvider("FileReadBytestreamTest")); readByteArrayFromFile(certificateData, (pathProvider->getExecutableDir() / "jabber_org.crt")); - certificateFactory = new CERTIFICATE_FACTORY(); - } - - void tearDown() { - delete certificateFactory; - delete pathProvider; + certificateFactory = std::unique_ptr(new CERTIFICATE_FACTORY()); } void testConstructFromDER() { @@ -92,9 +89,9 @@ class CertificateTest : public CppUnit::TestFixture { } private: - PlatformApplicationPathProvider* pathProvider; + std::unique_ptr pathProvider; ByteArray certificateData; - CertificateFactory* certificateFactory; + std::unique_ptr certificateFactory; }; #ifdef HAVE_OPENSSL diff --git a/Swiften/Queries/Requests/UnitTest/GetPrivateStorageRequestTest.cpp b/Swiften/Queries/Requests/UnitTest/GetPrivateStorageRequestTest.cpp index 6c4c495..8a4b9fc 100644 --- a/Swiften/Queries/Requests/UnitTest/GetPrivateStorageRequestTest.cpp +++ b/Swiften/Queries/Requests/UnitTest/GetPrivateStorageRequestTest.cpp @@ -34,17 +34,16 @@ class GetPrivateStorageRequestTest : public CppUnit::TestFixture { public: void setUp() { - channel = new DummyIQChannel(); - router = new IQRouter(channel); + channel = std::unique_ptr(new DummyIQChannel()); + router = std::unique_ptr(new IQRouter(channel.get())); } void tearDown() { - delete router; - delete channel; + router.reset(); } void testSend() { - GetPrivateStorageRequest::ref request = GetPrivateStorageRequest::create(router); + GetPrivateStorageRequest::ref request = GetPrivateStorageRequest::create(router.get()); request->send(); CPPUNIT_ASSERT_EQUAL(1, static_cast(channel->iqs_.size())); @@ -57,7 +56,7 @@ class GetPrivateStorageRequestTest : public CppUnit::TestFixture { } void testHandleResponse() { - GetPrivateStorageRequest::ref testling = GetPrivateStorageRequest::create(router); + GetPrivateStorageRequest::ref testling = GetPrivateStorageRequest::create(router.get()); testling->onResponse.connect(boost::bind(&GetPrivateStorageRequestTest::handleResponse, this, _1, _2)); testling->send(); channel->onIQReceived(createResponse("test-id", "foo")); @@ -67,7 +66,7 @@ class GetPrivateStorageRequestTest : public CppUnit::TestFixture { } void testHandleResponse_Error() { - GetPrivateStorageRequest::ref testling = GetPrivateStorageRequest::create(router); + GetPrivateStorageRequest::ref testling = GetPrivateStorageRequest::create(router.get()); testling->onResponse.connect(boost::bind(&GetPrivateStorageRequestTest::handleResponse, this, _1, _2)); testling->send(); channel->onIQReceived(createError("test-id")); @@ -102,8 +101,8 @@ class GetPrivateStorageRequestTest : public CppUnit::TestFixture { } private: - IQRouter* router; - DummyIQChannel* channel; + std::unique_ptr router; + std::unique_ptr channel; std::vector< ErrorPayload > errors; std::vector< std::shared_ptr > responses; }; diff --git a/Swiften/Queries/UnitTest/ResponderTest.cpp b/Swiften/Queries/UnitTest/ResponderTest.cpp index 98c1448..94bfed1 100644 --- a/Swiften/Queries/UnitTest/ResponderTest.cpp +++ b/Swiften/Queries/UnitTest/ResponderTest.cpp @@ -32,18 +32,17 @@ class ResponderTest : public CppUnit::TestFixture { public: void setUp() { - channel_ = new DummyIQChannel(); - router_ = new IQRouter(channel_); + channel_ = std::unique_ptr(new DummyIQChannel()); + router_ = std::unique_ptr(new IQRouter(channel_.get())); payload_ = std::make_shared("foo"); } void tearDown() { - delete router_; - delete channel_; + router_.reset(); } void testConstructor() { - MyResponder testling(router_); + MyResponder testling(router_.get()); channel_->onIQReceived(createRequest(IQ::Set)); @@ -51,7 +50,7 @@ class ResponderTest : public CppUnit::TestFixture { } void testStart() { - MyResponder testling(router_); + MyResponder testling(router_.get()); testling.start(); channel_->onIQReceived(createRequest(IQ::Set)); @@ -60,7 +59,7 @@ class ResponderTest : public CppUnit::TestFixture { } void testStop() { - MyResponder testling(router_); + MyResponder testling(router_.get()); testling.start(); testling.stop(); @@ -70,7 +69,7 @@ class ResponderTest : public CppUnit::TestFixture { } void testHandleIQ_Set() { - MyResponder testling(router_); + MyResponder testling(router_.get()); CPPUNIT_ASSERT(dynamic_cast(&testling)->handleIQ(createRequest(IQ::Set))); @@ -80,7 +79,7 @@ class ResponderTest : public CppUnit::TestFixture { } void testHandleIQ_Get() { - MyResponder testling(router_); + MyResponder testling(router_.get()); CPPUNIT_ASSERT(dynamic_cast(&testling)->handleIQ(createRequest(IQ::Get))); @@ -90,7 +89,7 @@ class ResponderTest : public CppUnit::TestFixture { } void testHandleIQ_Error() { - MyResponder testling(router_); + MyResponder testling(router_.get()); CPPUNIT_ASSERT(!dynamic_cast(&testling)->handleIQ(createRequest(IQ::Error))); @@ -99,7 +98,7 @@ class ResponderTest : public CppUnit::TestFixture { } void testHandleIQ_Result() { - MyResponder testling(router_); + MyResponder testling(router_.get()); CPPUNIT_ASSERT(!dynamic_cast(&testling)->handleIQ(createRequest(IQ::Result))); @@ -108,7 +107,7 @@ class ResponderTest : public CppUnit::TestFixture { } void testHandleIQ_NoPayload() { - MyResponder testling(router_); + MyResponder testling(router_.get()); CPPUNIT_ASSERT(!dynamic_cast(&testling)->handleIQ(std::make_shared(IQ::Get))); @@ -150,8 +149,8 @@ class ResponderTest : public CppUnit::TestFixture { }; private: - IQRouter* router_; - DummyIQChannel* channel_; + std::unique_ptr router_; + std::unique_ptr channel_; std::shared_ptr payload_; }; diff --git a/Swiften/Roster/UnitTest/XMPPRosterImplTest.cpp b/Swiften/Roster/UnitTest/XMPPRosterImplTest.cpp index f0d92e9..73e76d3 100644 --- a/Swiften/Roster/UnitTest/XMPPRosterImplTest.cpp +++ b/Swiften/Roster/UnitTest/XMPPRosterImplTest.cpp @@ -30,18 +30,13 @@ class XMPPRosterImplTest : public CppUnit::TestFixture { jid1_ = JID("a@b.c"); jid2_ = JID("b@c.d"); jid3_ = JID("c@d.e"); - roster_ = new XMPPRosterImpl(); - handler_ = new XMPPRosterSignalHandler(roster_); + roster_ = std::unique_ptr(new XMPPRosterImpl()); + handler_ = std::unique_ptr(new XMPPRosterSignalHandler(roster_.get())); groups1_.push_back("bobs"); groups1_.push_back("berts"); groups2_.push_back("ernies"); } - void tearDown() { - delete handler_; - delete roster_; - } - void testJIDAdded() { roster_->addContact(jid1_, "NewName", groups1_, RosterItemPayload::Both); CPPUNIT_ASSERT_EQUAL(Add, handler_->getLastEvent()); @@ -101,8 +96,8 @@ class XMPPRosterImplTest : public CppUnit::TestFixture { } private: - XMPPRosterImpl* roster_; - XMPPRosterSignalHandler* handler_; + std::unique_ptr roster_; + std::unique_ptr handler_; JID jid1_; JID jid2_; JID jid3_; diff --git a/Swiften/StreamManagement/UnitTest/StanzaAckRequesterTest.cpp b/Swiften/StreamManagement/UnitTest/StanzaAckRequesterTest.cpp index b1bc7c2..ce16e1f 100644 --- a/Swiften/StreamManagement/UnitTest/StanzaAckRequesterTest.cpp +++ b/Swiften/StreamManagement/UnitTest/StanzaAckRequesterTest.cpp @@ -157,7 +157,7 @@ class StanzaAckRequesterTest : public CppUnit::TestFixture { } private: - int acksRequested; + int acksRequested = 0; std::vector< std::shared_ptr > ackedStanzas; }; -- cgit v0.10.2-6-g49f6