From 01394ff75ce51cd424ef8aaae2d74d13dc75c1ed Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Fri, 16 Mar 2018 14:55:55 +0100 Subject: [PATCH] Use unique_ptr for StunClient and IceAgent objects. --- src/conference/session/media-session-p.h | 6 +++--- src/conference/session/media-session.cpp | 7 ++----- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/src/conference/session/media-session-p.h b/src/conference/session/media-session-p.h index 6ee6ac50a..7b014e138 100644 --- a/src/conference/session/media-session-p.h +++ b/src/conference/session/media-session-p.h @@ -74,7 +74,7 @@ public: void setParams (MediaSessionParams *msp); void setRemoteParams (MediaSessionParams *msp); - IceSession *getIceSession () const { return iceAgent->getIceSession(); } + IceSession *getIceSession () const { return iceAgent ? iceAgent->getIceSession() : nullptr; } SalMediaDescription *getLocalDesc () const { return localDesc; } @@ -284,8 +284,8 @@ private: int mainTextStreamIndex = LINPHONE_CALL_STATS_TEXT; LinphoneNatPolicy *natPolicy = nullptr; - StunClient *stunClient = nullptr; - IceAgent *iceAgent = nullptr; + std::unique_ptr stunClient; + std::unique_ptr iceAgent; // The address family to prefer for RTP path, guessed from signaling path. int af; diff --git a/src/conference/session/media-session.cpp b/src/conference/session/media-session.cpp index 955bcbb4e..32ae463c6 100644 --- a/src/conference/session/media-session.cpp +++ b/src/conference/session/media-session.cpp @@ -1177,7 +1177,7 @@ string MediaSessionPrivate::getPublicIpForStream (int streamIndex) { void MediaSessionPrivate::runStunTestsIfNeeded () { L_Q(); if (linphone_nat_policy_stun_enabled(natPolicy) && !(linphone_nat_policy_ice_enabled(natPolicy) || linphone_nat_policy_turn_enabled(natPolicy))) { - stunClient = new StunClient(q->getCore()); + stunClient = makeUnique(q->getCore()); int ret = stunClient->run(mediaPorts[mainAudioStreamIndex].rtpPort, mediaPorts[mainVideoStreamIndex].rtpPort, mediaPorts[mainTextStreamIndex].rtpPort); if (ret >= 0) pingTime = ret; @@ -3939,7 +3939,7 @@ MediaSession::MediaSession (const shared_ptr &core, shared_ptrsetPortConfig(d->mainTextStreamIndex, make_pair(minPort, maxPort)); memset(d->sessions, 0, sizeof(d->sessions)); - d->iceAgent = new IceAgent(*this); + d->iceAgent = makeUnique(*this); lInfo() << "New MediaSession [" << this << "] initialized (LinphoneCore version: " << linphone_core_get_version() << ")"; } @@ -3957,9 +3957,6 @@ MediaSession::~MediaSession () { linphone_call_stats_unref(d->textStats); if (d->natPolicy) linphone_nat_policy_unref(d->natPolicy); - if (d->stunClient) - delete d->stunClient; - delete d->iceAgent; if (d->localDesc) sal_media_description_unref(d->localDesc); if (d->biggestDesc)