Index: src/list-inl.h |
diff --git a/src/list-inl.h b/src/list-inl.h |
index 9b122fdbae4417fc710b755cc4be9fe541f4b04b..c09788e9ae0e466e5639673c909215b4e52e8d8f 100644 |
--- a/src/list-inl.h |
+++ b/src/list-inl.h |
@@ -195,10 +195,15 @@ int List<T, P>::CountOccurrences(const T& elm, int start, int end) const { |
template<typename T, class P> |
void List<T, P>::Sort(int (*cmp)(const T* x, const T* y)) { |
- ToVector().Sort(cmp); |
+ Sort(cmp, 0, length_); |
+} |
+ |
+ |
+template <typename T, class P> |
+void List<T, P>::Sort(int (*cmp)(const T* x, const T* y), size_t s, size_t l) { |
+ ToVector().Sort(cmp, s, l); |
#ifdef DEBUG |
- for (int i = 1; i < length_; i++) |
- DCHECK(cmp(&data_[i - 1], &data_[i]) <= 0); |
+ for (size_t i = s + 1; i < l; i++) DCHECK(cmp(&data_[i - 1], &data_[i]) <= 0); |
#endif |
} |
@@ -209,7 +214,29 @@ void List<T, P>::Sort() { |
} |
-template<typename T, class P> |
+template <typename T, class P> |
+void List<T, P>::StableSort(int (*cmp)(const T* x, const T* y)) { |
+ StableSort(cmp, 0, length_); |
+} |
+ |
+ |
+template <typename T, class P> |
+void List<T, P>::StableSort(int (*cmp)(const T* x, const T* y), size_t s, |
+ size_t l) { |
+ ToVector().StableSort(cmp, s, l); |
+#ifdef DEBUG |
+ for (size_t i = s + 1; i < l; i++) DCHECK(cmp(&data_[i - 1], &data_[i]) <= 0); |
+#endif |
+} |
+ |
+ |
+template <typename T, class P> |
+void List<T, P>::StableSort() { |
+ ToVector().StableSort(); |
+} |
+ |
+ |
+template <typename T, class P> |
void List<T, P>::Initialize(int capacity, P allocator) { |
DCHECK(capacity >= 0); |
data_ = (capacity > 0) ? NewData(capacity, allocator) : NULL; |