diff options
author | Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> | 2016-01-18 12:38:36 +0100 |
---|---|---|
committer | Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> | 2016-01-18 12:20:47 +0000 |
commit | 50073521649e3818d87920751ab95acd2c2dfd15 (patch) | |
tree | 0f691e34cab9423225c63d8def0bcd54bc777d2e /src/corelib/thread | |
parent | fd6cf5c875d794d23e513c8e7d6ebabc91dae790 (diff) |
QOrderedMutexLocker: use std::less to prevent undefined behavior
operator< between pointers is undefined unless the two pointers
point in the same array, which is not what QOrderedMutexLocker does.
Change-Id: Ia6594900cfa807a73f20e157ce896b4321a3d746
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Diffstat (limited to 'src/corelib/thread')
-rw-r--r-- | src/corelib/thread/qorderedmutexlocker_p.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/corelib/thread/qorderedmutexlocker_p.h b/src/corelib/thread/qorderedmutexlocker_p.h index c73a790820..54887342e7 100644 --- a/src/corelib/thread/qorderedmutexlocker_p.h +++ b/src/corelib/thread/qorderedmutexlocker_p.h @@ -47,6 +47,8 @@ #include <QtCore/qmutex.h> +#include <functional> + QT_BEGIN_NAMESPACE /* @@ -57,8 +59,8 @@ class QOrderedMutexLocker { public: QOrderedMutexLocker(QMutex *m1, QMutex *m2) - : mtx1((m1 == m2) ? m1 : (m1 < m2 ? m1 : m2)), - mtx2((m1 == m2) ? 0 : (m1 < m2 ? m2 : m1)), + : mtx1((m1 == m2) ? m1 : (std::less<QMutex *>()(m1, m2) ? m1 : m2)), + mtx2((m1 == m2) ? 0 : (std::less<QMutex *>()(m1, m2) ? m2 : m1)), locked(false) { relock(); |