summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsmatz <smatz@openttd.org>2008-05-26 21:08:03 +0000
committersmatz <smatz@openttd.org>2008-05-26 21:08:03 +0000
commita50974628840f9682b744d324b0ba2e2b3aec353 (patch)
tree2b698ce8e8eca231c93589b338b6d194f0995f58
parent6e6014918ea76fca66e458e565d69a11ed0f00e6 (diff)
downloadopenttd-a50974628840f9682b744d324b0ba2e2b3aec353.tar.xz
(svn r13275) -Fix: sort lists with 2 items, too
-Fix: reset VL_RESORT and resort timer even when no sort was needed
-rw-r--r--src/sortlist_type.h16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/sortlist_type.h b/src/sortlist_type.h
index 3a8d2f0b9..5fe4a838e 100644
--- a/src/sortlist_type.h
+++ b/src/sortlist_type.h
@@ -40,7 +40,7 @@ public: // Temporary: public for conversion only
*/
bool IsSortable() const
{
- return (this->data != NULL && this->items > 2);
+ return (this->data != NULL && this->items >= 2);
}
/**
@@ -178,12 +178,16 @@ public:
* */
FORCEINLINE void Sort(SortFunction compare)
{
- /* Do not sort when the list is not sortable */
- if (!this->IsSortable()) return;
-
/* Do not sort if the resort bit is not set */
if (!HASBITS(this->flags, VL_RESORT)) return;
+ CLRBITS(this->flags, VL_RESORT);
+
+ this->ResetResortTimer();
+
+ /* Do not sort when the list is not sortable */
+ if (!this->IsSortable()) return;
+
T *a = this->data;
T *b = a + 1;
@@ -213,10 +217,6 @@ public:
}
}
}
-
- this->ResetResortTimer();
-
- CLRBITS(this->flags, VL_RESORT);
}
/**