aboutsummaryrefslogtreecommitdiffstats
path: root/native/jni/src/defines.h
diff options
context:
space:
mode:
authorYohei Yukawa <yukawa@google.com>2014-04-09 06:59:00 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-04-09 06:59:00 +0000
commite6a69f53b0053ee59e4b57a2d1d0e0fc49fe6a0d (patch)
tree8a7e86fb287b1e0598718a2d30fd3370fa3309fb /native/jni/src/defines.h
parent8d49064832937dd7215a9227a1fc34dc3de92791 (diff)
parentbbefa8c8265820f5f9aeb0e2a49a4526d7cdd682 (diff)
downloadlatinime-e6a69f53b0053ee59e4b57a2d1d0e0fc49fe6a0d.tar.gz
latinime-e6a69f53b0053ee59e4b57a2d1d0e0fc49fe6a0d.tar.xz
latinime-e6a69f53b0053ee59e4b57a2d1d0e0fc49fe6a0d.zip
am bbefa8c8: Merge "Make NELEMS type-safe"
* commit 'bbefa8c8265820f5f9aeb0e2a49a4526d7cdd682': Make NELEMS type-safe
Diffstat (limited to 'native/jni/src/defines.h')
-rw-r--r--native/jni/src/defines.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/native/jni/src/defines.h b/native/jni/src/defines.h
index 1719b1c60..3becc79e8 100644
--- a/native/jni/src/defines.h
+++ b/native/jni/src/defines.h
@@ -35,7 +35,13 @@
// Must be equal to ProximityInfo.MAX_PROXIMITY_CHARS_SIZE in Java
#define MAX_PROXIMITY_CHARS_SIZE 16
#define ADDITIONAL_PROXIMITY_CHAR_DELIMITER_CODE 2
-#define NELEMS(x) (sizeof(x) / sizeof((x)[0]))
+
+// TODO: Use size_t instead of int.
+// Disclaimer: You will see a compile error if you use this macro against a variable-length array.
+// Sorry for the inconvenience. It isn't supported.
+template <typename T, int N>
+char (&ArraySizeHelper(T (&array)[N]))[N];
+#define NELEMS(x) (sizeof(ArraySizeHelper(x)))
AK_FORCE_INLINE static int intArrayToCharArray(const int *const source, const int sourceSize,
char *dest, const int destSize) {