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:
authorJacques Lucke <jacques@blender.org>2020-07-10 13:36:06 +0300
committerJacques Lucke <jacques@blender.org>2020-07-10 13:57:28 +0300
commit52636c3059de1f8b4ec092cd8fa4c535be59867e (patch)
treec5c23fc9729f8b319e8cd2fbd8a2271b824fa212 /source/blender/functions
parent39b525e0f07fa25dcda54226ade789959b642dec (diff)
Cleanup: various cleanups in for CPPType
Diffstat (limited to 'source/blender/functions')
-rw-r--r--source/blender/functions/FN_cpp_type.hh148
1 files changed, 73 insertions, 75 deletions
diff --git a/source/blender/functions/FN_cpp_type.hh b/source/blender/functions/FN_cpp_type.hh
index aa628dafd27..4686371028f 100644
--- a/source/blender/functions/FN_cpp_type.hh
+++ b/source/blender/functions/FN_cpp_type.hh
@@ -40,9 +40,9 @@
* Constructs a single instance of that type at the given pointer.
* - construct_default_n(void *ptr, uint n):
* Constructs n instances of that type in an array that starts at the given pointer.
- * - construct_default_indices(void *ptr, IndexMask index_mask):
+ * - construct_default_indices(void *ptr, IndexMask mask):
* Constructs multiple instances of that type in an array that starts at the given pointer.
- * Only the indices referenced by `index_mask` will by constructed.
+ * Only the indices referenced by `mask` will by constructed.
*
* In some cases default-construction does nothing (e.g. for trivial types like int). The
* `default_value` method provides some default value anyway that can be copied instead. What the
@@ -77,33 +77,33 @@ class CPPType {
public:
using ConstructDefaultF = void (*)(void *ptr);
using ConstructDefaultNF = void (*)(void *ptr, uint n);
- using ConstructDefaultIndicesF = void (*)(void *ptr, IndexMask index_mask);
+ using ConstructDefaultIndicesF = void (*)(void *ptr, IndexMask mask);
using DestructF = void (*)(void *ptr);
using DestructNF = void (*)(void *ptr, uint n);
- using DestructIndicesF = void (*)(void *ptr, IndexMask index_mask);
+ using DestructIndicesF = void (*)(void *ptr, IndexMask mask);
using CopyToInitializedF = void (*)(const void *src, void *dst);
using CopyToInitializedNF = void (*)(const void *src, void *dst, uint n);
- using CopyToInitializedIndicesF = void (*)(const void *src, void *dst, IndexMask index_mask);
+ using CopyToInitializedIndicesF = void (*)(const void *src, void *dst, IndexMask mask);
using CopyToUninitializedF = void (*)(const void *src, void *dst);
using CopyToUninitializedNF = void (*)(const void *src, void *dst, uint n);
- using CopyToUninitializedIndicesF = void (*)(const void *src, void *dst, IndexMask index_mask);
+ using CopyToUninitializedIndicesF = void (*)(const void *src, void *dst, IndexMask mask);
using RelocateToInitializedF = void (*)(void *src, void *dst);
using RelocateToInitializedNF = void (*)(void *src, void *dst, uint n);
- using RelocateToInitializedIndicesF = void (*)(void *src, void *dst, IndexMask index_mask);
+ using RelocateToInitializedIndicesF = void (*)(void *src, void *dst, IndexMask mask);
using RelocateToUninitializedF = void (*)(void *src, void *dst);
using RelocateToUninitializedNF = void (*)(void *src, void *dst, uint n);
- using RelocateToUninitializedIndicesF = void (*)(void *src, void *dst, IndexMask index_mask);
+ using RelocateToUninitializedIndicesF = void (*)(void *src, void *dst, IndexMask mask);
using FillInitializedF = void (*)(const void *value, void *dst, uint n);
- using FillInitializedIndicesF = void (*)(const void *value, void *dst, IndexMask index_mask);
+ using FillInitializedIndicesF = void (*)(const void *value, void *dst, IndexMask mask);
using FillUninitializedF = void (*)(const void *value, void *dst, uint n);
- using FillUninitializedIndicesF = void (*)(const void *value, void *dst, IndexMask index_mask);
+ using FillUninitializedIndicesF = void (*)(const void *value, void *dst, IndexMask mask);
using DebugPrintF = void (*)(const void *value, std::stringstream &ss);
@@ -299,16 +299,16 @@ class CPPType {
void construct_default_n(void *ptr, uint n) const
{
- BLI_assert(this->pointer_has_valid_alignment(ptr));
+ BLI_assert(n == 0 || this->pointer_can_point_to_instance(ptr));
construct_default_n_(ptr, n);
}
- void construct_default_indices(void *ptr, IndexMask index_mask) const
+ void construct_default_indices(void *ptr, IndexMask mask) const
{
- BLI_assert(this->pointer_has_valid_alignment(ptr));
+ BLI_assert(mask.size() == 0 || this->pointer_can_point_to_instance(ptr));
- construct_default_indices_(ptr, index_mask);
+ construct_default_indices_(ptr, mask);
}
/**
@@ -328,16 +328,16 @@ class CPPType {
void destruct_n(void *ptr, uint n) const
{
- BLI_assert(this->pointer_has_valid_alignment(ptr));
+ BLI_assert(n == 0 || this->pointer_can_point_to_instance(ptr));
destruct_n_(ptr, n);
}
- void destruct_indices(void *ptr, IndexMask index_mask) const
+ void destruct_indices(void *ptr, IndexMask mask) const
{
- BLI_assert(this->pointer_has_valid_alignment(ptr));
+ BLI_assert(mask.size() == 0 || this->pointer_can_point_to_instance(ptr));
- destruct_indices_(ptr, index_mask);
+ destruct_indices_(ptr, mask);
}
DestructF destruct_cb() const
@@ -363,19 +363,19 @@ class CPPType {
void copy_to_initialized_n(const void *src, void *dst, uint n) const
{
BLI_assert(src != dst);
- BLI_assert(this->pointer_has_valid_alignment(src));
- BLI_assert(this->pointer_has_valid_alignment(dst));
+ BLI_assert(n == 0 || this->pointer_can_point_to_instance(src));
+ BLI_assert(n == 0 || this->pointer_can_point_to_instance(dst));
copy_to_initialized_n_(src, dst, n);
}
- void copy_to_initialized_indices(const void *src, void *dst, IndexMask index_mask) const
+ void copy_to_initialized_indices(const void *src, void *dst, IndexMask mask) const
{
BLI_assert(src != dst);
- BLI_assert(this->pointer_has_valid_alignment(src));
- BLI_assert(this->pointer_has_valid_alignment(dst));
+ BLI_assert(mask.size() == 0 || this->pointer_can_point_to_instance(src));
+ BLI_assert(mask.size() == 0 || this->pointer_can_point_to_instance(dst));
- copy_to_initialized_indices_(src, dst, index_mask);
+ copy_to_initialized_indices_(src, dst, mask);
}
/**
@@ -398,19 +398,19 @@ class CPPType {
void copy_to_uninitialized_n(const void *src, void *dst, uint n) const
{
BLI_assert(src != dst);
- BLI_assert(this->pointer_has_valid_alignment(src));
- BLI_assert(this->pointer_has_valid_alignment(dst));
+ BLI_assert(n == 0 || this->pointer_can_point_to_instance(src));
+ BLI_assert(n == 0 || this->pointer_can_point_to_instance(dst));
copy_to_uninitialized_n_(src, dst, n);
}
- void copy_to_uninitialized_indices(const void *src, void *dst, IndexMask index_mask) const
+ void copy_to_uninitialized_indices(const void *src, void *dst, IndexMask mask) const
{
BLI_assert(src != dst);
- BLI_assert(this->pointer_has_valid_alignment(src));
- BLI_assert(this->pointer_has_valid_alignment(dst));
+ BLI_assert(mask.size() == 0 || this->pointer_can_point_to_instance(src));
+ BLI_assert(mask.size() == 0 || this->pointer_can_point_to_instance(dst));
- copy_to_uninitialized_indices_(src, dst, index_mask);
+ copy_to_uninitialized_indices_(src, dst, mask);
}
/**
@@ -433,19 +433,19 @@ class CPPType {
void relocate_to_initialized_n(void *src, void *dst, uint n) const
{
BLI_assert(src != dst);
- BLI_assert(this->pointer_has_valid_alignment(src));
- BLI_assert(this->pointer_has_valid_alignment(dst));
+ BLI_assert(n == 0 || this->pointer_can_point_to_instance(src));
+ BLI_assert(n == 0 || this->pointer_can_point_to_instance(dst));
relocate_to_initialized_n_(src, dst, n);
}
- void relocate_to_initialized_indices(void *src, void *dst, IndexMask index_mask) const
+ void relocate_to_initialized_indices(void *src, void *dst, IndexMask mask) const
{
BLI_assert(src != dst);
- BLI_assert(this->pointer_has_valid_alignment(src));
- BLI_assert(this->pointer_has_valid_alignment(dst));
+ BLI_assert(mask.size() == 0 || this->pointer_can_point_to_instance(src));
+ BLI_assert(mask.size() == 0 || this->pointer_can_point_to_instance(dst));
- relocate_to_initialized_indices_(src, dst, index_mask);
+ relocate_to_initialized_indices_(src, dst, mask);
}
/**
@@ -468,19 +468,19 @@ class CPPType {
void relocate_to_uninitialized_n(void *src, void *dst, uint n) const
{
BLI_assert(src != dst);
- BLI_assert(this->pointer_has_valid_alignment(src));
- BLI_assert(this->pointer_has_valid_alignment(dst));
+ BLI_assert(n == 0 || this->pointer_can_point_to_instance(src));
+ BLI_assert(n == 0 || this->pointer_can_point_to_instance(dst));
relocate_to_uninitialized_n_(src, dst, n);
}
- void relocate_to_uninitialized_indices(void *src, void *dst, IndexMask index_mask) const
+ void relocate_to_uninitialized_indices(void *src, void *dst, IndexMask mask) const
{
BLI_assert(src != dst);
- BLI_assert(this->pointer_has_valid_alignment(src));
- BLI_assert(this->pointer_has_valid_alignment(dst));
+ BLI_assert(mask.size() == 0 || this->pointer_can_point_to_instance(src));
+ BLI_assert(mask.size() == 0 || this->pointer_can_point_to_instance(dst));
- relocate_to_uninitialized_indices_(src, dst, index_mask);
+ relocate_to_uninitialized_indices_(src, dst, mask);
}
/**
@@ -490,18 +490,18 @@ class CPPType {
*/
void fill_initialized(const void *value, void *dst, uint n) const
{
- BLI_assert(this->pointer_can_point_to_instance(value));
- BLI_assert(this->pointer_can_point_to_instance(dst));
+ BLI_assert(n == 0 || this->pointer_can_point_to_instance(value));
+ BLI_assert(n == 0 || this->pointer_can_point_to_instance(dst));
fill_initialized_(value, dst, n);
}
- void fill_initialized_indices(const void *value, void *dst, IndexMask index_mask) const
+ void fill_initialized_indices(const void *value, void *dst, IndexMask mask) const
{
- BLI_assert(this->pointer_has_valid_alignment(value));
- BLI_assert(this->pointer_has_valid_alignment(dst));
+ BLI_assert(mask.size() == 0 || this->pointer_can_point_to_instance(value));
+ BLI_assert(mask.size() == 0 || this->pointer_can_point_to_instance(dst));
- fill_initialized_indices_(value, dst, index_mask);
+ fill_initialized_indices_(value, dst, mask);
}
/**
@@ -511,18 +511,18 @@ class CPPType {
*/
void fill_uninitialized(const void *value, void *dst, uint n) const
{
- BLI_assert(this->pointer_can_point_to_instance(value));
- BLI_assert(this->pointer_can_point_to_instance(dst));
+ BLI_assert(n == 0 || this->pointer_can_point_to_instance(value));
+ BLI_assert(n == 0 || this->pointer_can_point_to_instance(dst));
fill_uninitialized_(value, dst, n);
}
- void fill_uninitialized_indices(const void *value, void *dst, IndexMask index_mask) const
+ void fill_uninitialized_indices(const void *value, void *dst, IndexMask mask) const
{
- BLI_assert(this->pointer_has_valid_alignment(value));
- BLI_assert(this->pointer_has_valid_alignment(dst));
+ BLI_assert(mask.size() == 0 || this->pointer_can_point_to_instance(value));
+ BLI_assert(mask.size() == 0 || this->pointer_can_point_to_instance(dst));
- fill_uninitialized_indices_(value, dst, index_mask);
+ fill_uninitialized_indices_(value, dst, mask);
}
void debug_print(const void *value, std::stringstream &ss) const
@@ -555,7 +555,7 @@ class CPPType {
* Utility for creating CPPType instances for C++ types.
*/
-namespace CPPTypeUtil {
+namespace cpp_type_util {
template<typename T> void construct_default_cb(void *ptr)
{
@@ -565,9 +565,9 @@ template<typename T> void construct_default_n_cb(void *ptr, uint n)
{
blender::default_construct_n((T *)ptr, n);
}
-template<typename T> void construct_default_indices_cb(void *ptr, IndexMask index_mask)
+template<typename T> void construct_default_indices_cb(void *ptr, IndexMask mask)
{
- index_mask.foreach_index([&](uint i) { new ((T *)ptr + i) T; });
+ mask.foreach_index([&](uint i) { new ((T *)ptr + i) T; });
}
template<typename T> void destruct_cb(void *ptr)
@@ -578,10 +578,10 @@ template<typename T> void destruct_n_cb(void *ptr, uint n)
{
blender::destruct_n((T *)ptr, n);
}
-template<typename T> void destruct_indices_cb(void *ptr, IndexMask index_mask)
+template<typename T> void destruct_indices_cb(void *ptr, IndexMask mask)
{
T *ptr_ = (T *)ptr;
- index_mask.foreach_index([&](uint i) { ptr_[i].~T(); });
+ mask.foreach_index([&](uint i) { ptr_[i].~T(); });
}
template<typename T> void copy_to_initialized_cb(const void *src, void *dst)
@@ -598,12 +598,12 @@ template<typename T> void copy_to_initialized_n_cb(const void *src, void *dst, u
}
}
template<typename T>
-void copy_to_initialized_indices_cb(const void *src, void *dst, IndexMask index_mask)
+void copy_to_initialized_indices_cb(const void *src, void *dst, IndexMask mask)
{
const T *src_ = (const T *)src;
T *dst_ = (T *)dst;
- index_mask.foreach_index([&](uint i) { dst_[i] = src_[i]; });
+ mask.foreach_index([&](uint i) { dst_[i] = src_[i]; });
}
template<typename T> void copy_to_uninitialized_cb(const void *src, void *dst)
@@ -615,12 +615,12 @@ template<typename T> void copy_to_uninitialized_n_cb(const void *src, void *dst,
blender::uninitialized_copy_n((T *)src, n, (T *)dst);
}
template<typename T>
-void copy_to_uninitialized_indices_cb(const void *src, void *dst, IndexMask index_mask)
+void copy_to_uninitialized_indices_cb(const void *src, void *dst, IndexMask mask)
{
const T *src_ = (const T *)src;
T *dst_ = (T *)dst;
- index_mask.foreach_index([&](uint i) { new (dst_ + i) T(src_[i]); });
+ mask.foreach_index([&](uint i) { new (dst_ + i) T(src_[i]); });
}
template<typename T> void relocate_to_initialized_cb(void *src, void *dst)
@@ -635,13 +635,12 @@ template<typename T> void relocate_to_initialized_n_cb(void *src, void *dst, uin
{
blender::initialized_relocate_n((T *)src, n, (T *)dst);
}
-template<typename T>
-void relocate_to_initialized_indices_cb(void *src, void *dst, IndexMask index_mask)
+template<typename T> void relocate_to_initialized_indices_cb(void *src, void *dst, IndexMask mask)
{
T *src_ = (T *)src;
T *dst_ = (T *)dst;
- index_mask.foreach_index([&](uint i) {
+ mask.foreach_index([&](uint i) {
dst_[i] = std::move(src_[i]);
src_[i].~T();
});
@@ -660,12 +659,12 @@ template<typename T> void relocate_to_uninitialized_n_cb(void *src, void *dst, u
blender::uninitialized_relocate_n((T *)src, n, (T *)dst);
}
template<typename T>
-void relocate_to_uninitialized_indices_cb(void *src, void *dst, IndexMask index_mask)
+void relocate_to_uninitialized_indices_cb(void *src, void *dst, IndexMask mask)
{
T *src_ = (T *)src;
T *dst_ = (T *)dst;
- index_mask.foreach_index([&](uint i) {
+ mask.foreach_index([&](uint i) {
new (dst_ + i) T(std::move(src_[i]));
src_[i].~T();
});
@@ -680,13 +679,12 @@ template<typename T> void fill_initialized_cb(const void *value, void *dst, uint
dst_[i] = value_;
}
}
-template<typename T>
-void fill_initialized_indices_cb(const void *value, void *dst, IndexMask index_mask)
+template<typename T> void fill_initialized_indices_cb(const void *value, void *dst, IndexMask mask)
{
const T &value_ = *(const T *)value;
T *dst_ = (T *)dst;
- index_mask.foreach_index([&](uint i) { dst_[i] = value_; });
+ mask.foreach_index([&](uint i) { dst_[i] = value_; });
}
template<typename T> void fill_uninitialized_cb(const void *value, void *dst, uint n)
@@ -699,12 +697,12 @@ template<typename T> void fill_uninitialized_cb(const void *value, void *dst, ui
}
}
template<typename T>
-void fill_uninitialized_indices_cb(const void *value, void *dst, IndexMask index_mask)
+void fill_uninitialized_indices_cb(const void *value, void *dst, IndexMask mask)
{
const T &value_ = *(const T *)value;
T *dst_ = (T *)dst;
- index_mask.foreach_index([&](uint i) { new (dst_ + i) T(value_); });
+ mask.foreach_index([&](uint i) { new (dst_ + i) T(value_); });
}
template<typename T> void debug_print_cb(const void *value, std::stringstream &ss)
@@ -713,12 +711,12 @@ template<typename T> void debug_print_cb(const void *value, std::stringstream &s
ss << value_;
}
-} // namespace CPPTypeUtil
+} // namespace cpp_type_util
template<typename T>
inline std::unique_ptr<const CPPType> create_cpp_type(StringRef name, const T &default_value)
{
- using namespace CPPTypeUtil;
+ using namespace cpp_type_util;
const CPPType *type = new CPPType(name,
sizeof(T),
alignof(T),