diff options
author | Campbell Barton <ideasman42@gmail.com> | 2016-01-18 23:00:55 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2016-01-19 00:23:05 +0300 |
commit | 5128637d480a376711798858a1dbdb3302039426 (patch) | |
tree | 6a11a2c35e1fd402aaf36469dd83931323eaad1f /source/blender/blenlib/BLI_array_utils.h | |
parent | 3d4b8922fcb794e0aa8ab5d1a0311f6b594c5b32 (diff) |
BLI_array_utils: add binary and/or functions
Diffstat (limited to 'source/blender/blenlib/BLI_array_utils.h')
-rw-r--r-- | source/blender/blenlib/BLI_array_utils.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/source/blender/blenlib/BLI_array_utils.h b/source/blender/blenlib/BLI_array_utils.h index ff7976dc701..c5359d56f9c 100644 --- a/source/blender/blenlib/BLI_array_utils.h +++ b/source/blender/blenlib/BLI_array_utils.h @@ -26,6 +26,8 @@ * \brief Generic array manipulation API. */ +#include "BLI_compiler_typecheck.h" + void _bli_array_reverse(void *arr, unsigned int arr_len, size_t arr_stride); #define BLI_array_reverse(arr, arr_len) \ _bli_array_reverse(arr, arr_len, sizeof(*(arr))) @@ -46,4 +48,20 @@ int _bli_array_findindex(const void *arr, unsigned int arr_len, size_t arr_strid #define BLI_array_findindex(arr, arr_len, p) \ _bli_array_findindex(arr, arr_len, sizeof(*(arr)), p) +void _bli_array_binary_and( + void *arr, const void *arr_a, const void *arr_b, + unsigned int arr_len, size_t arr_stride); +#define BLI_array_binary_and(arr, arr_a, arr_b, arr_len) \ + (CHECK_TYPE_PAIR_INLINE(*(arr), *(arr_a)), \ + CHECK_TYPE_PAIR_INLINE(*(arr), *(arr_b)), \ + _bli_array_binary_and(arr, arr_a, arr_b, arr_len, sizeof(*(arr)))) + +void _bli_array_binary_or( + void *arr, const void *arr_a, const void *arr_b, + unsigned int arr_len, size_t arr_stride); +#define BLI_array_binary_or(arr, arr_a, arr_b, arr_len) \ + (CHECK_TYPE_PAIR_INLINE(*(arr), *(arr_a)), \ + CHECK_TYPE_PAIR_INLINE(*(arr), *(arr_b)), \ + _bli_array_binary_or(arr, arr_a, arr_b, arr_len, sizeof(*(arr)))) + #endif /* __BLI_ARRAY_UTILS_H__ */ |