Pastebin URL (expires in 24 hours):
http://paste.fedoraproject.org/51628/61095313

--- 
diff --git a/src/concurrent/qtconcurrentfilterkernel.h b/src/concurrent/qtconcurrentfilterkernel.h
index 63e77ab..29bb3c9 100644
--- a/src/concurrent/qtconcurrentfilterkernel.h
+++ b/src/concurrent/qtconcurrentfilterkernel.h
@@ -120,11 +120,11 @@ public:
 
 
         typename Sequence::const_iterator it = sequenceBeginIterator;
-        advance(it, begin);
+        std::advance(it, begin);
         for (int i = begin; i < end; ++i) {
             if (keep(*it))
                 results.vector.append(*it);
-            advance(it, 1);
+            std::advance(it, 1);
         }
 
         reducer.runReduce(reduce, reducedResult, results);
@@ -206,11 +206,11 @@ public:
         results.vector.reserve(end - begin);
 
         Iterator it = sequenceBeginIterator;
-        advance(it, begin);
+        std::advance(it, begin);
         for (int i = begin; i < end; ++i) {
             if (keep(*it))
                 results.vector.append(*it);
-            advance(it, 1);
+            std::advance(it, 1);
         }
 
         reducer.runReduce(reduce, reducedResult, results);
@@ -282,11 +282,11 @@ public:
         results.vector.reserve(count);
 
         Iterator it = sequenceBeginIterator;
-        advance(it, begin);
+        std::advance(it, begin);
         for (int i = begin; i < end; ++i) {
             if (keep(*it))
                 results.vector.append(*it);
-            advance(it, 1);
+            std::advance(it, 1);
         }
 
         this->reportResults(results.vector, begin, count);
diff --git a/src/concurrent/qtconcurrentiteratekernel.h b/src/concurrent/qtconcurrentiteratekernel.h
index 70a7f16..b47c30a 100644
--- a/src/concurrent/qtconcurrentiteratekernel.h
+++ b/src/concurrent/qtconcurrentiteratekernel.h
@@ -59,8 +59,6 @@ QT_BEGIN_NAMESPACE
 
 namespace QtConcurrent {
 
-    using std::advance;
-
 /*
     The BlockSizeManager class manages how many iterations a thread should
     reserve and process at a time. This is done by measuring the time spent
diff --git a/src/concurrent/qtconcurrentmapkernel.h b/src/concurrent/qtconcurrentmapkernel.h
index 6817cd3..36e9cd3 100644
--- a/src/concurrent/qtconcurrentmapkernel.h
+++ b/src/concurrent/qtconcurrentmapkernel.h
@@ -75,10 +75,10 @@ public:
     bool runIterations(Iterator sequenceBeginIterator, int beginIndex, int endIndex, void *)
     {
         Iterator it = sequenceBeginIterator;
-        advance(it, beginIndex);
+        std::advance(it, beginIndex);
         for (int i = beginIndex; i < endIndex; ++i) {
             runIteration(it, i, 0);
-            advance(it, 1);
+            std::advance(it, 1);
         }
 
         return false;
@@ -129,10 +129,10 @@ public:
         results.vector.reserve(end - begin);
 
         Iterator it = sequenceBeginIterator;
-        advance(it, begin);
+        std::advance(it, begin);
         for (int i = begin; i < end; ++i) {
             results.vector.append(map(*(it)));
-            advance(it, 1);
+            std::advance(it, 1);
         }
 
         reducer.runReduce(reduce, reducedResult, results);
@@ -183,10 +183,10 @@ public:
     {
 
         Iterator it = sequenceBeginIterator;
-        advance(it, begin);
+        std::advance(it, begin);
         for (int i = begin; i < end; ++i) {
             runIteration(it, i, results + (i - begin));
-            advance(it, 1);
+            std::advance(it, 1);
         }
 
         return true;
diff --git a/src/concurrent/qtconcurrentmedian.h b/src/concurrent/qtconcurrentmedian.h
index 7d3b50a..29342e6 100644
--- a/src/concurrent/qtconcurrentmedian.h
+++ b/src/concurrent/qtconcurrentmedian.h
@@ -47,7 +47,8 @@
 #ifndef QT_NO_CONCURRENT
 
 #include <QtCore/qvector.h>
-#include <QtCore/qalgorithms.h>
+
+#include <algorithm>
 
 QT_BEGIN_NAMESPACE
 
@@ -89,7 +90,7 @@ public:
             dirty = true;
         }
 
-        values[currentIndex] = value;
+        values[currentIndex] = qMove(value);
     }
 
     bool isMedianValid() const
@@ -101,9 +102,10 @@ public:
     {
         if (dirty) {
             dirty = false;
-            QVector<T> sorted = values;
-            qSort(sorted);
-            currentMedian = sorted.at(bufferSize / 2 + 1);
+            QVector<T> copy = values;
+            typename QVector<T>::iterator begin = copy.begin(), mid = copy.begin() + bufferSize/2, end = copy.end();
+            std::nth_element(begin, mid, end);
+            currentMedian = qMove(*mid);
         }
         return currentMedian;
     }
_______________________________________________
Development mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to