diff options
author | Jeff Brown | 2010-06-16 03:53:36 -0500 |
---|---|---|
committer | Alex Ray | 2013-07-30 15:56:53 -0500 |
commit | 9efaaa43595307786dbf06760823c25cb16b1925 (patch) | |
tree | 4312ce89bea39da6828c53fab8a1acf15f243646 /libs/utils/VectorImpl.cpp | |
parent | 80d9c1cfb0642e680c559a854d09514c2fc72edc (diff) | |
download | platform-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.cpp | 22 |
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 | ||
109 | ssize_t VectorImpl::insertVectorAt(const VectorImpl& vector, size_t index) | 109 | ssize_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 | ||
114 | ssize_t VectorImpl::appendVector(const VectorImpl& vector) | 114 | ssize_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 | ||
119 | ssize_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 | |||
130 | ssize_t VectorImpl::appendArray(const void* array, size_t length) | ||
131 | { | ||
132 | return insertArrayAt(array, size(), length); | ||
133 | } | ||
134 | |||
119 | ssize_t VectorImpl::insertAt(size_t index, size_t numItems) | 135 | ssize_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 | ||
223 | ssize_t VectorImpl::add(const void* item, size_t numItems) | 239 | ssize_t VectorImpl::add(const void* item) |
224 | { | 240 | { |
225 | return insertAt(item, size(), numItems); | 241 | return insertAt(item, size()); |
226 | } | 242 | } |
227 | 243 | ||
228 | ssize_t VectorImpl::replaceAt(size_t index) | 244 | ssize_t VectorImpl::replaceAt(size_t index) |