92 if (span.
data() !=
nullptr) {
111 other.
data_ =
nullptr;
117 if (
data_ !=
nullptr) {
119 this->deallocate(
data_);
222 if (new_size <= old_size) {
226 void *new_data = this->allocate(new_size);
231 this->deallocate(new_data);
234 this->deallocate(
data_);
246 return allocator_.allocate(
static_cast<size_t>(
size) * item_size, alignment,
AT);
249 void deallocate(
void *
ptr)
#define POINTER_OFFSET(v, ofs)
#define BLI_NO_UNIQUE_ADDRESS
void default_construct_n(void *ptr, int64_t n) const
void destruct_n(void *ptr, int64_t n) const
void copy_assign_n(const void *src, void *dst, int64_t n) const
bool pointer_has_valid_alignment(const void *ptr) const
int64_t alignment() const
GMutableSpan as_mutable_span()
GArray & operator=(const GArray &other)
GArray & operator=(GArray &&other)
BLI_NO_UNIQUE_ADDRESS Allocator allocator_
GArray(NoExceptConstructor, Allocator allocator={}) noexcept
void reinitialize(const int64_t new_size)
GArray(const GArray &other)
GArray(Allocator allocator={}) noexcept
GArray(const CPPType &type, int64_t size, Allocator allocator={})
GArray(const GSpan span, Allocator allocator={})
GArray(const CPPType &type, void *buffer, int64_t size, Allocator allocator={})
const Allocator & allocator() const
const void * data() const
void * operator[](int64_t index)
const void * operator[](int64_t index) const
const CPPType & type() const
GArray(const CPPType &type, Allocator allocator={})
const void * data() const
const CPPType & type() const
ccl_global float * buffer
Container & move_assign_container(Container &dst, Container &&src) noexcept(std::is_nothrow_move_constructible_v< Container >)
Container & copy_assign_container(Container &dst, const Container &src)