aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSatoshi Kataoka <satok@google.com>2013-01-09 12:54:39 +0900
committerSatoshi Kataoka <satok@google.com>2013-01-09 15:17:11 +0900
commitdd4d938e6990701176c658af5c593ea377973bef (patch)
tree9ca77dcdd6b151f72830446e0a64a11ec5076bff
parent8315e8168b135599237f5493f72e667f39503006 (diff)
downloadlatinime-dd4d938e6990701176c658af5c593ea377973bef.tar.gz
latinime-dd4d938e6990701176c658af5c593ea377973bef.tar.xz
latinime-dd4d938e6990701176c658af5c593ea377973bef.zip
assert when the touch event goes back to the future
bug: 7911739 Change-Id: I29db6a5cb6749999666b1c53857ea61bcc19b8f1
-rw-r--r--native/jni/src/defines.h3
-rw-r--r--native/jni/src/proximity_info_state.cpp9
2 files changed, 12 insertions, 0 deletions
diff --git a/native/jni/src/defines.h b/native/jni/src/defines.h
index 46595d80a..70690117e 100644
--- a/native/jni/src/defines.h
+++ b/native/jni/src/defines.h
@@ -93,6 +93,7 @@ static AK_FORCE_INLINE void dumpWord(const int *word, const int length) {
#include <execinfo.h>
#include <stdlib.h>
+#define DO_ASSERT_TEST
#define ASSERT(success) do { if (!(success)) { showStackTrace(); assert(success);} } while (0)
#define SHOW_STACK_TRACE do { showStackTrace(); } while (0)
@@ -111,6 +112,7 @@ static inline void showStackTrace() {
}
#else
#include <cassert>
+#define DO_ASSERT_TEST
#define ASSERT(success) assert(success)
#define SHOW_STACK_TRACE
#endif
@@ -120,6 +122,7 @@ static inline void showStackTrace() {
#define AKLOGI(fmt, ...)
#define DUMP_RESULT(words, frequencies, maxWordCount, maxWordLength)
#define DUMP_WORD(word, length)
+#undef DO_ASSERT_TEST
#define ASSERT(success)
#define SHOW_STACK_TRACE
#define INTS_TO_CHARS(input, length, output)
diff --git a/native/jni/src/proximity_info_state.cpp b/native/jni/src/proximity_info_state.cpp
index bd2149ad1..5362d69f0 100644
--- a/native/jni/src/proximity_info_state.cpp
+++ b/native/jni/src/proximity_info_state.cpp
@@ -123,6 +123,15 @@ void ProximityInfoState::initInputParams(const int pointerId, const float maxPoi
}
}
}
+#ifdef DO_ASSERT_TEST
+ if (times) {
+ for (int i = 0; i < inputSize; ++i) {
+ if (i > 0) {
+ ASSERT(times[i] >= times[i - 1]);
+ }
+ }
+ }
+#endif
const bool proximityOnly = !isGeometric && (xCoordinates[0] < 0 || yCoordinates[0] < 0);
int lastInputIndex = pushTouchPointStartIndex;
for (int i = lastInputIndex; i < inputSize; ++i) {