Skip to content

Commit

Permalink
[transfer-engine] Ensure class members are initialized. JB#61927
Browse files Browse the repository at this point in the history
Few cases of uninitialized members discovered by Coverity (CID 449633,
CID 449640) and there was already one related fix few commits back, so
better uniformly use default member initializers to ensure all members
get reasonable defaults.  The less exceptions the better, so even d_ptr
etc. Also drop some code the compiler can generate automatically.
  • Loading branch information
martyone committed Apr 12, 2024
1 parent 156a226 commit 7d697d8
Show file tree
Hide file tree
Showing 15 changed files with 44 additions and 90 deletions.
10 changes: 0 additions & 10 deletions declarative/declarativetransfermodel.cpp
Expand Up @@ -52,16 +52,6 @@ class TransferDatabase : public QSqlDatabase
TransferModel::TransferModel(QObject *parent)
: QAbstractListModel(parent)
, m_rows(new QVector<TransferDBRecord>())
, m_rowsIndex(0)
, m_asyncIndex(0)
, m_transfersInProgress(0)
, m_status(Null)
, m_asyncStatus(Null)
, m_asyncPending(false)
, m_asyncRunning(false)
, m_notified(false)
, m_complete(false)
, m_rowsChanges(false)
{
setAutoDelete(false);
}
Expand Down
26 changes: 13 additions & 13 deletions declarative/declarativetransfermodel.h
Expand Up @@ -117,26 +117,26 @@ public slots:

QString m_asyncErrorString;
QVector<TransferDBRecord> m_asyncRows;
QVector<TransferDBRecord> *m_rows;
QVector<TransferDBRecord> *m_rows = nullptr;
QHash<int, QByteArray> m_roles;

QMutex m_mutex;
QWaitCondition m_condition;

int m_rowsIndex;
int m_asyncIndex;
int m_asyncTransfersInProgress;
int m_transfersInProgress;
int m_rowsIndex = 0;
int m_asyncIndex = 0;
int m_asyncTransfersInProgress = 0;
int m_transfersInProgress = 0;

Status m_status;
Status m_asyncStatus;
bool m_asyncPending;
bool m_asyncRunning;
bool m_notified;
bool m_complete;
bool m_rowsChanges;
Status m_status = Null;
Status m_asyncStatus = Null;
bool m_asyncPending = false;
bool m_asyncRunning = false;
bool m_notified = false;
bool m_complete = false;
bool m_rowsChanges = false;

TransferEngineInterface *m_client;
TransferEngineInterface *m_client = nullptr;
};

#endif
2 changes: 1 addition & 1 deletion declarative/synchronizelists_p.h
Expand Up @@ -163,7 +163,7 @@ class SynchronizeList
}
}

Agent * const agent;
Agent *const agent = nullptr;
const CacheList &cache;
int &c;
const ReferenceList &reference;
Expand Down
2 changes: 1 addition & 1 deletion lib/mediaitem.h
Expand Up @@ -75,7 +75,7 @@ class MediaItem: public QObject


private:
MediaItemPrivate *d_ptr;
MediaItemPrivate *d_ptr = nullptr;
Q_DECLARE_PRIVATE(MediaItem)
friend class TransferEngine;
friend class TransferEnginePrivate;
Expand Down
15 changes: 4 additions & 11 deletions lib/mediatransferinterface.cpp
Expand Up @@ -32,17 +32,10 @@
class MediaTransferInterfacePrivate
{
public:
MediaTransferInterfacePrivate():
m_mediaItem(0),
m_status(MediaTransferInterface::NotStarted),
m_progress(0),
m_prevProgress(0)
{}

MediaItem *m_mediaItem;
MediaTransferInterface::TransferStatus m_status;
qreal m_progress;
qreal m_prevProgress;
MediaItem *m_mediaItem = nullptr;
MediaTransferInterface::TransferStatus m_status = MediaTransferInterface::NotStarted;
qreal m_progress = 0;
qreal m_prevProgress = 0;
};


