From 247a28f242c2c0a8931a84df0db6e60763642f30 Mon Sep 17 00:00:00 2001 From: Jacques Lucke Date: Sun, 5 Jul 2020 15:08:26 +0200 Subject: Revert "BLI: refactor how buffers for small object optimization are stored" This reverts commit 5d79f9f276b4b3e6289308c534c58e7ee3bb5e2d. This was introducing build errors in windows. Need a bit more time to check it. --- source/blender/blenlib/BLI_array.hh | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'source/blender/blenlib/BLI_array.hh') diff --git a/source/blender/blenlib/BLI_array.hh b/source/blender/blenlib/BLI_array.hh index 9732f43a268..ee4e9702779 100644 --- a/source/blender/blenlib/BLI_array.hh +++ b/source/blender/blenlib/BLI_array.hh @@ -74,7 +74,7 @@ class Array { Allocator allocator_; /** A placeholder buffer that will remain uninitialized until it is used. */ - TypedBuffer inline_buffer_; + AlignedBuffer inline_buffer_; public: /** @@ -82,7 +82,7 @@ class Array { */ Array() { - data_ = inline_buffer_; + data_ = this->inline_buffer(); size_ = 0; } @@ -167,7 +167,7 @@ class Array { uninitialized_relocate_n(other.data_, size_, data_); } - other.data_ = other.inline_buffer_; + other.data_ = other.inline_buffer(); other.size_ = 0; } @@ -335,13 +335,18 @@ class Array { T *get_buffer_for_size(uint size) { if (size <= InlineBufferCapacity) { - return inline_buffer_; + return this->inline_buffer(); } else { return this->allocate(size); } } + T *inline_buffer() const + { + return (T *)inline_buffer_.ptr(); + } + T *allocate(uint size) { return (T *)allocator_.allocate(size * sizeof(T), alignof(T), AT); @@ -349,7 +354,7 @@ class Array { bool uses_inline_buffer() const { - return data_ == inline_buffer_; + return data_ == this->inline_buffer(); } }; -- cgit v1.2.3