Skip to content

Commit 154ed94

Browse files
committed
Fix accessing deleted network reply pointer
1 parent a14b3ac commit 154ed94

File tree

2 files changed

+9
-6
lines changed

2 files changed

+9
-6
lines changed

src/core/qfieldcloudprojectsmodel.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -932,12 +932,14 @@ void QFieldCloudProjectsModel::projectPackageAndDownload( const QString &project
932932
const QStringList fileNames = project->downloadFileTransfers.keys();
933933
for ( const QString &fileNameKey : fileNames )
934934
{
935-
if ( project->downloadFileTransfers[fileNameKey].networkReply
936-
&& !project->downloadFileTransfers[fileNameKey].networkReply->isFinished() )
935+
if ( project->downloadFileTransfers[fileNameKey].networkReply )
937936
{
938-
project->downloadFileTransfers[fileNameKey].networkReply->abort();
937+
if ( !project->downloadFileTransfers[fileNameKey].networkReply->isFinished() )
938+
{
939+
project->downloadFileTransfers[fileNameKey].networkReply->abort();
940+
}
941+
project->downloadFileTransfers[fileNameKey].networkReply->deleteLater();
939942
}
940-
project->downloadFileTransfers[fileNameKey].networkReply->deleteLater();
941943
}
942944

943945
mActiveProjectFilesToDownload.clear();

src/core/qfieldcloudprojectsmodel.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,19 @@
1717
#define QFIELDCLOUDPROJECTSMODEL_H
1818

1919
#include "deltalistmodel.h"
20+
#include "networkreply.h"
2021
#include "qgsgpkgflusher.h"
2122

2223
#include <QAbstractListModel>
2324
#include <QJsonArray>
2425
#include <QNetworkReply>
26+
#include <QPointer>
2527
#include <QSortFilterProxyModel>
2628
#include <QTimer>
2729

2830

2931
class QNetworkRequest;
3032
class QFieldCloudConnection;
31-
class NetworkReply;
3233
class LayerObserver;
3334
class QgsMapLayer;
3435
class QgsProject;
@@ -341,7 +342,7 @@ class QFieldCloudProjectsModel : public QAbstractListModel
341342
long long bytesTotal;
342343
long long bytesTransferred = 0;
343344
bool isFinished = false;
344-
NetworkReply *networkReply;
345+
QPointer<NetworkReply> networkReply;
345346
QNetworkReply::NetworkError error = QNetworkReply::NoError;
346347
QStringList layerIds;
347348
int redirectsCount = 0;

0 commit comments

Comments
 (0)