Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2016-01-18 23:00:55 +0300
committerCampbell Barton <ideasman42@gmail.com>2016-01-19 00:23:05 +0300
commit5128637d480a376711798858a1dbdb3302039426 (patch)
tree6a11a2c35e1fd402aaf36469dd83931323eaad1f /source/blender/blenlib/BLI_array_utils.h
parent3d4b8922fcb794e0aa8ab5d1a0311f6b594c5b32 (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.h18
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__ */