summaryrefslogtreecommitdiffstats
path: root/src/corelib/thread
diff options
context:
space:
mode:
authorGiuseppe D'Angelo <giuseppe.dangelo@kdab.com>2012-09-20 18:32:37 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2012-09-27 15:47:16 +0200
commit60e2ec9db493acfbb4d032eecd9c4bb3a830eb4c (patch)
treeaa740d5569b0109f92e9a416ac2a8aae8f07eaed /src/corelib/thread
parent0e3b1f4b4807c7cd53d5b1720c37f83326cb4bc1 (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.h10
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);
}
}