Coverage Report

Created: 2025-12-18 07:52

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/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