summaryrefslogtreecommitdiffstats
path: root/dom/canvas/WebGLTypes.h
diff options
context:
space:
mode:
Diffstat (limited to 'dom/canvas/WebGLTypes.h')
-rw-r--r--dom/canvas/WebGLTypes.h30
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) {