Skip to content

Commit e3af648

Browse files
committedApr 15, 2023
Cleanup another api to avoid dangling pointers
1 parent ca3a0bd commit e3af648

File tree

3 files changed

+13
-18
lines changed

3 files changed

+13
-18
lines changed
 

‎src/app/devtools/networklogger/qgsnetworkloggernode.cpp

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,7 @@ QgsNetworkLoggerRequestGroup::QgsNetworkLoggerRequestGroup( const QgsNetworkRequ
7373
}
7474

7575
std::unique_ptr< QgsNetworkLoggerRequestDetailsGroup > detailsGroup = std::make_unique< QgsNetworkLoggerRequestDetailsGroup >( request );
76-
mDetailsGroup = detailsGroup.get();
77-
addChild( std::move( detailsGroup ) );
76+
mDetailsGroup = static_cast< QgsNetworkLoggerRequestDetailsGroup * >( addChild( std::move( detailsGroup ) ) );
7877

7978
mTimer.start();
8079
}
@@ -254,8 +253,7 @@ void QgsNetworkLoggerRequestGroup::setReply( const QgsNetworkReplyContent &reply
254253
mReplyFromCache = reply.attribute( QNetworkRequest::SourceIsFromCacheAttribute ).toBool();
255254

256255
std::unique_ptr< QgsNetworkLoggerReplyGroup > replyGroup = std::make_unique< QgsNetworkLoggerReplyGroup >( reply ) ;
257-
mReplyGroup = replyGroup.get();
258-
addChild( std::move( replyGroup ) );
256+
mReplyGroup = static_cast< QgsNetworkLoggerReplyGroup * >( addChild( std::move( replyGroup ) ) );
259257
}
260258

261259
void QgsNetworkLoggerRequestGroup::setTimedOut()
@@ -276,8 +274,7 @@ void QgsNetworkLoggerRequestGroup::setSslErrors( const QList<QSslError> &errors
276274
if ( mHasSslErrors )
277275
{
278276
std::unique_ptr< QgsNetworkLoggerSslErrorGroup > errorGroup = std::make_unique< QgsNetworkLoggerSslErrorGroup >( errors );
279-
mSslErrorsGroup = errorGroup.get();
280-
addChild( std::move( errorGroup ) );
277+
mSslErrorsGroup = static_cast< QgsNetworkLoggerSslErrorGroup * >( addChild( std::move( errorGroup ) ) );
281278
}
282279
}
283280

@@ -356,22 +353,19 @@ QgsNetworkLoggerRequestDetailsGroup::QgsNetworkLoggerRequestDetailsGroup( const
356353
if ( !QUrlQuery( request.request().url() ).queryItems().isEmpty() )
357354
{
358355
std::unique_ptr< QgsNetworkLoggerRequestQueryGroup > queryGroup = std::make_unique< QgsNetworkLoggerRequestQueryGroup >( request.request().url() );
359-
mQueryGroup = queryGroup.get();
360-
addChild( std::move( queryGroup ) );
356+
mQueryGroup = static_cast< QgsNetworkLoggerRequestQueryGroup * >( addChild( std::move( queryGroup ) ) );
361357
}
362358

363359
std::unique_ptr< QgsNetworkLoggerRequestHeadersGroup > requestHeadersGroup = std::make_unique< QgsNetworkLoggerRequestHeadersGroup >( request );
364-
mRequestHeaders = requestHeadersGroup.get();
365-
addChild( std::move( requestHeadersGroup ) );
360+
mRequestHeaders = static_cast< QgsNetworkLoggerRequestHeadersGroup * >( addChild( std::move( requestHeadersGroup ) ) );
366361

367362
switch ( request.operation() )
368363
{
369364
case QNetworkAccessManager::PostOperation:
370365
case QNetworkAccessManager::PutOperation:
371366
{
372367
std::unique_ptr< QgsNetworkLoggerPostContentGroup > postContentGroup = std::make_unique< QgsNetworkLoggerPostContentGroup >( request );
373-
mPostContent = postContentGroup.get();
374-
addChild( std::move( postContentGroup ) );
368+
mPostContent = static_cast< QgsNetworkLoggerPostContentGroup * >( addChild( std::move( postContentGroup ) ) );
375369
break;
376370
}
377371

@@ -454,8 +448,7 @@ QgsNetworkLoggerReplyGroup::QgsNetworkLoggerReplyGroup( const QgsNetworkReplyCon
454448
addKeyValueNode( QObject::tr( "Cache (result)" ), reply.attribute( QNetworkRequest::SourceIsFromCacheAttribute ).toBool() ? QObject::tr( "Used entry from cache" ) : QObject::tr( "Read from network" ) );
455449

456450
std::unique_ptr< QgsNetworkLoggerReplyHeadersGroup > headersGroup = std::make_unique< QgsNetworkLoggerReplyHeadersGroup >( reply );
457-
mReplyHeaders = headersGroup.get();
458-
addChild( std::move( headersGroup ) );
451+
mReplyHeaders = static_cast< QgsNetworkLoggerReplyHeadersGroup * >( addChild( std::move( headersGroup ) ) );
459452
}
460453

461454
QVariant QgsNetworkLoggerReplyGroup::toVariant() const

‎src/app/devtools/qgsdevtoolsmodelnode.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,15 +52,15 @@ QgsDevToolsModelGroup::QgsDevToolsModelGroup( const QString &title )
5252
{
5353
}
5454

55-
void QgsDevToolsModelGroup::addChild( std::unique_ptr<QgsDevToolsModelNode> child )
55+
QgsDevToolsModelNode *QgsDevToolsModelGroup::addChild( std::unique_ptr<QgsDevToolsModelNode> child )
5656
{
5757
if ( !child )
58-
return;
58+
return nullptr;
5959

6060
Q_ASSERT( !child->mParent );
6161
child->mParent = this;
6262

63-
mChildren.emplace_back( std::move( child ) );
63+
return mChildren.emplace_back( std::move( child ) ).get();
6464
}
6565

6666
int QgsDevToolsModelGroup::indexOf( QgsDevToolsModelNode *child ) const

‎src/app/devtools/qgsdevtoolsmodelnode.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,10 @@ class QgsDevToolsModelGroup : public QgsDevToolsModelNode
9696

9797
/**
9898
* Adds a \a child node to this node.
99+
*
100+
* Returns a pointer to the newly added node.
99101
*/
100-
void addChild( std::unique_ptr< QgsDevToolsModelNode > child );
102+
QgsDevToolsModelNode* addChild( std::unique_ptr< QgsDevToolsModelNode > child );
101103

102104
/**
103105
* Returns the index of the specified \a child node.

0 commit comments

Comments
 (0)
Please sign in to comment.