Bug 1874684 - Part 17: Fix uninitialised variable warnings from clang-tidy. r=allstarschh
[gecko.git] / gfx / 2d / StackArray.h
blob165d45cb12ad91763a7c7c7f1fce21409ae2c2f7
1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* vim: set ts=8 sts=2 et sw=2 tw=80: */
3 /* This Source Code Form is subject to the terms of the Mozilla Public
4 * License, v. 2.0. If a copy of the MPL was not distributed with this
5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
7 /* A handy class that will allocate data for size*T objects on the stack and
8 * otherwise allocate them on the heap. It is similar in purpose to AutoTArray
9 */
11 template <class T, size_t size>
12 class StackArray final {
13 public:
14 explicit StackArray(size_t count) {
15 if (count > size) {
16 mData = new T[count];
17 } else {
18 mData = mStackData;
21 ~StackArray() {
22 if (mData != mStackData) {
23 delete[] mData;
26 T& operator[](size_t n) { return mData[n]; }
27 const T& operator[](size_t n) const { return mData[n]; }
28 T* data() { return mData; };
30 private:
31 T mStackData[size];
32 T* mData;