aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBertrand Augereau2015-11-10 09:46:58 +0100
committerBertrand Augereau2015-11-10 20:08:19 +0100
commit1311fe5c49146b14a476f47c10529931a467ff98 (patch)
tree96f93cfcb0f5629111779a28434749dba91df37d
parent13f30fb46bbd634de22034389561c93bc15d9d14 (diff)
downloadscummvm-rg350-1311fe5c49146b14a476f47c10529931a467ff98.tar.gz
scummvm-rg350-1311fe5c49146b14a476f47c10529931a467ff98.tar.bz2
scummvm-rg350-1311fe5c49146b14a476f47c10529931a467ff98.zip
COMMON: Avoid useless (and dangerous when cctor/operator= don't support it) SWAP(x, x) in sorting
-rw-r--r--common/algorithm.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/common/algorithm.h b/common/algorithm.h
index 6453073ae5..cbd6eae708 100644
--- a/common/algorithm.h
+++ b/common/algorithm.h
@@ -177,7 +177,8 @@ T sortChoosePivot(T first, T last) {
template<typename T, class StrictWeakOrdering>
T sortPartition(T first, T last, T pivot, StrictWeakOrdering &comp) {
--last;
- SWAP(*pivot, *last);
+ if (pivot != last)
+ SWAP(*pivot, *last);
T sorted;
for (sorted = first; first != last; ++first) {
@@ -188,7 +189,8 @@ T sortPartition(T first, T last, T pivot, StrictWeakOrdering &comp) {
}
}
- SWAP(*last, *sorted);
+ if (last != sorted)
+ SWAP(*last, *sorted);
return sorted;
}