summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Markmann <tobias.markmann@isode.com>2019-10-18 06:19:53 (GMT)
committerTobias Markmann <tobias.markmann@isode.com>2019-10-18 06:19:53 (GMT)
commit7de9a3489c3e2ddc4c0ab78f43649c5d6be20aca (patch)
treee0cfb4493ae07c3aa2270d3b94a1eb66ff4956dc /Swiften/Network
parent2239cdae45b39e675877ae32c86c47bcadce3090 (diff)
downloadswift-7de9a3489c3e2ddc4c0ab78f43649c5d6be20aca.zip
swift-7de9a3489c3e2ddc4c0ab78f43649c5d6be20aca.tar.bz2
Return unique_ptr in PlatformIDNConverter::create()
There are cases where users of this method forget to free the pointer. This is now avoided by returning a unique_ptr. Test-Information: All existing unit and integration tests, i.e. `./scons test=all` pass. Change-Id: I10a88c3361823074d81db7af8cec1bd70c409995
Diffstat (limited to 'Swiften/Network')
-rw-r--r--Swiften/Network/BoostNetworkFactories.cpp7
-rw-r--r--Swiften/Network/BoostNetworkFactories.h8
2 files changed, 8 insertions, 7 deletions
diff --git a/Swiften/Network/BoostNetworkFactories.cpp b/Swiften/Network/BoostNetworkFactories.cpp
index 9fef73c..13a7960 100644
--- a/Swiften/Network/BoostNetworkFactories.cpp
+++ b/Swiften/Network/BoostNetworkFactories.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (c) 2010-2016 Isode Limited. 2 * Copyright (c) 2010-2019 Isode Limited.
3 * All rights reserved. 3 * All rights reserved.
4 * See the COPYING file for more information. 4 * See the COPYING file for more information.
5 */ 5 */
@@ -44,9 +44,9 @@ BoostNetworkFactories::BoostNetworkFactories(EventLoop* eventLoop, std::shared_p
44 idnConverter = PlatformIDNConverter::create(); 44 idnConverter = PlatformIDNConverter::create();
45#ifdef USE_UNBOUND 45#ifdef USE_UNBOUND
46 // TODO: What to do about idnConverter. 46 // TODO: What to do about idnConverter.
47 domainNameResolver = new UnboundDomainNameResolver(idnConverter, ioServiceThread.getIOService(), eventLoop); 47 domainNameResolver = new UnboundDomainNameResolver(idnConverter.get(), ioServiceThread.getIOService(), eventLoop);
48#else 48#else
49 domainNameResolver = new PlatformDomainNameResolver(idnConverter, eventLoop); 49 domainNameResolver = new PlatformDomainNameResolver(idnConverter.get(), eventLoop);
50#endif 50#endif
51 cryptoProvider = PlatformCryptoProvider::create(); 51 cryptoProvider = PlatformCryptoProvider::create();
52} 52}
@@ -54,7 +54,6 @@ BoostNetworkFactories::BoostNetworkFactories(EventLoop* eventLoop, std::shared_p
54BoostNetworkFactories::~BoostNetworkFactories() { 54BoostNetworkFactories::~BoostNetworkFactories() {
55 delete cryptoProvider; 55 delete cryptoProvider;
56 delete domainNameResolver; 56 delete domainNameResolver;
57 delete idnConverter;
58 delete proxyProvider; 57 delete proxyProvider;
59 delete tlsFactories; 58 delete tlsFactories;
60 delete xmlParserFactory; 59 delete xmlParserFactory;
diff --git a/Swiften/Network/BoostNetworkFactories.h b/Swiften/Network/BoostNetworkFactories.h
index 2bf8d33..33a3584 100644
--- a/Swiften/Network/BoostNetworkFactories.h
+++ b/Swiften/Network/BoostNetworkFactories.h
@@ -1,11 +1,13 @@
1/* 1/*
2 * Copyright (c) 2010-2017 Isode Limited. 2 * Copyright (c) 2010-2019 Isode Limited.
3 * All rights reserved. 3 * All rights reserved.
4 * See the COPYING file for more information. 4 * See the COPYING file for more information.
5 */ 5 */
6 6
7#pragma once 7#pragma once
8 8
9#include <memory>
10
9#include <Swiften/Base/API.h> 11#include <Swiften/Base/API.h>
10#include <Swiften/Network/BoostIOServiceThread.h> 12#include <Swiften/Network/BoostIOServiceThread.h>
11#include <Swiften/Network/NetworkFactories.h> 13#include <Swiften/Network/NetworkFactories.h>
@@ -68,7 +70,7 @@ namespace Swift {
68 } 70 }
69 71
70 virtual IDNConverter* getIDNConverter() const override { 72 virtual IDNConverter* getIDNConverter() const override {
71 return idnConverter; 73 return idnConverter.get();
72 } 74 }
73 75
74 virtual CryptoProvider* getCryptoProvider() const override { 76 virtual CryptoProvider* getCryptoProvider() const override {
@@ -87,7 +89,7 @@ namespace Swift {
87 PlatformTLSFactories* tlsFactories; 89 PlatformTLSFactories* tlsFactories;
88 ProxyProvider* proxyProvider; 90 ProxyProvider* proxyProvider;
89 EventLoop* eventLoop; 91 EventLoop* eventLoop;
90 IDNConverter* idnConverter; 92 std::unique_ptr<IDNConverter> idnConverter;
91 CryptoProvider* cryptoProvider; 93 CryptoProvider* cryptoProvider;
92 }; 94 };
93} 95}