From c652807a195d82e85df7b3aafc924a5f83ca590e Mon Sep 17 00:00:00 2001 From: Frank Reininghaus Date: Tue, 15 Jan 2013 18:44:00 +0100 Subject: Use std::rotate, rather than reversing three times We need less code now, and moreover, the STL implementation of rotate should be more efficient than three reverse() calls. --- src/kitemviews/private/kfileitemmodelsortalgorithm.cpp | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) (limited to 'src/kitemviews/private/kfileitemmodelsortalgorithm.cpp') diff --git a/src/kitemviews/private/kfileitemmodelsortalgorithm.cpp b/src/kitemviews/private/kfileitemmodelsortalgorithm.cpp index ab650efea..a09d0cd80 100644 --- a/src/kitemviews/private/kfileitemmodelsortalgorithm.cpp +++ b/src/kitemviews/private/kfileitemmodelsortalgorithm.cpp @@ -22,6 +22,8 @@ #include #include +#include + void KFileItemModelSortAlgorithm::sort(KFileItemModel* model, QList::iterator begin, QList::iterator end) @@ -115,9 +117,7 @@ void KFileItemModelSortAlgorithm::merge(KFileItemModel* model, firstCut = upperBound(model, begin, pivot, *secondCut); } - reverse(firstCut, pivot); - reverse(pivot, secondCut); - reverse(firstCut, secondCut); + std::rotate(firstCut, pivot, secondCut); const QList::iterator newPivot = firstCut + len2Half; merge(model, begin, firstCut, newPivot); @@ -176,15 +176,3 @@ KFileItemModelSortAlgorithm::upperBound(KFileItemModel* model, } return begin; } - -void KFileItemModelSortAlgorithm::reverse(QList::iterator begin, - QList::iterator end) -{ - // The implementation is based on qReverse() from qalgorithms.h - // Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). - - --end; - while (begin < end) { - qSwap(*begin++, *end--); - } -} -- cgit v1.3