Expand Down
2 changes: 1 addition & 1 deletion lib/mediatransferinterface.h
Expand Up @@ -71,7 +71,7 @@ public Q_SLOTS:
void progressUpdated(qreal progress);

private:
MediaTransferInterfacePrivate *d_ptr;
MediaTransferInterfacePrivate *d_ptr = nullptr;
Q_DECLARE_PRIVATE(MediaTransferInterface)
friend class TransferEngine;
friend class TransferEnginePrivate;
Expand Down
37 changes: 4 additions & 33 deletions lib/sharingmethodinfo.cpp
Expand Up @@ -29,37 +29,16 @@
class SharingMethodInfoPrivate
{
public:
SharingMethodInfoPrivate();
SharingMethodInfoPrivate(const SharingMethodInfoPrivate *other);

QString displayName;
QString subtitle;
QString methodId;
QString methodIcon;
quint32 accountId;
quint32 accountId = 0;
QString shareUIPath;
QStringList capabilities;
bool supportsMultipleFiles;
bool supportsMultipleFiles = false;
};

SharingMethodInfoPrivate::SharingMethodInfoPrivate()
: accountId(0)
, supportsMultipleFiles(false)
{
}

SharingMethodInfoPrivate::SharingMethodInfoPrivate(const SharingMethodInfoPrivate *other)
: displayName(other->displayName)
, subtitle(other->subtitle)
, methodId(other->methodId)
, methodIcon(other->methodIcon)
, accountId(other->accountId)
, shareUIPath(other->shareUIPath)
, capabilities(other->capabilities)
, supportsMultipleFiles(other->supportsMultipleFiles)
{
}

/*!
\class SharingMethodInfo
\brief The SharingMethodInfo class encapsulate information of a single transfer method.
Expand Down Expand Up @@ -98,23 +77,15 @@ SharingMethodInfo::SharingMethodInfo()
*/
SharingMethodInfo &SharingMethodInfo::operator=(const SharingMethodInfo &other)
{
Q_D(SharingMethodInfo);
d->displayName = other.displayName();
d->subtitle = other.subtitle();
d->methodId = other.methodId();
d->methodIcon = other.methodIcon();
d->accountId = other.accountId();
d->shareUIPath = other.shareUIPath();
d->capabilities = other.capabilities();
d->supportsMultipleFiles = other.supportsMultipleFiles();
*d_ptr = *other.d_ptr;
return *this;
}

/*!
Copies \a other to this instance.
*/
SharingMethodInfo::SharingMethodInfo(const SharingMethodInfo &other):
d_ptr(new SharingMethodInfoPrivate(other.d_ptr))
d_ptr(new SharingMethodInfoPrivate(*other.d_ptr))
{
}

Expand Down
2 changes: 1 addition & 1 deletion lib/sharingmethodinfo.h
Expand Up @@ -78,7 +78,7 @@ class SharingMethodInfo
bool supportsMultipleFiles() const;

private:
SharingMethodInfoPrivate *d_ptr;
SharingMethodInfoPrivate *d_ptr = nullptr;
Q_DECLARE_PRIVATE(SharingMethodInfo);
};

Expand Down
2 changes: 1 addition & 1 deletion lib/sharingpluginloader.h
Expand Up @@ -46,7 +46,7 @@ class SharingPluginLoader : public QObject
void pluginsLoaded();

private:
SharingPluginLoaderPrivate *d_ptr;
SharingPluginLoaderPrivate *d_ptr = nullptr;
Q_DECLARE_PRIVATE(SharingPluginLoader)
};

Expand Down
4 changes: 2 additions & 2 deletions lib/sharingpluginloader_p.h
Expand Up @@ -57,10 +57,10 @@ private slots:
private:
static QStringList pluginList();

