diff options
Diffstat (limited to 'dom/canvas/WebGLTypes.h')
-rw-r--r-- | dom/canvas/WebGLTypes.h | 30 |
1 files changed, 14 insertions, 16 deletions
diff --git a/dom/canvas/WebGLTypes.h b/dom/canvas/WebGLTypes.h index b06aa8a314..092ab9e127 100644 --- a/dom/canvas/WebGLTypes.h +++ b/dom/canvas/WebGLTypes.h @@ -839,33 +839,31 @@ struct VertAttribPointerCalculated final { } // namespace webgl -/** - * Represents a block of memory that it may or may not own. The - * inner data type must be trivially copyable by memcpy. - */ +// TODO: s/RawBuffer/Span/ template <typename T = uint8_t> class RawBuffer final { const T* mBegin = nullptr; size_t mLen = 0; - UniqueBuffer mOwned; public: using ElementType = T; - /** - * If aTakeData is true, RawBuffer will delete[] the memory when destroyed. - */ - explicit RawBuffer(const Range<const T>& data, UniqueBuffer&& owned = {}) - : mBegin(data.begin().get()), - mLen(data.length()), - mOwned(std::move(owned)) {} - - explicit RawBuffer(const size_t len) : mLen(len) {} + explicit RawBuffer(const Range<const T>& data) + : mBegin(data.begin().get()), mLen(data.length()) { + if (mLen) { + MOZ_ASSERT(mBegin); + } + } ~RawBuffer() = default; - Range<const T> Data() const { return {mBegin, mLen}; } - const auto& begin() const { return mBegin; } + Range<const T> Data() const { return {begin(), mLen}; } + const auto& begin() const { + if (mLen) { + MOZ_RELEASE_ASSERT(mBegin); + } + return mBegin; + } const auto& size() const { return mLen; } void Shrink(const size_t newLen) { |