summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeff Brown2010-06-16 03:53:36 -0500
committerAlex Ray2013-07-30 15:56:53 -0500
commit9efaaa43595307786dbf06760823c25cb16b1925 (patch)
tree4312ce89bea39da6828c53fab8a1acf15f243646 /libs/utils/VectorImpl.cpp
parent80d9c1cfb0642e680c559a854d09514c2fc72edc (diff)
downloadplatform-system-core-9efaaa43595307786dbf06760823c25cb16b1925.tar.gz
platform-system-core-9efaaa43595307786dbf06760823c25cb16b1925.tar.xz
platform-system-core-9efaaa43595307786dbf06760823c25cb16b1925.zip
Even more native input dispatch work in progress.
Added more tests. Fixed a regression in Vector. Fixed bugs in pointer tracking. Fixed a starvation issue in PollLoop when setting or removing callbacks. Fixed a couple of policy nits. Modified the internal representation of MotionEvent to be more efficient and more consistent. Added code to skip/cancel virtual key processing when there are multiple pointers down. This helps to better disambiguate virtual key presses from stray touches (such as cheek presses). Change-Id: I2a7d2cce0195afb9125b23378baa94fd2fc6671c
Diffstat (limited to 'libs/utils/VectorImpl.cpp')
-rw-r--r--libs/utils/VectorImpl.cpp22
1 files changed, 19 insertions, 3 deletions
diff --git a/libs/utils/VectorImpl.cpp b/libs/utils/VectorImpl.cpp
index b09c6cae7..289c826d3 100644
--- a/libs/utils/VectorImpl.cpp
+++ b/libs/utils/VectorImpl.cpp
@@ -108,7 +108,7 @@ size_t VectorImpl::capacity() const
108 108
109ssize_t VectorImpl::insertVectorAt(const VectorImpl& vector, size_t index) 109ssize_t VectorImpl::insertVectorAt(const VectorImpl& vector, size_t index)
110{ 110{
111 return insertAt(vector.arrayImpl(), index, vector.size()); 111 return insertArrayAt(vector.arrayImpl(), index, vector.size());
112} 112}
113 113
114ssize_t VectorImpl::appendVector(const VectorImpl& vector) 114ssize_t VectorImpl::appendVector(const VectorImpl& vector)
@@ -116,6 +116,22 @@ ssize_t VectorImpl::appendVector(const VectorImpl& vector)
116 return insertVectorAt(vector, size()); 116 return insertVectorAt(vector, size());
117} 117}
118 118
119ssize_t VectorImpl::insertArrayAt(const void* array, size_t index, size_t length)
120{
121 if (index > size())
122 return BAD_INDEX;
123 void* where = _grow(index, length);
124 if (where) {
125 _do_copy(where, array, length);
126 }
127 return where ? index : (ssize_t)NO_MEMORY;
128}
129
130ssize_t VectorImpl::appendArray(const void* array, size_t length)
131{
132 return insertArrayAt(array, size(), length);
133}
134
119ssize_t VectorImpl::insertAt(size_t index, size_t numItems) 135ssize_t VectorImpl::insertAt(size_t index, size_t numItems)
120{ 136{
121 return insertAt(0, index, numItems); 137 return insertAt(0, index, numItems);
@@ -220,9 +236,9 @@ ssize_t VectorImpl::add()
220 return add(0); 236 return add(0);
221} 237}
222 238
223ssize_t VectorImpl::add(const void* item, size_t numItems) 239ssize_t VectorImpl::add(const void* item)
224{ 240{
225 return insertAt(item, size(), numItems); 241 return insertAt(item, size());
226} 242}
227 243
228ssize_t VectorImpl::replaceAt(size_t index) 244ssize_t VectorImpl::replaceAt(size_t index)