From: Frank Reininghaus Date: Tue, 15 Jan 2013 17:44:00 +0000 (+0100) Subject: Use std::rotate, rather than reversing three times X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/c652807a195d82e85df7b3aafc924a5f83ca590e 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. --- 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--); - } -} diff --git a/src/kitemviews/private/kfileitemmodelsortalgorithm.h b/src/kitemviews/private/kfileitemmodelsortalgorithm.h index 07e5d4a81..b86d490aa 100644 --- a/src/kitemviews/private/kfileitemmodelsortalgorithm.h +++ b/src/kitemviews/private/kfileitemmodelsortalgorithm.h @@ -69,9 +69,6 @@ private: QList::iterator begin, QList::iterator end, const KFileItemModel::ItemData* value); - - static void reverse(QList::iterator begin, - QList::iterator end); }; #endif