From dd4d938e6990701176c658af5c593ea377973bef Mon Sep 17 00:00:00 2001 From: Satoshi Kataoka Date: Wed, 9 Jan 2013 12:54:39 +0900 Subject: [PATCH] assert when the touch event goes back to the future bug: 7911739 Change-Id: I29db6a5cb6749999666b1c53857ea61bcc19b8f1 --- native/jni/src/defines.h | 3 +++ native/jni/src/proximity_info_state.cpp | 9 +++++++++ 2 files changed, 12 insertions(+) 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 #include +#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 +#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) {