diff options
author | 2014-04-09 11:31:43 +0900 | |
---|---|---|
committer | 2014-04-09 15:51:39 +0900 | |
commit | b417d7d69f72f3f8224887f63b6d569dc1b19b02 (patch) | |
tree | 28ef4a4f2b31ed780668667a145925f72b597e7b /native/jni/src | |
parent | 27a4f2e5e17ef684a94fbd66b5d74ad0fc1fa4f6 (diff) | |
download | latinime-b417d7d69f72f3f8224887f63b6d569dc1b19b02.tar.gz latinime-b417d7d69f72f3f8224887f63b6d569dc1b19b02.tar.xz latinime-b417d7d69f72f3f8224887f63b6d569dc1b19b02.zip |
Make NELEMS type-safe
Change-Id: I867271665b3c595dc40ac63e93e68c87dc213d08
Diffstat (limited to 'native/jni/src')
-rw-r--r-- | native/jni/src/defines.h | 8 |
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) { |