Upgrade V8 to version 4.9.385.28
https://chromium.googlesource.com/v8/v8/+/4.9.385.28
FPIIM-449
Change-Id: I4b2e74289d4bf3667f2f3dc8aa2e541f63e26eb4
diff --git a/src/list-inl.h b/src/list-inl.h
index 9b122fd..9a2d11f 100644
--- a/src/list-inl.h
+++ b/src/list-inl.h
@@ -125,6 +125,12 @@
return false;
}
+template <typename T, class P>
+void List<T, P>::Swap(List<T, P>* list) {
+ std::swap(data_, list->data_);
+ std::swap(length_, list->length_);
+ std::swap(capacity_, list->capacity_);
+}
template<typename T, class P>
void List<T, P>::Allocate(int length, P allocator) {
@@ -193,12 +199,19 @@
}
-template<typename T, class P>
-void List<T, P>::Sort(int (*cmp)(const T* x, const T* y)) {
- ToVector().Sort(cmp);
+template <typename T, class P>
+template <typename CompareFunction>
+void List<T, P>::Sort(CompareFunction cmp) {
+ Sort(cmp, 0, length_);
+}
+
+
+template <typename T, class P>
+template <typename CompareFunction>
+void List<T, P>::Sort(CompareFunction cmp, 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,12 +222,26 @@
}
-template<typename T, class P>
-void List<T, P>::Initialize(int capacity, P allocator) {
- DCHECK(capacity >= 0);
- data_ = (capacity > 0) ? NewData(capacity, allocator) : NULL;
- capacity_ = capacity;
- length_ = 0;
+template <typename T, class P>
+template <typename CompareFunction>
+void List<T, P>::StableSort(CompareFunction cmp) {
+ StableSort(cmp, 0, length_);
+}
+
+
+template <typename T, class P>
+template <typename CompareFunction>
+void List<T, P>::StableSort(CompareFunction cmp, 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();
}
@@ -223,7 +250,7 @@
int low = 0;
int high = list.length() - 1;
while (low <= high) {
- int mid = (low + high) / 2;
+ int mid = low + (high - low) / 2;
T mid_elem = list[mid];
if (cmp(&mid_elem) > 0) {
@@ -259,6 +286,7 @@
}
-} } // namespace v8::internal
+} // namespace internal
+} // namespace v8
#endif // V8_LIST_INL_H_