From 9b6cd1c0227006308d4fe556f2b721865c2d9b21 Mon Sep 17 00:00:00 2001 From: Pavel Karelin Date: Sat, 23 Jun 2018 03:25:31 +0300 Subject: [PATCH] fix: Fix PR #5182. Eliminating the 'new' operator at ToxOptionsWrapper --- src/core/core.cpp | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/src/core/core.cpp b/src/core/core.cpp index 99fceeb17..86d54d6cf 100644 --- a/src/core/core.cpp +++ b/src/core/core.cpp @@ -123,36 +123,33 @@ namespace { class ToxOptionsWrapper { public: - ToxOptionsWrapper(Tox_Options *options, const QByteArray& proxyAddrData) { - this->options = options; - this->proxyAddrData = new QByteArray(proxyAddrData); - } + ToxOptionsWrapper(Tox_Options *options, const QByteArray& proxyAddrData) + : options(options) + , proxyAddrData(proxyAddrData) + {} ~ToxOptionsWrapper() { tox_options_free(options); - options = nullptr; - delete proxyAddrData; - proxyAddrData = nullptr; } ToxOptionsWrapper (ToxOptionsWrapper && from) { - this->options = from.options; + options = from.options; + proxyAddrData.swap(from.proxyAddrData); from.options = nullptr; - this->proxyAddrData = from.proxyAddrData; - from.proxyAddrData = nullptr; + from.proxyAddrData.clear(); } operator Tox_Options* () { return options; } - const char* getProxyAddrData() { - return this->proxyAddrData->data(); + const char* getProxyAddrData() const { + return proxyAddrData.constData(); } private: Tox_Options *options = nullptr; - QByteArray *proxyAddrData = nullptr; + QByteArray proxyAddrData; }; /**