summaryrefslogtreecommitdiffstats
path: root/compiler/utils
diff options
context:
space:
mode:
authorVladimir Marko <vmarko@google.com>2014-09-25 18:08:03 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2014-09-25 18:08:04 +0000
commit1ed5b27ee329208fd8ae22b8a9a61d708e2c1ffb (patch)
treee80187277f4a41c9b41a25ebb6dd9567b66fd2bf /compiler/utils
parent34bb808affbed7a1db177b9ef4ab5461c2b2106b (diff)
parentf4da675bbc4615c5f854c81964cac9dd1153baea (diff)
downloadart-1ed5b27ee329208fd8ae22b8a9a61d708e2c1ffb.zip
art-1ed5b27ee329208fd8ae22b8a9a61d708e2c1ffb.tar.gz
art-1ed5b27ee329208fd8ae22b8a9a61d708e2c1ffb.tar.bz2
Merge "Implement method calls using relative BL on ARM."
Diffstat (limited to 'compiler/utils')
-rw-r--r--compiler/utils/array_ref.h17
1 files changed, 14 insertions, 3 deletions
diff --git a/compiler/utils/array_ref.h b/compiler/utils/array_ref.h
index 2d70b7d..e6b4a6a 100644
--- a/compiler/utils/array_ref.h
+++ b/compiler/utils/array_ref.h
@@ -82,12 +82,13 @@ class ArrayRef {
: array_(array), size_(size) {
}
- explicit ArrayRef(std::vector<T>& v)
+ template <typename Alloc>
+ explicit ArrayRef(std::vector<T, Alloc>& v)
: array_(v.data()), size_(v.size()) {
}
- template <typename U>
- ArrayRef(const std::vector<U>& v,
+ template <typename U, typename Alloc>
+ ArrayRef(const std::vector<U, Alloc>& v,
typename std::enable_if<std::is_same<T, const U>::value, tag>::tag t = tag())
: array_(v.data()), size_(v.size()) {
}
@@ -167,6 +168,16 @@ class ArrayRef {
size_t size_;
};
+template <typename T>
+bool operator==(const ArrayRef<T>& lhs, const ArrayRef<T>& rhs) {
+ return lhs.size() == rhs.size() && std::equal(lhs.begin(), lhs.end(), rhs.begin());
+}
+
+template <typename T>
+bool operator!=(const ArrayRef<T>& lhs, const ArrayRef<T>& rhs) {
+ return !(lhs == rhs);
+}
+
} // namespace art