SharingPluginLoader *q_ptr;
SharingPluginLoader *q_ptr = nullptr;
Q_DECLARE_PUBLIC(SharingPluginLoader)

bool m_loading;
bool m_loading = false;
Accounts::Manager m_accountManager;
QTimer m_fileWatcherTimer;
QFileSystemWatcher m_fileWatcher;
Expand Down
14 changes: 7 additions & 7 deletions lib/transferdbrecord.h
Expand Up @@ -71,11 +71,11 @@ class TransferDBRecord

// TODO: Maybe this could use QVariantList internally to ease of pain of keeping thigs up to date
// when database structure / fields change
int transfer_id;
int transfer_type;
int status;
qint64 size;
double progress;
int transfer_id = 0;
int transfer_type = 0;
int status = 0;
qint64 size = 0;
double progress = 0;
QString plugin_id;
QString url;
QString timestamp;
Expand All @@ -85,8 +85,8 @@ class TransferDBRecord
QString service_icon;
QString application_icon;
QString thumbnail_icon;
bool cancel_supported;
bool restart_supported;
bool cancel_supported = false;
bool restart_supported = false;
};

bool operator ==(const TransferDBRecord &left, const TransferDBRecord &right);
Expand Down
2 changes: 1 addition & 1 deletion lib/transferengineclient.cpp
Expand Up @@ -99,7 +99,7 @@ CallbackInterface::~CallbackInterface()
class TransferEngineClientPrivate
{
public:
TransferEngineInterface *m_client;
TransferEngineInterface *m_client = nullptr;
};

/*!
Expand Down
4 changes: 2 additions & 2 deletions lib/transferengineclient.h
Expand Up @@ -39,7 +39,7 @@ class CallbackInterface {
~CallbackInterface();

private:
CallbackInterfacePrivate *d_ptr;
CallbackInterfacePrivate *d_ptr = nullptr;
Q_DECLARE_PRIVATE(CallbackInterface)
friend class TransferEngineClient;
};
Expand Down Expand Up @@ -85,7 +85,7 @@ class TransferEngineClient : public QObject
bool notificationsEnabled() const;

private:
TransferEngineClientPrivate *d_ptr;
TransferEngineClientPrivate *d_ptr = nullptr;
Q_DECLARE_PRIVATE(TransferEngineClient)

friend class DeclarativeTransferInterface;
Expand Down
2 changes: 1 addition & 1 deletion src/transferengine.h
Expand Up @@ -102,7 +102,7 @@ public Q_SLOTS:
void activeTransfersChanged();

private:
TransferEnginePrivate *d_ptr;
TransferEnginePrivate *d_ptr = nullptr;
Q_DECLARE_PRIVATE(TransferEngine)
};

Expand Down
10 changes: 5 additions & 5 deletions src/transferengine_p.h
Expand Up @@ -73,7 +73,7 @@ public Q_SLOTS:
private:
// Map for transferId, timestamps
QMap<int, quint32> m_activityMap;
QTimer *m_timer;
QTimer *m_timer = nullptr;
};

class TransferEnginePrivate: QObject
Expand Down Expand Up @@ -125,10 +125,10 @@ public Q_SLOTS:
private:
QMap <MediaTransferInterface*, int> m_plugins;
QMap <int, TransferEngineData::TransferType> m_keyTypeCache;
bool m_notificationsEnabled;
QTimer *m_delayedExitTimer;
ClientActivityMonitor *m_activityMonitor;
TransferEngine *q_ptr;
bool m_notificationsEnabled = false;
QTimer *m_delayedExitTimer = nullptr;
ClientActivityMonitor *m_activityMonitor = nullptr;
TransferEngine *q_ptr = nullptr;
QVariantList m_defaultActions;
QVariant m_showTransfersAction;
Q_DECLARE_PUBLIC(TransferEngine)
Expand Down

0 comments on commit 7d697d8

Please sign in to comment.