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>bb10
parent
fd6cf5c875
commit
5007352164
|
|
@ -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();
|
||||
|
|
|
|||
Loading…
Reference in New Issue