summaryrefslogtreecommitdiffstats
path: root/src/corelib/thread
diff options
context:
space:
mode:
authorGiuseppe D'Angelo <giuseppe.dangelo@kdab.com>2016-01-18 12:38:36 +0100
committerGiuseppe D'Angelo <giuseppe.dangelo@kdab.com>2016-01-18 12:20:47 +0000
commit50073521649e3818d87920751ab95acd2c2dfd15 (patch)
tree0f691e34cab9423225c63d8def0bcd54bc777d2e /src/corelib/thread
parentfd6cf5c875d794d23e513c8e7d6ebabc91dae790 (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.h6
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();