diff options
author | Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> | 2012-09-20 18:32:37 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2012-09-27 15:47:16 +0200 |
commit | 60e2ec9db493acfbb4d032eecd9c4bb3a830eb4c (patch) | |
tree | aa740d5569b0109f92e9a416ac2a8aae8f07eaed /src/corelib/thread | |
parent | 0e3b1f4b4807c7cd53d5b1720c37f83326cb4bc1 (diff) |
Workaround MSVC2008 build failure after switching to std::upper_bound
QPostEventList is kept sorted by priority; std::upper_bound
is used to insert a QPostEvent in the right place in the list.
Turns out that MSVC2008 is a bit too picky and tries to see if the
list is actually ordered. This causes a build failure as there is
no operator< defined between two QPostEvents (in fact,
an integer -- the priority -- is passed to std::upper_bound).
Work around this issue by defining operator< between two QPostEvents.
Change-Id: Ie3562dd0cc7253e25fc988b25d566d9d9e9fe62b
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/corelib/thread')
-rw-r--r-- | src/corelib/thread/qthread_p.h | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/src/corelib/thread/qthread_p.h b/src/corelib/thread/qthread_p.h index 4878d59426..0667a814c3 100644 --- a/src/corelib/thread/qthread_p.h +++ b/src/corelib/thread/qthread_p.h @@ -86,13 +86,9 @@ public: }; Q_DECLARE_TYPEINFO(QPostEvent, Q_MOVABLE_TYPE); -inline bool operator<(int priority, const QPostEvent &pe) +inline bool operator<(const QPostEvent &first, const QPostEvent &second) { - return pe.priority < priority; -} -inline bool operator<(const QPostEvent &pe, int priority) -{ - return priority < pe.priority; + return first.priority > second.priority; } // This class holds the list of posted events. @@ -126,7 +122,7 @@ public: // insert event in descending priority order, using upper // bound for a given priority (to ensure proper ordering // of events with the same priority) - QPostEventList::iterator at = std::upper_bound(begin() + insertionOffset, end(), priority); + QPostEventList::iterator at = std::upper_bound(begin() + insertionOffset, end(), ev); insert(at, ev); } } |