diff options
author | Nikolai Kosjar <nikolai.kosjar@digia.com> | 2014-01-03 16:08:38 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-02-19 06:45:00 +0100 |
commit | 08cbbde61778276ccdda73d89fd64d02c623779f (patch) | |
tree | 97d190094f8346e14f7aa8e463ebeeb1e65a310c | |
parent | 3a84d92f5736da3dc3f6a385bf3723984a5640ed (diff) |
QtConcurrent: Extend workaround GCC bug 58800 in median calculation
GNU/Linux distributions like Fedora update the __GLIBCXX__ date (e.g.
because of applied extra patches on top) and thus make the current
workaround useless. As long as no official gcc/libstdc++ version is
released, we can increment the "upper bound" date to cover such cases.
See also comment #1 at QTCREATORBUG-11129.
Change-Id: I1fdf6f312664163f6a99a8eddf490646ff25a87d
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
-rw-r--r-- | src/concurrent/qtconcurrentmedian.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/concurrent/qtconcurrentmedian.h b/src/concurrent/qtconcurrentmedian.h index ce2afb9c28..5dd43a015e 100644 --- a/src/concurrent/qtconcurrentmedian.h +++ b/src/concurrent/qtconcurrentmedian.h @@ -104,8 +104,10 @@ public: dirty = false; // This is a workaround for http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58800 -// Avoid using std::nth_element for stdlibc++ <= 4.7.3 || (>= 4.8.0 && <= 4.8.2) -#if defined(__GLIBCXX__) && (__GLIBCXX__ <= 20130411 || (__GLIBCXX__ >= 20130322 && __GLIBCXX__ <= 20131016)) +// Avoid using std::nth_element for the affected stdlibc++ releases 4.7.3 and 4.8.2. +// Note that the official __GLIBCXX__ value of the releases is not used since that +// one might be patched on some GNU/Linux distributions. +#if defined(__GLIBCXX__) && __GLIBCXX__ <= 20140107 QVector<T> sorted = values; std::sort(sorted.begin(), sorted.end()); currentMedian = sorted.at(bufferSize / 2); |