QDBusError: don't bother dealing with unusable 'unused' field

The move constructor as well as member-swap were dealing with the
'unused' field as if it would be usable. But as the comment in the
default ctor suggests, the field can never be used in Qt 5, due to
the inline dtor.

So, don't bother with the field. Doing so only triggers checkers
such as Coverity.

Also mark the field for removal in Qt 6.

Coverity-Id: 154503
Coverity-Id: 154510
Change-Id: If42c5ed66d1133e651de7477f3313b3989b64bc9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
Marc Mutz 2016-09-15 00:36:54 +02:00
parent a54d44298f
commit 258e4d05ed

View File

@ -94,8 +94,8 @@ public:
QDBusError(const QDBusError &other);
#ifdef Q_COMPILER_RVALUE_REFS
QDBusError(QDBusError &&other) Q_DECL_NOTHROW
: code(other.code), msg(std::move(other.msg)), nm(std::move(other.nm)), unused(other.unused)
{ other.unused = Q_NULLPTR; }
: code(other.code), msg(std::move(other.msg)), nm(std::move(other.nm))
{}
QDBusError &operator=(QDBusError &&other) Q_DECL_NOTHROW { swap(other); return *this; }
#endif
QDBusError &operator=(const QDBusError &other);
@ -108,7 +108,6 @@ public:
qSwap(code, other.code);
qSwap(msg, other.msg);
qSwap(nm, other.nm);
qSwap(unused, other.unused);
}
ErrorType type() const;
@ -122,6 +121,8 @@ private:
ErrorType code;
QString msg;
QString nm;
// ### This class has an implicit (therefore inline) destructor
// so the following field cannot be used:
void *unused;
};
Q_DECLARE_SHARED_NOT_MOVABLE_UNTIL_QT6(QDBusError)