/src/serenity/AK/FixedArray.h
Line | Count | Source |
1 | | /* |
2 | | * Copyright (c) 2018-2022, Andreas Kling <kling@serenityos.org> |
3 | | * Copyright (c) 2022, the SerenityOS developers. |
4 | | * |
5 | | * SPDX-License-Identifier: BSD-2-Clause |
6 | | */ |
7 | | |
8 | | #pragma once |
9 | | |
10 | | #include <AK/Error.h> |
11 | | #include <AK/Iterator.h> |
12 | | #include <AK/Span.h> |
13 | | #include <AK/kmalloc.h> |
14 | | #include <initializer_list> |
15 | | |
16 | | namespace AK { |
17 | | |
18 | | // FixedArray is an Array with a size only known at run-time. |
19 | | // It guarantees to only allocate when being constructed, and to only deallocate when being destructed. |
20 | | template<typename T> |
21 | | class FixedArray { |
22 | | public: |
23 | 456k | FixedArray() = default; AK::FixedArray<AK::Detail::ByteBuffer<32ul> >::FixedArray() Line | Count | Source | 23 | 23 | FixedArray() = default; |
AK::FixedArray<unsigned char>::FixedArray() Line | Count | Source | 23 | 11.1k | FixedArray() = default; |
Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::BlendingInfo>::FixedArray() AK::FixedArray<unsigned int>::FixedArray() Line | Count | Source | 23 | 1.49k | FixedArray() = default; |
Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::Patch>::FixedArray() Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::HfGlobalPassMetadata>::FixedArray() Unexecuted instantiation: AK::FixedArray<Gfx::Point<int> >::FixedArray() Unexecuted instantiation: AK::FixedArray<AK::FixedArray<Gfx::JPEGXL::BlendingInfo> >::FixedArray() Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::ChannelInfo>::FixedArray() Unexecuted instantiation: AK::FixedArray<int>::FixedArray() Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::SelfCorrectingData::Predictions>::FixedArray() Unexecuted instantiation: AK::FixedArray<AK::Span<unsigned char const> >::FixedArray() Unexecuted instantiation: AK::FixedArray<AK::ByteString>::FixedArray() Unexecuted instantiation: AK::FixedArray<char*>::FixedArray() Unexecuted instantiation: AK::FixedArray<unsigned short>::FixedArray() Unexecuted instantiation: AK::FixedArray<Audio::QOA::LMSState>::FixedArray() Unexecuted instantiation: AK::FixedArray<AK::Array<short, 5120ul> >::FixedArray() AK::FixedArray<Audio::Sample>::FixedArray() Line | Count | Source | 23 | 443k | FixedArray() = default; |
Unexecuted instantiation: AK::FixedArray<Audio::MP3::Channel>::FixedArray() Unexecuted instantiation: AK::FixedArray<AK::FlyString>::FixedArray() Unexecuted instantiation: AK::FixedArray<bool>::FixedArray() Unexecuted instantiation: AK::FixedArray<Gfx::Pixel>::FixedArray() |
24 | | |
25 | | static ErrorOr<FixedArray<T>> create(std::initializer_list<T> initializer) |
26 | 0 | { |
27 | 0 | auto array = TRY(create(initializer.size())); |
28 | 0 | auto it = initializer.begin(); |
29 | 0 | for (size_t i = 0; i < array.size(); ++i) { |
30 | 0 | array[i] = move(*it); |
31 | 0 | ++it; |
32 | 0 | } |
33 | 0 | return array; |
34 | 0 | } |
35 | | |
36 | | static ErrorOr<FixedArray<T>> create(size_t size) |
37 | 1.31M | { |
38 | 1.31M | if (size == 0) |
39 | 83.1k | return FixedArray<T>(); |
40 | 1.23M | auto* elements = reinterpret_cast<T*>(kmalloc(storage_allocation_size(size))); |
41 | 1.23M | if (!elements) |
42 | 0 | return Error::from_errno(ENOMEM); |
43 | 13.1G | for (size_t i = 0; i < size; ++i) |
44 | 13.1G | new (&elements[i]) T(); |
45 | 1.23M | return FixedArray<T>(size, elements); |
46 | 1.23M | } AK::FixedArray<AK::Detail::ByteBuffer<32ul> >::create(unsigned long) Line | Count | Source | 37 | 178 | { | 38 | 178 | if (size == 0) | 39 | 23 | return FixedArray<T>(); | 40 | 155 | auto* elements = reinterpret_cast<T*>(kmalloc(storage_allocation_size(size))); | 41 | 155 | if (!elements) | 42 | 0 | return Error::from_errno(ENOMEM); | 43 | 9.05k | for (size_t i = 0; i < size; ++i) | 44 | 8.90k | new (&elements[i]) T(); | 45 | 155 | return FixedArray<T>(size, elements); | 46 | 155 | } |
AK::FixedArray<unsigned char>::create(unsigned long) Line | Count | Source | 37 | 13.5k | { | 38 | 13.5k | if (size == 0) | 39 | 0 | return FixedArray<T>(); | 40 | 13.5k | auto* elements = reinterpret_cast<T*>(kmalloc(storage_allocation_size(size))); | 41 | 13.5k | if (!elements) | 42 | 0 | return Error::from_errno(ENOMEM); | 43 | 10.4G | for (size_t i = 0; i < size; ++i) | 44 | 10.4G | new (&elements[i]) T(); | 45 | 13.5k | return FixedArray<T>(size, elements); | 46 | 13.5k | } |
Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::BlendingInfo>::create(unsigned long) AK::FixedArray<unsigned int>::create(unsigned long) Line | Count | Source | 37 | 348k | { | 38 | 348k | if (size == 0) | 39 | 1.49k | return FixedArray<T>(); | 40 | 347k | auto* elements = reinterpret_cast<T*>(kmalloc(storage_allocation_size(size))); | 41 | 347k | if (!elements) | 42 | 0 | return Error::from_errno(ENOMEM); | 43 | 961M | for (size_t i = 0; i < size; ++i) | 44 | 961M | new (&elements[i]) T(); | 45 | 347k | return FixedArray<T>(size, elements); | 46 | 347k | } |
Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::Patch>::create(unsigned long) Unexecuted instantiation: AK::FixedArray<Gfx::Point<int> >::create(unsigned long) Unexecuted instantiation: AK::FixedArray<AK::FixedArray<Gfx::JPEGXL::BlendingInfo> >::create(unsigned long) Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::ChannelInfo>::create(unsigned long) Unexecuted instantiation: AK::FixedArray<int>::create(unsigned long) Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::SelfCorrectingData::Predictions>::create(unsigned long) Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::HfGlobalPassMetadata>::create(unsigned long) Unexecuted instantiation: AK::FixedArray<AK::Span<unsigned char const> >::create(unsigned long) Unexecuted instantiation: AK::FixedArray<AK::ByteString>::create(unsigned long) Unexecuted instantiation: AK::FixedArray<char*>::create(unsigned long) AK::FixedArray<unsigned short>::create(unsigned long) Line | Count | Source | 37 | 6.91k | { | 38 | 6.91k | if (size == 0) | 39 | 0 | return FixedArray<T>(); | 40 | 6.91k | auto* elements = reinterpret_cast<T*>(kmalloc(storage_allocation_size(size))); | 41 | 6.91k | if (!elements) | 42 | 0 | return Error::from_errno(ENOMEM); | 43 | 320M | for (size_t i = 0; i < size; ++i) | 44 | 320M | new (&elements[i]) T(); | 45 | 6.91k | return FixedArray<T>(size, elements); | 46 | 6.91k | } |
AK::FixedArray<Audio::QOA::LMSState>::create(unsigned long) Line | Count | Source | 37 | 252k | { | 38 | 252k | if (size == 0) | 39 | 0 | return FixedArray<T>(); | 40 | 252k | auto* elements = reinterpret_cast<T*>(kmalloc(storage_allocation_size(size))); | 41 | 252k | if (!elements) | 42 | 0 | return Error::from_errno(ENOMEM); | 43 | 523k | for (size_t i = 0; i < size; ++i) | 44 | 271k | new (&elements[i]) T(); | 45 | 252k | return FixedArray<T>(size, elements); | 46 | 252k | } |
AK::FixedArray<AK::Array<short, 5120ul> >::create(unsigned long) Line | Count | Source | 37 | 252k | { | 38 | 252k | if (size == 0) | 39 | 0 | return FixedArray<T>(); | 40 | 252k | auto* elements = reinterpret_cast<T*>(kmalloc(storage_allocation_size(size))); | 41 | 252k | if (!elements) | 42 | 0 | return Error::from_errno(ENOMEM); | 43 | 517k | for (size_t i = 0; i < size; ++i) | 44 | 265k | new (&elements[i]) T(); | 45 | 252k | return FixedArray<T>(size, elements); | 46 | 252k | } |
AK::FixedArray<Audio::Sample>::create(unsigned long) Line | Count | Source | 37 | 400k | { | 38 | 400k | if (size == 0) | 39 | 81.5k | return FixedArray<T>(); | 40 | 318k | auto* elements = reinterpret_cast<T*>(kmalloc(storage_allocation_size(size))); | 41 | 318k | if (!elements) | 42 | 0 | return Error::from_errno(ENOMEM); | 43 | 1.37G | for (size_t i = 0; i < size; ++i) | 44 | 1.36G | new (&elements[i]) T(); | 45 | 318k | return FixedArray<T>(size, elements); | 46 | 318k | } |
AK::FixedArray<Audio::MP3::Channel>::create(unsigned long) Line | Count | Source | 37 | 30.2k | { | 38 | 30.2k | if (size == 0) | 39 | 0 | return FixedArray<T>(); | 40 | 30.2k | auto* elements = reinterpret_cast<T*>(kmalloc(storage_allocation_size(size))); | 41 | 30.2k | if (!elements) | 42 | 0 | return Error::from_errno(ENOMEM); | 43 | 89.5k | for (size_t i = 0; i < size; ++i) | 44 | 59.2k | new (&elements[i]) T(); | 45 | 30.2k | return FixedArray<T>(size, elements); | 46 | 30.2k | } |
Unexecuted instantiation: AK::FixedArray<AK::FlyString>::create(unsigned long) AK::FixedArray<bool>::create(unsigned long) Line | Count | Source | 37 | 12.0k | { | 38 | 12.0k | if (size == 0) | 39 | 0 | return FixedArray<T>(); | 40 | 12.0k | auto* elements = reinterpret_cast<T*>(kmalloc(storage_allocation_size(size))); | 41 | 12.0k | if (!elements) | 42 | 0 | return Error::from_errno(ENOMEM); | 43 | 2.21M | for (size_t i = 0; i < size; ++i) | 44 | 2.19M | new (&elements[i]) T(); | 45 | 12.0k | return FixedArray<T>(size, elements); | 46 | 12.0k | } |
Unexecuted instantiation: AK::FixedArray<Gfx::Pixel>::create(unsigned long) |
47 | | |
48 | | static FixedArray<T> must_create_but_fixme_should_propagate_errors(size_t size) |
49 | 30.2k | { |
50 | 30.2k | return MUST(create(size)); |
51 | 30.2k | } |
52 | | |
53 | | template<size_t N> |
54 | | static ErrorOr<FixedArray<T>> create(T (&&array)[N]) |
55 | | { |
56 | | return create(Span(array, N)); |
57 | | } |
58 | | |
59 | | template<typename U> |
60 | | static ErrorOr<FixedArray<T>> create(Span<U> span) |
61 | 254k | { |
62 | 254k | if (span.size() == 0) |
63 | 248k | return FixedArray<T>(); |
64 | 5.19k | auto* elements = reinterpret_cast<T*>(kmalloc(storage_allocation_size(span.size()))); |
65 | 5.19k | if (!elements) |
66 | 0 | return Error::from_errno(ENOMEM); |
67 | 1.74M | for (size_t i = 0; i < span.size(); ++i) |
68 | 1.73M | new (&elements[i]) T(span[i]); |
69 | 5.19k | return FixedArray<T>(span.size(), elements); |
70 | 5.19k | } AK::ErrorOr<AK::FixedArray<unsigned char>, AK::Error> AK::FixedArray<unsigned char>::create<unsigned char const>(AK::Span<unsigned char const>) Line | Count | Source | 61 | 3.11k | { | 62 | 3.11k | if (span.size() == 0) | 63 | 2.51k | return FixedArray<T>(); | 64 | 600 | auto* elements = reinterpret_cast<T*>(kmalloc(storage_allocation_size(span.size()))); | 65 | 600 | if (!elements) | 66 | 0 | return Error::from_errno(ENOMEM); | 67 | 344k | for (size_t i = 0; i < span.size(); ++i) | 68 | 343k | new (&elements[i]) T(span[i]); | 69 | 600 | return FixedArray<T>(span.size(), elements); | 70 | 600 | } |
AK::ErrorOr<AK::FixedArray<Audio::Sample>, AK::Error> AK::FixedArray<Audio::Sample>::create<Audio::Sample>(AK::Span<Audio::Sample>) Line | Count | Source | 61 | 250k | { | 62 | 250k | if (span.size() == 0) | 63 | 246k | return FixedArray<T>(); | 64 | 4.59k | auto* elements = reinterpret_cast<T*>(kmalloc(storage_allocation_size(span.size()))); | 65 | 4.59k | if (!elements) | 66 | 0 | return Error::from_errno(ENOMEM); | 67 | 1.39M | for (size_t i = 0; i < span.size(); ++i) | 68 | 1.39M | new (&elements[i]) T(span[i]); | 69 | 4.59k | return FixedArray<T>(span.size(), elements); | 70 | 4.59k | } |
|
71 | | |
72 | | ErrorOr<FixedArray<T>> clone() const |
73 | | { |
74 | | return create(span()); |
75 | | } |
76 | | |
77 | | // Nobody can ever use these functions, since it would be impossible to make them OOM-safe due to their signatures. We just explicitly delete them. |
78 | | FixedArray(FixedArray<T> const&) = delete; |
79 | | FixedArray<T>& operator=(FixedArray<T> const&) = delete; |
80 | | |
81 | | FixedArray(FixedArray<T>&& other) |
82 | 5.44M | : m_size(exchange(other.m_size, 0)) |
83 | 5.44M | , m_elements(exchange(other.m_elements, nullptr)) |
84 | 5.44M | { |
85 | 5.44M | } AK::FixedArray<AK::Detail::ByteBuffer<32ul> >::FixedArray(AK::FixedArray<AK::Detail::ByteBuffer<32ul> >&&) Line | Count | Source | 82 | 534 | : m_size(exchange(other.m_size, 0)) | 83 | 534 | , m_elements(exchange(other.m_elements, nullptr)) | 84 | 534 | { | 85 | 534 | } |
AK::FixedArray<unsigned char>::FixedArray(AK::FixedArray<unsigned char>&&) Line | Count | Source | 82 | 70.7k | : m_size(exchange(other.m_size, 0)) | 83 | 70.7k | , m_elements(exchange(other.m_elements, nullptr)) | 84 | 70.7k | { | 85 | 70.7k | } |
Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::BlendingInfo>::FixedArray(AK::FixedArray<Gfx::JPEGXL::BlendingInfo>&&) AK::FixedArray<unsigned int>::FixedArray(AK::FixedArray<unsigned int>&&) Line | Count | Source | 82 | 697k | : m_size(exchange(other.m_size, 0)) | 83 | 697k | , m_elements(exchange(other.m_elements, nullptr)) | 84 | 697k | { | 85 | 697k | } |
Unexecuted instantiation: AK::FixedArray<Gfx::Point<int> >::FixedArray(AK::FixedArray<Gfx::Point<int> >&&) Unexecuted instantiation: AK::FixedArray<AK::FixedArray<Gfx::JPEGXL::BlendingInfo> >::FixedArray(AK::FixedArray<AK::FixedArray<Gfx::JPEGXL::BlendingInfo> >&&) Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::Patch>::FixedArray(AK::FixedArray<Gfx::JPEGXL::Patch>&&) Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::ChannelInfo>::FixedArray(AK::FixedArray<Gfx::JPEGXL::ChannelInfo>&&) Unexecuted instantiation: AK::FixedArray<int>::FixedArray(AK::FixedArray<int>&&) Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::SelfCorrectingData::Predictions>::FixedArray(AK::FixedArray<Gfx::JPEGXL::SelfCorrectingData::Predictions>&&) Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::HfGlobalPassMetadata>::FixedArray(AK::FixedArray<Gfx::JPEGXL::HfGlobalPassMetadata>&&) Unexecuted instantiation: AK::FixedArray<AK::Span<unsigned char const> >::FixedArray(AK::FixedArray<AK::Span<unsigned char const> >&&) Unexecuted instantiation: AK::FixedArray<AK::ByteString>::FixedArray(AK::FixedArray<AK::ByteString>&&) Unexecuted instantiation: AK::FixedArray<char*>::FixedArray(AK::FixedArray<char*>&&) AK::FixedArray<unsigned short>::FixedArray(AK::FixedArray<unsigned short>&&) Line | Count | Source | 82 | 34.5k | : m_size(exchange(other.m_size, 0)) | 83 | 34.5k | , m_elements(exchange(other.m_elements, nullptr)) | 84 | 34.5k | { | 85 | 34.5k | } |
AK::FixedArray<Audio::QOA::LMSState>::FixedArray(AK::FixedArray<Audio::QOA::LMSState>&&) Line | Count | Source | 82 | 504k | : m_size(exchange(other.m_size, 0)) | 83 | 504k | , m_elements(exchange(other.m_elements, nullptr)) | 84 | 504k | { | 85 | 504k | } |
AK::FixedArray<AK::Array<short, 5120ul> >::FixedArray(AK::FixedArray<AK::Array<short, 5120ul> >&&) Line | Count | Source | 82 | 504k | : m_size(exchange(other.m_size, 0)) | 83 | 504k | , m_elements(exchange(other.m_elements, nullptr)) | 84 | 504k | { | 85 | 504k | } |
AK::FixedArray<Audio::Sample>::FixedArray(AK::FixedArray<Audio::Sample>&&) Line | Count | Source | 82 | 3.44M | : m_size(exchange(other.m_size, 0)) | 83 | 3.44M | , m_elements(exchange(other.m_elements, nullptr)) | 84 | 3.44M | { | 85 | 3.44M | } |
AK::FixedArray<Audio::MP3::Channel>::FixedArray(AK::FixedArray<Audio::MP3::Channel>&&) Line | Count | Source | 82 | 120k | : m_size(exchange(other.m_size, 0)) | 83 | 120k | , m_elements(exchange(other.m_elements, nullptr)) | 84 | 120k | { | 85 | 120k | } |
Unexecuted instantiation: AK::FixedArray<AK::FlyString>::FixedArray(AK::FixedArray<AK::FlyString>&&) AK::FixedArray<bool>::FixedArray(AK::FixedArray<bool>&&) Line | Count | Source | 82 | 66.4k | : m_size(exchange(other.m_size, 0)) | 83 | 66.4k | , m_elements(exchange(other.m_elements, nullptr)) | 84 | 66.4k | { | 85 | 66.4k | } |
Unexecuted instantiation: AK::FixedArray<Gfx::Pixel>::FixedArray(AK::FixedArray<Gfx::Pixel>&&) |
86 | | |
87 | | FixedArray<T>& operator=(FixedArray<T>&& other) |
88 | 3.11k | { |
89 | 3.11k | if (this != &other) { |
90 | 3.11k | this->~FixedArray(); |
91 | 3.11k | new (this) FixedArray<T>(move(other)); |
92 | 3.11k | } |
93 | 3.11k | return *this; |
94 | 3.11k | } AK::FixedArray<unsigned char>::operator=(AK::FixedArray<unsigned char>&&) Line | Count | Source | 88 | 3.11k | { | 89 | 3.11k | if (this != &other) { | 90 | 3.11k | this->~FixedArray(); | 91 | 3.11k | new (this) FixedArray<T>(move(other)); | 92 | 3.11k | } | 93 | 3.11k | return *this; | 94 | 3.11k | } |
Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::BlendingInfo>::operator=(AK::FixedArray<Gfx::JPEGXL::BlendingInfo>&&) Unexecuted instantiation: AK::FixedArray<unsigned int>::operator=(AK::FixedArray<unsigned int>&&) Unexecuted instantiation: AK::FixedArray<Gfx::Point<int> >::operator=(AK::FixedArray<Gfx::Point<int> >&&) Unexecuted instantiation: AK::FixedArray<AK::FixedArray<Gfx::JPEGXL::BlendingInfo> >::operator=(AK::FixedArray<AK::FixedArray<Gfx::JPEGXL::BlendingInfo> >&&) Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::Patch>::operator=(AK::FixedArray<Gfx::JPEGXL::Patch>&&) Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::SelfCorrectingData::Predictions>::operator=(AK::FixedArray<Gfx::JPEGXL::SelfCorrectingData::Predictions>&&) Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::HfGlobalPassMetadata>::operator=(AK::FixedArray<Gfx::JPEGXL::HfGlobalPassMetadata>&&) Unexecuted instantiation: AK::FixedArray<int>::operator=(AK::FixedArray<int>&&) |
95 | | |
96 | | ~FixedArray() |
97 | 7.13M | { |
98 | 7.13M | if (!m_elements) |
99 | 5.89M | return; |
100 | 13.1G | for (size_t i = 0; i < m_size; ++i) |
101 | 13.1G | m_elements[i].~T(); |
102 | 1.23M | kfree_sized(m_elements, storage_allocation_size(m_size)); |
103 | 1.23M | m_elements = nullptr; |
104 | 1.23M | } AK::FixedArray<AK::Detail::ByteBuffer<32ul> >::~FixedArray() Line | Count | Source | 97 | 712 | { | 98 | 712 | if (!m_elements) | 99 | 557 | return; | 100 | 9.05k | for (size_t i = 0; i < m_size; ++i) | 101 | 8.90k | m_elements[i].~T(); | 102 | 155 | kfree_sized(m_elements, storage_allocation_size(m_size)); | 103 | 155 | m_elements = nullptr; | 104 | 155 | } |
AK::FixedArray<unsigned char>::~FixedArray() Line | Count | Source | 97 | 96.1k | { | 98 | 96.1k | if (!m_elements) | 99 | 81.9k | return; | 100 | 10.4G | for (size_t i = 0; i < m_size; ++i) | 101 | 10.4G | m_elements[i].~T(); | 102 | 14.1k | kfree_sized(m_elements, storage_allocation_size(m_size)); | 103 | 14.1k | m_elements = nullptr; | 104 | 14.1k | } |
Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::BlendingInfo>::~FixedArray() AK::FixedArray<unsigned int>::~FixedArray() Line | Count | Source | 97 | 1.04M | { | 98 | 1.04M | if (!m_elements) | 99 | 698k | return; | 100 | 961M | for (size_t i = 0; i < m_size; ++i) | 101 | 961M | m_elements[i].~T(); | 102 | 347k | kfree_sized(m_elements, storage_allocation_size(m_size)); | 103 | 347k | m_elements = nullptr; | 104 | 347k | } |
Unexecuted instantiation: AK::FixedArray<Gfx::Point<int> >::~FixedArray() Unexecuted instantiation: AK::FixedArray<AK::FixedArray<Gfx::JPEGXL::BlendingInfo> >::~FixedArray() Unexecuted instantiation: AK::FixedArray<int>::~FixedArray() Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::Patch>::~FixedArray() Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::SelfCorrectingData::Predictions>::~FixedArray() Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::ChannelInfo>::~FixedArray() Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::HfGlobalPassMetadata>::~FixedArray() Unexecuted instantiation: AK::FixedArray<AK::Span<unsigned char const> >::~FixedArray() Unexecuted instantiation: AK::FixedArray<AK::ByteString>::~FixedArray() Unexecuted instantiation: AK::FixedArray<char*>::~FixedArray() AK::FixedArray<unsigned short>::~FixedArray() Line | Count | Source | 97 | 41.4k | { | 98 | 41.4k | if (!m_elements) | 99 | 34.5k | return; | 100 | 320M | for (size_t i = 0; i < m_size; ++i) | 101 | 320M | m_elements[i].~T(); | 102 | 6.91k | kfree_sized(m_elements, storage_allocation_size(m_size)); | 103 | 6.91k | m_elements = nullptr; | 104 | 6.91k | } |
AK::FixedArray<Audio::Sample>::~FixedArray() Line | Count | Source | 97 | 4.20M | { | 98 | 4.20M | if (!m_elements) | 99 | 3.88M | return; | 100 | 1.37G | for (size_t i = 0; i < m_size; ++i) | 101 | 1.37G | m_elements[i].~T(); | 102 | 323k | kfree_sized(m_elements, storage_allocation_size(m_size)); | 103 | 323k | m_elements = nullptr; | 104 | 323k | } |
AK::FixedArray<Audio::QOA::LMSState>::~FixedArray() Line | Count | Source | 97 | 756k | { | 98 | 756k | if (!m_elements) | 99 | 504k | return; | 100 | 523k | for (size_t i = 0; i < m_size; ++i) | 101 | 271k | m_elements[i].~T(); | 102 | 252k | kfree_sized(m_elements, storage_allocation_size(m_size)); | 103 | 252k | m_elements = nullptr; | 104 | 252k | } |
AK::FixedArray<AK::Array<short, 5120ul> >::~FixedArray() Line | Count | Source | 97 | 756k | { | 98 | 756k | if (!m_elements) | 99 | 504k | return; | 100 | 517k | for (size_t i = 0; i < m_size; ++i) | 101 | 265k | m_elements[i].~T(); | 102 | 252k | kfree_sized(m_elements, storage_allocation_size(m_size)); | 103 | 252k | m_elements = nullptr; | 104 | 252k | } |
AK::FixedArray<Audio::MP3::Channel>::~FixedArray() Line | Count | Source | 97 | 150k | { | 98 | 150k | if (!m_elements) | 99 | 120k | return; | 100 | 89.5k | for (size_t i = 0; i < m_size; ++i) | 101 | 59.2k | m_elements[i].~T(); | 102 | 30.2k | kfree_sized(m_elements, storage_allocation_size(m_size)); | 103 | 30.2k | m_elements = nullptr; | 104 | 30.2k | } |
Unexecuted instantiation: AK::FixedArray<AK::FlyString>::~FixedArray() AK::FixedArray<bool>::~FixedArray() Line | Count | Source | 97 | 78.5k | { | 98 | 78.5k | if (!m_elements) | 99 | 66.4k | return; | 100 | 2.21M | for (size_t i = 0; i < m_size; ++i) | 101 | 2.19M | m_elements[i].~T(); | 102 | 12.0k | kfree_sized(m_elements, storage_allocation_size(m_size)); | 103 | 12.0k | m_elements = nullptr; | 104 | 12.0k | } |
Unexecuted instantiation: AK::FixedArray<Gfx::Pixel>::~FixedArray() |
105 | | |
106 | 5.98G | size_t size() const { return m_size; }AK::FixedArray<AK::Detail::ByteBuffer<32ul> >::size() const Line | Count | Source | 106 | 35.2k | size_t size() const { return m_size; } |
AK::FixedArray<unsigned char>::size() const Line | Count | Source | 106 | 5.96G | size_t size() const { return m_size; } |
Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::Patch>::size() const Unexecuted instantiation: AK::FixedArray<AK::FixedArray<Gfx::JPEGXL::BlendingInfo> >::size() const Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::ChannelInfo>::size() const Unexecuted instantiation: AK::FixedArray<int>::size() const Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::HfGlobalPassMetadata>::size() const Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::SelfCorrectingData::Predictions>::size() const AK::FixedArray<unsigned int>::size() const Line | Count | Source | 106 | 21.2k | size_t size() const { return m_size; } |
Unexecuted instantiation: AK::FixedArray<AK::Span<unsigned char const> >::size() const AK::FixedArray<unsigned short>::size() const Line | Count | Source | 106 | 16.9M | size_t size() const { return m_size; } |
AK::FixedArray<Audio::Sample>::size() const Line | Count | Source | 106 | 785k | size_t size() const { return m_size; } |
Unexecuted instantiation: AK::FixedArray<AK::FlyString>::size() const AK::FixedArray<bool>::size() const Line | Count | Source | 106 | 1.18M | size_t size() const { return m_size; } |
|
107 | 0 | bool is_empty() const { return size() == 0; }Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::ChannelInfo>::is_empty() const Unexecuted instantiation: AK::FixedArray<Audio::Sample>::is_empty() const |
108 | 19.2M | T* data() { return m_elements; }AK::FixedArray<unsigned char>::data() Line | Count | Source | 108 | 880k | T* data() { return m_elements; } |
Unexecuted instantiation: AK::FixedArray<int>::data() Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::ChannelInfo>::data() Unexecuted instantiation: AK::FixedArray<char*>::data() AK::FixedArray<unsigned short>::data() Line | Count | Source | 108 | 16.9M | T* data() { return m_elements; } |
AK::FixedArray<Audio::Sample>::data() Line | Count | Source | 108 | 252k | T* data() { return m_elements; } |
Unexecuted instantiation: AK::FixedArray<unsigned int>::data() AK::FixedArray<bool>::data() Line | Count | Source | 108 | 1.18M | T* data() { return m_elements; } |
Unexecuted instantiation: AK::FixedArray<Gfx::Pixel>::data() |
109 | 0 | T const* data() const { return m_elements; } |
110 | | |
111 | | T& at(size_t index) |
112 | 1.48G | { |
113 | 1.48G | VERIFY(index < m_size); |
114 | 1.48G | return m_elements[index]; |
115 | 1.48G | } AK::FixedArray<AK::Detail::ByteBuffer<32ul> >::at(unsigned long) Line | Count | Source | 112 | 1.00k | { | 113 | 1.00k | VERIFY(index < m_size); | 114 | 1.00k | return m_elements[index]; | 115 | 1.00k | } |
AK::FixedArray<unsigned char>::at(unsigned long) Line | Count | Source | 112 | 1.27G | { | 113 | 1.27G | VERIFY(index < m_size); | 114 | 1.27G | return m_elements[index]; | 115 | 1.27G | } |
Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::BlendingInfo>::at(unsigned long) AK::FixedArray<unsigned int>::at(unsigned long) Line | Count | Source | 112 | 54.8M | { | 113 | 54.8M | VERIFY(index < m_size); | 114 | 54.8M | return m_elements[index]; | 115 | 54.8M | } |
Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::Patch>::at(unsigned long) Unexecuted instantiation: AK::FixedArray<Gfx::Point<int> >::at(unsigned long) Unexecuted instantiation: AK::FixedArray<AK::FixedArray<Gfx::JPEGXL::BlendingInfo> >::at(unsigned long) Unexecuted instantiation: AK::FixedArray<int>::at(unsigned long) Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::HfGlobalPassMetadata>::at(unsigned long) Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::SelfCorrectingData::Predictions>::at(unsigned long) Unexecuted instantiation: AK::FixedArray<AK::Span<unsigned char const> >::at(unsigned long) Unexecuted instantiation: AK::FixedArray<AK::ByteString>::at(unsigned long) Unexecuted instantiation: AK::FixedArray<char*>::at(unsigned long) AK::FixedArray<Audio::QOA::LMSState>::at(unsigned long) Line | Count | Source | 112 | 932k | { | 113 | 932k | VERIFY(index < m_size); | 114 | 932k | return m_elements[index]; | 115 | 932k | } |
AK::FixedArray<AK::Array<short, 5120ul> >::at(unsigned long) Line | Count | Source | 112 | 4.86M | { | 113 | 4.86M | VERIFY(index < m_size); | 114 | 4.86M | return m_elements[index]; | 115 | 4.86M | } |
AK::FixedArray<Audio::Sample>::at(unsigned long) Line | Count | Source | 112 | 76.0M | { | 113 | 76.0M | VERIFY(index < m_size); | 114 | 76.0M | return m_elements[index]; | 115 | 76.0M | } |
AK::FixedArray<Audio::MP3::Channel>::at(unsigned long) Line | Count | Source | 112 | 68.6M | { | 113 | 68.6M | VERIFY(index < m_size); | 114 | 68.6M | return m_elements[index]; | 115 | 68.6M | } |
Unexecuted instantiation: AK::FixedArray<AK::FlyString>::at(unsigned long) Unexecuted instantiation: AK::FixedArray<Gfx::Pixel>::at(unsigned long) |
116 | | |
117 | | T& unchecked_at(size_t index) |
118 | | { |
119 | | return m_elements[index]; |
120 | | } |
121 | | |
122 | | T const& at(size_t index) const |
123 | 1.37G | { |
124 | 1.37G | VERIFY(index < m_size); |
125 | 1.37G | return m_elements[index]; |
126 | 1.37G | } AK::FixedArray<unsigned char>::at(unsigned long) const Line | Count | Source | 123 | 1.36G | { | 124 | 1.36G | VERIFY(index < m_size); | 125 | 1.36G | return m_elements[index]; | 126 | 1.36G | } |
Unexecuted instantiation: AK::FixedArray<int>::at(unsigned long) const Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::SelfCorrectingData::Predictions>::at(unsigned long) const AK::FixedArray<Audio::MP3::Channel>::at(unsigned long) const Line | Count | Source | 123 | 224k | { | 124 | 224k | VERIFY(index < m_size); | 125 | 224k | return m_elements[index]; | 126 | 224k | } |
|
127 | | |
128 | | T& operator[](size_t index) |
129 | 1.48G | { |
130 | 1.48G | return at(index); |
131 | 1.48G | } AK::FixedArray<AK::Detail::ByteBuffer<32ul> >::operator[](unsigned long) Line | Count | Source | 129 | 1.00k | { | 130 | 1.00k | return at(index); | 131 | 1.00k | } |
AK::FixedArray<unsigned char>::operator[](unsigned long) Line | Count | Source | 129 | 1.27G | { | 130 | 1.27G | return at(index); | 131 | 1.27G | } |
Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::BlendingInfo>::operator[](unsigned long) AK::FixedArray<unsigned int>::operator[](unsigned long) Line | Count | Source | 129 | 54.8M | { | 130 | 54.8M | return at(index); | 131 | 54.8M | } |
Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::Patch>::operator[](unsigned long) Unexecuted instantiation: AK::FixedArray<Gfx::Point<int> >::operator[](unsigned long) Unexecuted instantiation: AK::FixedArray<AK::FixedArray<Gfx::JPEGXL::BlendingInfo> >::operator[](unsigned long) Unexecuted instantiation: AK::FixedArray<int>::operator[](unsigned long) Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::HfGlobalPassMetadata>::operator[](unsigned long) Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::SelfCorrectingData::Predictions>::operator[](unsigned long) Unexecuted instantiation: AK::FixedArray<AK::Span<unsigned char const> >::operator[](unsigned long) Unexecuted instantiation: AK::FixedArray<AK::ByteString>::operator[](unsigned long) Unexecuted instantiation: AK::FixedArray<char*>::operator[](unsigned long) AK::FixedArray<Audio::QOA::LMSState>::operator[](unsigned long) Line | Count | Source | 129 | 932k | { | 130 | 932k | return at(index); | 131 | 932k | } |
AK::FixedArray<AK::Array<short, 5120ul> >::operator[](unsigned long) Line | Count | Source | 129 | 4.86M | { | 130 | 4.86M | return at(index); | 131 | 4.86M | } |
AK::FixedArray<Audio::Sample>::operator[](unsigned long) Line | Count | Source | 129 | 76.0M | { | 130 | 76.0M | return at(index); | 131 | 76.0M | } |
AK::FixedArray<Audio::MP3::Channel>::operator[](unsigned long) Line | Count | Source | 129 | 68.6M | { | 130 | 68.6M | return at(index); | 131 | 68.6M | } |
Unexecuted instantiation: AK::FixedArray<AK::FlyString>::operator[](unsigned long) Unexecuted instantiation: AK::FixedArray<Gfx::Pixel>::operator[](unsigned long) |
132 | | |
133 | | T const& operator[](size_t index) const |
134 | 1.37G | { |
135 | 1.37G | return at(index); |
136 | 1.37G | } AK::FixedArray<unsigned char>::operator[](unsigned long) const Line | Count | Source | 134 | 1.36G | { | 135 | 1.36G | return at(index); | 136 | 1.36G | } |
Unexecuted instantiation: AK::FixedArray<int>::operator[](unsigned long) const Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::SelfCorrectingData::Predictions>::operator[](unsigned long) const AK::FixedArray<Audio::MP3::Channel>::operator[](unsigned long) const Line | Count | Source | 134 | 224k | { | 135 | 224k | return at(index); | 136 | 224k | } |
|
137 | | |
138 | | bool contains_slow(T const& value) const |
139 | 0 | { |
140 | 0 | if (!m_elements) |
141 | 0 | return false; |
142 | 0 | for (size_t i = 0; i < m_size; ++i) { |
143 | 0 | if (m_elements[i] == value) |
144 | 0 | return true; |
145 | 0 | } |
146 | 0 | return false; |
147 | 0 | } |
148 | | |
149 | | void swap(FixedArray<T>& other) |
150 | 366k | { |
151 | 366k | AK::swap(m_size, other.m_size); |
152 | 366k | AK::swap(m_elements, other.m_elements); |
153 | 366k | } |
154 | | |
155 | | void fill_with(T const& value) |
156 | 256k | { |
157 | 256k | if (!m_elements) |
158 | 0 | return; |
159 | 1.60G | for (size_t i = 0; i < m_size; ++i) |
160 | 1.60G | m_elements[i] = value; |
161 | 256k | } Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::ChannelInfo>::fill_with(Gfx::JPEGXL::ChannelInfo const&) Unexecuted instantiation: AK::FixedArray<unsigned int>::fill_with(unsigned int const&) AK::FixedArray<bool>::fill_with(bool const&) Line | Count | Source | 156 | 153k | { | 157 | 153k | if (!m_elements) | 158 | 0 | return; | 159 | 1.09G | for (size_t i = 0; i < m_size; ++i) | 160 | 1.09G | m_elements[i] = value; | 161 | 153k | } |
AK::FixedArray<unsigned char>::fill_with(unsigned char const&) Line | Count | Source | 156 | 102k | { | 157 | 102k | if (!m_elements) | 158 | 0 | return; | 159 | 500M | for (size_t i = 0; i < m_size; ++i) | 160 | 500M | m_elements[i] = value; | 161 | 102k | } |
|
162 | | |
163 | | using Iterator = SimpleIterator<FixedArray, T>; |
164 | | using ConstIterator = SimpleIterator<FixedArray const, T const>; |
165 | | |
166 | 22.2k | Iterator begin() { return Iterator::begin(*this); }AK::FixedArray<AK::Detail::ByteBuffer<32ul> >::begin() Line | Count | Source | 166 | 2 | Iterator begin() { return Iterator::begin(*this); } |
Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::Patch>::begin() Unexecuted instantiation: AK::FixedArray<AK::FixedArray<Gfx::JPEGXL::BlendingInfo> >::begin() Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::HfGlobalPassMetadata>::begin() Unexecuted instantiation: AK::FixedArray<unsigned char>::begin() AK::FixedArray<unsigned int>::begin() Line | Count | Source | 166 | 21.2k | Iterator begin() { return Iterator::begin(*this); } |
Unexecuted instantiation: AK::FixedArray<AK::Span<unsigned char const> >::begin() AK::FixedArray<Audio::Sample>::begin() Line | Count | Source | 166 | 961 | Iterator begin() { return Iterator::begin(*this); } |
|
167 | | ConstIterator begin() const { return ConstIterator::begin(*this); } |
168 | | |
169 | 22.2k | Iterator end() { return Iterator::end(*this); }AK::FixedArray<AK::Detail::ByteBuffer<32ul> >::end() Line | Count | Source | 169 | 2 | Iterator end() { return Iterator::end(*this); } |
Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::Patch>::end() Unexecuted instantiation: AK::FixedArray<AK::FixedArray<Gfx::JPEGXL::BlendingInfo> >::end() Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::HfGlobalPassMetadata>::end() Unexecuted instantiation: AK::FixedArray<unsigned char>::end() AK::FixedArray<unsigned int>::end() Line | Count | Source | 169 | 21.2k | Iterator end() { return Iterator::end(*this); } |
Unexecuted instantiation: AK::FixedArray<AK::Span<unsigned char const> >::end() AK::FixedArray<Audio::Sample>::end() Line | Count | Source | 169 | 961 | Iterator end() { return Iterator::end(*this); } |
|
170 | | ConstIterator end() const { return ConstIterator::end(*this); } |
171 | | |
172 | 19.2M | Span<T> span() { return { data(), size() }; }AK::FixedArray<unsigned char>::span() Line | Count | Source | 172 | 880k | Span<T> span() { return { data(), size() }; } |
Unexecuted instantiation: AK::FixedArray<int>::span() Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::ChannelInfo>::span() AK::FixedArray<unsigned short>::span() Line | Count | Source | 172 | 16.9M | Span<T> span() { return { data(), size() }; } |
AK::FixedArray<Audio::Sample>::span() Line | Count | Source | 172 | 252k | Span<T> span() { return { data(), size() }; } |
Unexecuted instantiation: AK::FixedArray<unsigned int>::span() AK::FixedArray<bool>::span() Line | Count | Source | 172 | 1.18M | Span<T> span() { return { data(), size() }; } |
|
173 | 0 | ReadonlySpan<T> span() const { return { data(), size() }; } |
174 | | |
175 | 1.66M | operator Span<T>() { return span(); }AK::FixedArray<unsigned char>::operator AK::Span<unsigned char>() Line | Count | Source | 175 | 482k | operator Span<T>() { return span(); } |
Unexecuted instantiation: AK::FixedArray<int>::operator AK::Span<int>() Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::ChannelInfo>::operator AK::Span<Gfx::JPEGXL::ChannelInfo>() Unexecuted instantiation: AK::FixedArray<unsigned int>::operator AK::Span<unsigned int>() AK::FixedArray<bool>::operator AK::Span<bool>() Line | Count | Source | 175 | 1.18M | operator Span<T>() { return span(); } |
|
176 | 0 | operator ReadonlySpan<T>() const { return span(); } |
177 | | |
178 | | private: |
179 | | static size_t storage_allocation_size(size_t size) |
180 | 2.47M | { |
181 | 2.47M | return size * sizeof(T); |
182 | 2.47M | } AK::FixedArray<AK::Detail::ByteBuffer<32ul> >::storage_allocation_size(unsigned long) Line | Count | Source | 180 | 310 | { | 181 | 310 | return size * sizeof(T); | 182 | 310 | } |
AK::FixedArray<unsigned char>::storage_allocation_size(unsigned long) Line | Count | Source | 180 | 28.3k | { | 181 | 28.3k | return size * sizeof(T); | 182 | 28.3k | } |
Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::BlendingInfo>::storage_allocation_size(unsigned long) AK::FixedArray<unsigned int>::storage_allocation_size(unsigned long) Line | Count | Source | 180 | 694k | { | 181 | 694k | return size * sizeof(T); | 182 | 694k | } |
Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::Patch>::storage_allocation_size(unsigned long) Unexecuted instantiation: AK::FixedArray<Gfx::Point<int> >::storage_allocation_size(unsigned long) Unexecuted instantiation: AK::FixedArray<AK::FixedArray<Gfx::JPEGXL::BlendingInfo> >::storage_allocation_size(unsigned long) Unexecuted instantiation: AK::FixedArray<int>::storage_allocation_size(unsigned long) Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::ChannelInfo>::storage_allocation_size(unsigned long) Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::SelfCorrectingData::Predictions>::storage_allocation_size(unsigned long) Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::HfGlobalPassMetadata>::storage_allocation_size(unsigned long) Unexecuted instantiation: AK::FixedArray<AK::Span<unsigned char const> >::storage_allocation_size(unsigned long) Unexecuted instantiation: AK::FixedArray<AK::ByteString>::storage_allocation_size(unsigned long) Unexecuted instantiation: AK::FixedArray<char*>::storage_allocation_size(unsigned long) AK::FixedArray<unsigned short>::storage_allocation_size(unsigned long) Line | Count | Source | 180 | 13.8k | { | 181 | 13.8k | return size * sizeof(T); | 182 | 13.8k | } |
AK::FixedArray<Audio::Sample>::storage_allocation_size(unsigned long) Line | Count | Source | 180 | 646k | { | 181 | 646k | return size * sizeof(T); | 182 | 646k | } |
AK::FixedArray<Audio::QOA::LMSState>::storage_allocation_size(unsigned long) Line | Count | Source | 180 | 504k | { | 181 | 504k | return size * sizeof(T); | 182 | 504k | } |
AK::FixedArray<AK::Array<short, 5120ul> >::storage_allocation_size(unsigned long) Line | Count | Source | 180 | 504k | { | 181 | 504k | return size * sizeof(T); | 182 | 504k | } |
AK::FixedArray<Audio::MP3::Channel>::storage_allocation_size(unsigned long) Line | Count | Source | 180 | 60.5k | { | 181 | 60.5k | return size * sizeof(T); | 182 | 60.5k | } |
Unexecuted instantiation: AK::FixedArray<AK::FlyString>::storage_allocation_size(unsigned long) AK::FixedArray<bool>::storage_allocation_size(unsigned long) Line | Count | Source | 180 | 24.1k | { | 181 | 24.1k | return size * sizeof(T); | 182 | 24.1k | } |
Unexecuted instantiation: AK::FixedArray<Gfx::Pixel>::storage_allocation_size(unsigned long) |
183 | | |
184 | | FixedArray(size_t size, T* elements) |
185 | 1.23M | : m_size(size) |
186 | 1.23M | , m_elements(elements) |
187 | 1.23M | { |
188 | 1.23M | } AK::FixedArray<AK::Detail::ByteBuffer<32ul> >::FixedArray(unsigned long, AK::Detail::ByteBuffer<32ul>*) Line | Count | Source | 185 | 155 | : m_size(size) | 186 | 155 | , m_elements(elements) | 187 | 155 | { | 188 | 155 | } |
AK::FixedArray<unsigned char>::FixedArray(unsigned long, unsigned char*) Line | Count | Source | 185 | 14.1k | : m_size(size) | 186 | 14.1k | , m_elements(elements) | 187 | 14.1k | { | 188 | 14.1k | } |
Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::BlendingInfo>::FixedArray(unsigned long, Gfx::JPEGXL::BlendingInfo*) AK::FixedArray<unsigned int>::FixedArray(unsigned long, unsigned int*) Line | Count | Source | 185 | 347k | : m_size(size) | 186 | 347k | , m_elements(elements) | 187 | 347k | { | 188 | 347k | } |
Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::Patch>::FixedArray(unsigned long, Gfx::JPEGXL::Patch*) Unexecuted instantiation: AK::FixedArray<Gfx::Point<int> >::FixedArray(unsigned long, Gfx::Point<int>*) Unexecuted instantiation: AK::FixedArray<AK::FixedArray<Gfx::JPEGXL::BlendingInfo> >::FixedArray(unsigned long, AK::FixedArray<Gfx::JPEGXL::BlendingInfo>*) Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::ChannelInfo>::FixedArray(unsigned long, Gfx::JPEGXL::ChannelInfo*) Unexecuted instantiation: AK::FixedArray<int>::FixedArray(unsigned long, int*) Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::SelfCorrectingData::Predictions>::FixedArray(unsigned long, Gfx::JPEGXL::SelfCorrectingData::Predictions*) Unexecuted instantiation: AK::FixedArray<Gfx::JPEGXL::HfGlobalPassMetadata>::FixedArray(unsigned long, Gfx::JPEGXL::HfGlobalPassMetadata*) Unexecuted instantiation: AK::FixedArray<AK::Span<unsigned char const> >::FixedArray(unsigned long, AK::Span<unsigned char const>*) Unexecuted instantiation: AK::FixedArray<AK::ByteString>::FixedArray(unsigned long, AK::ByteString*) Unexecuted instantiation: AK::FixedArray<char*>::FixedArray(unsigned long, char**) AK::FixedArray<unsigned short>::FixedArray(unsigned long, unsigned short*) Line | Count | Source | 185 | 6.91k | : m_size(size) | 186 | 6.91k | , m_elements(elements) | 187 | 6.91k | { | 188 | 6.91k | } |
AK::FixedArray<Audio::QOA::LMSState>::FixedArray(unsigned long, Audio::QOA::LMSState*) Line | Count | Source | 185 | 252k | : m_size(size) | 186 | 252k | , m_elements(elements) | 187 | 252k | { | 188 | 252k | } |
AK::FixedArray<AK::Array<short, 5120ul> >::FixedArray(unsigned long, AK::Array<short, 5120ul>*) Line | Count | Source | 185 | 252k | : m_size(size) | 186 | 252k | , m_elements(elements) | 187 | 252k | { | 188 | 252k | } |
AK::FixedArray<Audio::Sample>::FixedArray(unsigned long, Audio::Sample*) Line | Count | Source | 185 | 323k | : m_size(size) | 186 | 323k | , m_elements(elements) | 187 | 323k | { | 188 | 323k | } |
AK::FixedArray<Audio::MP3::Channel>::FixedArray(unsigned long, Audio::MP3::Channel*) Line | Count | Source | 185 | 30.2k | : m_size(size) | 186 | 30.2k | , m_elements(elements) | 187 | 30.2k | { | 188 | 30.2k | } |
Unexecuted instantiation: AK::FixedArray<AK::FlyString>::FixedArray(unsigned long, AK::FlyString*) AK::FixedArray<bool>::FixedArray(unsigned long, bool*) Line | Count | Source | 185 | 12.0k | : m_size(size) | 186 | 12.0k | , m_elements(elements) | 187 | 12.0k | { | 188 | 12.0k | } |
Unexecuted instantiation: AK::FixedArray<Gfx::Pixel>::FixedArray(unsigned long, Gfx::Pixel*) |
189 | | |
190 | | size_t m_size { 0 }; |
191 | | T* m_elements { nullptr }; |
192 | | }; |
193 | | |
194 | | } |
195 | | |
196 | | #if USING_AK_GLOBALLY |
197 | | using AK::FixedArray; |
198 | | #endif |