Coverage Report

Created: 2026-07-25 07:46

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/serenity/AK/DefaultDelete.h
Line
Count
Source
1
/*
2
 * Copyright (c) 2022, the SerenityOS developers.
3
 *
4
 * SPDX-License-Identifier: BSD-2-Clause
5
 */
6
7
#pragma once
8
9
namespace AK {
10
11
template<class T>
12
struct DefaultDelete {
13
    constexpr DefaultDelete() = default;
14
15
    constexpr void operator()(T* t)
16
1.00G
    {
17
1.00G
        delete t;
18
1.00G
    }
Unexecuted instantiation: AK::DefaultDelete<addrinfo>::operator()(addrinfo*)
AK::DefaultDelete<Gfx::PortableImageMapLoadingContext<Gfx::PAM> >::operator()(Gfx::PortableImageMapLoadingContext<Gfx::PAM>*)
Line
Count
Source
16
2.86k
    {
17
2.86k
        delete t;
18
2.86k
    }
AK::DefaultDelete<Gfx::PortableImageMapLoadingContext<Gfx::PBM> >::operator()(Gfx::PortableImageMapLoadingContext<Gfx::PBM>*)
Line
Count
Source
16
1.87k
    {
17
1.87k
        delete t;
18
1.87k
    }
AK::DefaultDelete<Gfx::PortableImageMapLoadingContext<Gfx::PGM> >::operator()(Gfx::PortableImageMapLoadingContext<Gfx::PGM>*)
Line
Count
Source
16
2.03k
    {
17
2.03k
        delete t;
18
2.03k
    }
AK::DefaultDelete<Gfx::PortableImageMapLoadingContext<Gfx::PPM> >::operator()(Gfx::PortableImageMapLoadingContext<Gfx::PPM>*)
Line
Count
Source
16
2.11k
    {
17
2.11k
        delete t;
18
2.11k
    }
Unexecuted instantiation: AK::DefaultDelete<Gfx::ImageDecoderPlugin>::operator()(Gfx::ImageDecoderPlugin*)
AK::DefaultDelete<Gfx::BMPLoadingContext>::operator()(Gfx::BMPLoadingContext*)
Line
Count
Source
16
4.80k
    {
17
4.80k
        delete t;
18
4.80k
    }
Unexecuted instantiation: AK::DefaultDelete<Gfx::DDSLoadingContext>::operator()(Gfx::DDSLoadingContext*)
Unexecuted instantiation: AK::DefaultDelete<Gfx::DICOMLoadingContext>::operator()(Gfx::DICOMLoadingContext*)
AK::DefaultDelete<Gfx::GIFLoadingContext>::operator()(Gfx::GIFLoadingContext*)
Line
Count
Source
16
1.26k
    {
17
1.26k
        delete t;
18
1.26k
    }
Unexecuted instantiation: AK::DefaultDelete<Gfx::ICOLoadingContext>::operator()(Gfx::ICOLoadingContext*)
AK::DefaultDelete<Gfx::JBIG2LoadingContext>::operator()(Gfx::JBIG2LoadingContext*)
Line
Count
Source
16
540
    {
17
540
        delete t;
18
540
    }
AK::DefaultDelete<Gfx::JPEG2000::ProgressionIterator>::operator()(Gfx::JPEG2000::ProgressionIterator*)
Line
Count
Source
16
5.87M
    {
17
5.87M
        delete t;
18
5.87M
    }
AK::DefaultDelete<Gfx::JPEG2000LoadingContext>::operator()(Gfx::JPEG2000LoadingContext*)
Line
Count
Source
16
5.64k
    {
17
5.64k
        delete t;
18
5.64k
    }
AK::DefaultDelete<Gfx::JPEG2000::TagTreeNode>::operator()(Gfx::JPEG2000::TagTreeNode*)
Line
Count
Source
16
415M
    {
17
415M
        delete t;
18
415M
    }
AK::DefaultDelete<Gfx::ExifMetadata>::operator()(Gfx::ExifMetadata*)
Line
Count
Source
16
32.4k
    {
17
32.4k
        delete t;
18
32.4k
    }
Unexecuted instantiation: AK::DefaultDelete<Gfx::JPEGXL::LoadingContext>::operator()(Gfx::JPEGXL::LoadingContext*)
Unexecuted instantiation: AK::DefaultDelete<Gfx::PNGLoadingContext>::operator()(Gfx::PNGLoadingContext*)
Unexecuted instantiation: AK::DefaultDelete<Gfx::QOILoadingContext>::operator()(Gfx::QOILoadingContext*)
Unexecuted instantiation: AK::DefaultDelete<AK::Stream>::operator()(AK::Stream*)
AK::DefaultDelete<TGAImageIdentifier>::operator()(TGAImageIdentifier*)
Line
Count
Source
16
638
    {
17
638
        delete t;
18
638
    }
AK::DefaultDelete<Gfx::TIFF::TIFFLoadingContext>::operator()(Gfx::TIFF::TIFFLoadingContext*)
Line
Count
Source
16
59.4k
    {
17
59.4k
        delete t;
18
59.4k
    }
AK::DefaultDelete<Gfx::WebPLoadingContext>::operator()(Gfx::WebPLoadingContext*)
Line
Count
Source
16
5.64k
    {
17
5.64k
        delete t;
18
5.64k
    }
Unexecuted instantiation: AK::DefaultDelete<Gfx::FontDatabase::Private>::operator()(Gfx::FontDatabase::Private*)
AK::DefaultDelete<OpenType::CharCodeToGlyphIndex>::operator()(OpenType::CharCodeToGlyphIndex*)
Line
Count
Source
16
7.50k
    {
17
7.50k
        delete t;
18
7.50k
    }
AK::DefaultDelete<OpenType::Font::GlyphPage>::operator()(OpenType::Font::GlyphPage*)
Line
Count
Source
16
144
    {
17
144
        delete t;
18
144
    }
Unexecuted instantiation: AK::DefaultDelete<Core::ResourceImplementation>::operator()(Core::ResourceImplementation*)
Unexecuted instantiation: AK::DefaultDelete<AK::Vector<Core::EventLoop&, 0ul> >::operator()(AK::Vector<Core::EventLoop&, 0ul>*)
Unexecuted instantiation: EventLoopImplementationUnix.cpp:AK::DefaultDelete<Core::(anonymous namespace)::ThreadData>::operator()(Core::(anonymous namespace)::ThreadData*)
Unexecuted instantiation: AK::DefaultDelete<Core::ThreadEventQueue::Private>::operator()(Core::ThreadEventQueue::Private*)
Unexecuted instantiation: AK::DefaultDelete<Core::Event>::operator()(Core::Event*)
AK::DefaultDelete<XML::Node>::operator()(XML::Node*)
Line
Count
Source
16
11.7k
    {
17
11.7k
        delete t;
18
11.7k
    }
AK::DefaultDelete<IMAP::BodyExtension>::operator()(IMAP::BodyExtension*)
Line
Count
Source
16
32.8M
    {
17
32.8M
        delete t;
18
32.8M
    }
AK::DefaultDelete<IMAP::BodyStructure>::operator()(IMAP::BodyStructure*)
Line
Count
Source
16
62.5k
    {
17
62.5k
        delete t;
18
62.5k
    }
Unexecuted instantiation: AK::DefaultDelete<IMAP::SearchKey>::operator()(IMAP::SearchKey*)
AK::DefaultDelete<JS::VM::CustomData>::operator()(JS::VM::CustomData*)
Line
Count
Source
16
165
    {
17
165
        delete t;
18
165
    }
AK::DefaultDelete<JS::IndexedPropertyStorage>::operator()(JS::IndexedPropertyStorage*)
Line
Count
Source
16
13.7k
    {
17
13.7k
        delete t;
18
13.7k
    }
AK::DefaultDelete<JS::Realm::HostDefined>::operator()(JS::Realm::HostDefined*)
Line
Count
Source
16
55
    {
17
55
        delete t;
18
55
    }
AK::DefaultDelete<regex::Matcher<regex::ECMA262Parser> >::operator()(regex::Matcher<regex::ECMA262Parser>*)
Line
Count
Source
16
15.0k
    {
17
15.0k
        delete t;
18
15.0k
    }
Unexecuted instantiation: AK::DefaultDelete<JS::ExecutionContext>::operator()(JS::ExecutionContext*)
Unexecuted instantiation: AK::DefaultDelete<JS::JobCallback::CustomData>::operator()(JS::JobCallback::CustomData*)
Unexecuted instantiation: AK::DefaultDelete<Locale::Segmenter>::operator()(Locale::Segmenter*)
AK::DefaultDelete<AK::Vector<JS::PrivateElement, 0ul> >::operator()(AK::Vector<JS::PrivateElement, 0ul>*)
Line
Count
Source
16
13.7k
    {
17
13.7k
        delete t;
18
13.7k
    }
AK::DefaultDelete<AK::HashMap<JS::StringOrSymbol, JS::PropertyMetadata, AK::Traits<JS::StringOrSymbol>, AK::Traits<JS::PropertyMetadata>, true> >::operator()(AK::HashMap<JS::StringOrSymbol, JS::PropertyMetadata, AK::Traits<JS::StringOrSymbol>, AK::Traits<JS::PropertyMetadata>, true>*)
Line
Count
Source
16
36.2k
    {
17
36.2k
        delete t;
18
36.2k
    }
AK::DefaultDelete<AK::HashMap<JS::TransitionKey, AK::WeakPtr<JS::Shape>, AK::Traits<JS::TransitionKey>, AK::Traits<AK::WeakPtr<JS::Shape> >, false> >::operator()(AK::HashMap<JS::TransitionKey, AK::WeakPtr<JS::Shape>, AK::Traits<JS::TransitionKey>, AK::Traits<AK::WeakPtr<JS::Shape> >, false>*)
Line
Count
Source
16
34.3k
    {
17
34.3k
        delete t;
18
34.3k
    }
AK::DefaultDelete<AK::HashMap<JS::GCPtr<JS::Object>, AK::WeakPtr<JS::Shape>, AK::Traits<JS::GCPtr<JS::Object> >, AK::Traits<AK::WeakPtr<JS::Shape> >, false> >::operator()(AK::HashMap<JS::GCPtr<JS::Object>, AK::WeakPtr<JS::Shape>, AK::Traits<JS::GCPtr<JS::Object> >, AK::Traits<AK::WeakPtr<JS::Shape> >, false>*)
Line
Count
Source
16
19.0k
    {
17
19.0k
        delete t;
18
19.0k
    }
AK::DefaultDelete<AK::HashMap<JS::StringOrSymbol, AK::WeakPtr<JS::Shape>, AK::Traits<JS::StringOrSymbol>, AK::Traits<AK::WeakPtr<JS::Shape> >, false> >::operator()(AK::HashMap<JS::StringOrSymbol, AK::WeakPtr<JS::Shape>, AK::Traits<JS::StringOrSymbol>, AK::Traits<AK::WeakPtr<JS::Shape> >, false>*)
Line
Count
Source
16
18.9k
    {
17
18.9k
        delete t;
18
18.9k
    }
AK::DefaultDelete<JS::Bytecode::Interpreter>::operator()(JS::Bytecode::Interpreter*)
Line
Count
Source
16
110
    {
17
110
        delete t;
18
110
    }
AK::DefaultDelete<regex::Matcher<regex::PosixBasicParser> >::operator()(regex::Matcher<regex::PosixBasicParser>*)
Line
Count
Source
16
8.59k
    {
17
8.59k
        delete t;
18
8.59k
    }
AK::DefaultDelete<regex::Matcher<regex::PosixExtendedParser> >::operator()(regex::Matcher<regex::PosixExtendedParser>*)
Line
Count
Source
16
1.01k
    {
17
1.01k
        delete t;
18
1.01k
    }
AK::DefaultDelete<regex::OpCode>::operator()(regex::OpCode*)
Line
Count
Source
16
132
    {
17
132
        delete t;
18
132
    }
RegexOptimizer.cpp:AK::DefaultDelete<AK::Detail::Trie<void, AK::Trie<AK::DisjointSpans<unsigned long const, AK::Vector<AK::Span<unsigned long const>, 0ul> >, AK::Vector<regex::Optimizer::append_alternation(regex::ByteCode&, AK::Span<regex::ByteCode>)::QualifiedIP, 0ul>, AK::Traits<AK::DisjointSpans<unsigned long const, AK::Vector<AK::Span<unsigned long const>, 0ul> > >, void, regex::OrderedHashMapForTrie>, AK::DisjointSpans<unsigned long const, AK::Vector<AK::Span<unsigned long const>, 0ul> >, AK::Vector<regex::Optimizer::append_alternation(regex::ByteCode&, AK::Span<regex::ByteCode>)::QualifiedIP, 0ul>, AK::Traits<AK::DisjointSpans<unsigned long const, AK::Vector<AK::Span<unsigned long const>, 0ul> > >, regex::OrderedHashMapForTrie> >::operator()(AK::Detail::Trie<void, AK::Trie<AK::DisjointSpans<unsigned long const, AK::Vector<AK::Span<unsigned long const>, 0ul> >, AK::Vector<regex::Optimizer::append_alternation(regex::ByteCode&, AK::Span<regex::ByteCode>)::QualifiedIP, 0ul>, AK::Traits<AK::DisjointSpans<unsigned long const, AK::Vector<AK::Span<unsigned long const>, 0ul> > >, void, regex::OrderedHashMapForTrie>, AK::DisjointSpans<unsigned long const, AK::Vector<AK::Span<unsigned long const>, 0ul> >, AK::Vector<regex::Optimizer::append_alternation(regex::ByteCode&, AK::Span<regex::ByteCode>)::QualifiedIP, 0ul>, AK::Traits<AK::DisjointSpans<unsigned long const, AK::Vector<AK::Span<unsigned long const>, 0ul> > >, regex::OrderedHashMapForTrie>*)
Line
Count
Source
16
18.9M
    {
17
18.9M
        delete t;
18
18.9M
    }
AK::DefaultDelete<Compress::GzipDecompressor::Member>::operator()(Compress::GzipDecompressor::Member*)
Line
Count
Source
16
9.14k
    {
17
9.14k
        delete t;
18
9.14k
    }
AK::DefaultDelete<AK::Function<bool ()> >::operator()(AK::Function<bool ()>*)
Line
Count
Source
16
141M
    {
17
141M
        delete t;
18
141M
    }
Unexecuted instantiation: AK::DefaultDelete<Shell::AST::Command>::operator()(Shell::AST::Command*)
AK::DefaultDelete<Shell::Parser::ScopedOffset>::operator()(Shell::Parser::ScopedOffset*)
Line
Count
Source
16
48.2M
    {
17
48.2M
        delete t;
18
48.2M
    }
Unexecuted instantiation: AK::DefaultDelete<Line::SuggestionDisplay>::operator()(Line::SuggestionDisplay*)
Unexecuted instantiation: AK::DefaultDelete<AK::InputBufferedSeekable<Core::File> >::operator()(AK::InputBufferedSeekable<Core::File>*)
Unexecuted instantiation: AK::DefaultDelete<Web::CSS::MediaCondition>::operator()(Web::CSS::MediaCondition*)
Unexecuted instantiation: AK::DefaultDelete<Protocol::Request::InternalBufferedData>::operator()(Protocol::Request::InternalBufferedData*)
Unexecuted instantiation: AK::DefaultDelete<Protocol::Request::InternalStreamData>::operator()(Protocol::Request::InternalStreamData*)
Unexecuted instantiation: AK::DefaultDelete<Web::CSS::Supports::Condition>::operator()(Web::CSS::Supports::Condition*)
Unexecuted instantiation: AK::DefaultDelete<Web::CSS::CalculationNode>::operator()(Web::CSS::CalculationNode*)
Unexecuted instantiation: AK::DefaultDelete<Web::CSS::StyleComputer::RuleCache>::operator()(Web::CSS::StyleComputer::RuleCache*)
Unexecuted instantiation: AK::DefaultDelete<Web::HTML::HTMLToken::DoctypeData>::operator()(Web::HTML::HTMLToken::DoctypeData*)
Unexecuted instantiation: AK::DefaultDelete<AK::Vector<Web::HTML::HTMLToken::Attribute, 0ul> >::operator()(AK::Vector<Web::HTML::HTMLToken::Attribute, 0ul>*)
Unexecuted instantiation: AK::DefaultDelete<Web::CSS::StyleComputer>::operator()(Web::CSS::StyleComputer*)
Unexecuted instantiation: AK::DefaultDelete<AK::Array<Web::DOM::Element::PseudoElement, 16ul> >::operator()(AK::Array<Web::DOM::Element::PseudoElement, 16ul>*)
Unexecuted instantiation: AK::DefaultDelete<AK::Vector<AK::Variant<Web::DOM::CustomElementUpgradeReaction, Web::DOM::CustomElementCallbackReaction>, 0ul> >::operator()(AK::Vector<AK::Variant<Web::DOM::CustomElementUpgradeReaction, Web::DOM::CustomElementCallbackReaction>, 0ul>*)
Unexecuted instantiation: AK::DefaultDelete<AK::Vector<Web::IntersectionObserver::IntersectionObserverRegistration, 0ul> >::operator()(AK::Vector<Web::IntersectionObserver::IntersectionObserverRegistration, 0ul>*)
Unexecuted instantiation: AK::DefaultDelete<Web::CSS::CountersSet>::operator()(Web::CSS::CountersSet*)
Unexecuted instantiation: AK::DefaultDelete<Web::DOM::EventTarget::Data>::operator()(Web::DOM::EventTarget::Data*)
Unexecuted instantiation: AK::DefaultDelete<AK::HashMap<AK::FlyString, JS::NonnullGCPtr<Web::DOM::Element>, AK::Traits<AK::FlyString>, AK::Traits<JS::NonnullGCPtr<Web::DOM::Element> >, true> >::operator()(AK::HashMap<AK::FlyString, JS::NonnullGCPtr<Web::DOM::Element>, AK::Traits<AK::FlyString>, AK::Traits<JS::NonnullGCPtr<Web::DOM::Element> >, true>*)
Unexecuted instantiation: AK::DefaultDelete<AK::Vector<JS::NonnullGCPtr<Web::DOM::RegisteredObserver>, 0ul> >::operator()(AK::Vector<JS::NonnullGCPtr<Web::DOM::RegisteredObserver>, 0ul>*)
Unexecuted instantiation: AK::DefaultDelete<Gfx::Painter>::operator()(Gfx::Painter*)
AK::DefaultDelete<Markdown::Document>::operator()(Markdown::Document*)
Line
Count
Source
16
6.35k
    {
17
6.35k
        delete t;
18
6.35k
    }
AK::DefaultDelete<Markdown::ContainerBlock>::operator()(Markdown::ContainerBlock*)
Line
Count
Source
16
19.2M
    {
17
19.2M
        delete t;
18
19.2M
    }
Unexecuted instantiation: AK::DefaultDelete<Core::LocalSocket>::operator()(Core::LocalSocket*)
Unexecuted instantiation: AK::DefaultDelete<Web::Layout::FormattingContext>::operator()(Web::Layout::FormattingContext*)
Unexecuted instantiation: AK::DefaultDelete<Web::Painting::StackingContext>::operator()(Web::Painting::StackingContext*)
Unexecuted instantiation: AK::DefaultDelete<Web::WebGL::OpenGLContext>::operator()(Web::WebGL::OpenGLContext*)
Unexecuted instantiation: AK::DefaultDelete<IPC::MessageBuffer>::operator()(IPC::MessageBuffer*)
AK::DefaultDelete<Markdown::Text::Node>::operator()(Markdown::Text::Node*)
Line
Count
Source
16
190M
    {
17
190M
        delete t;
18
190M
    }
AK::DefaultDelete<Markdown::Heading>::operator()(Markdown::Heading*)
Line
Count
Source
16
20.6M
    {
17
20.6M
        delete t;
18
20.6M
    }
AK::DefaultDelete<Markdown::Table>::operator()(Markdown::Table*)
Line
Count
Source
16
20.1M
    {
17
20.1M
        delete t;
18
20.1M
    }
AK::DefaultDelete<Markdown::HorizontalRule>::operator()(Markdown::HorizontalRule*)
Line
Count
Source
16
20.1M
    {
17
20.1M
        delete t;
18
20.1M
    }
AK::DefaultDelete<Markdown::List>::operator()(Markdown::List*)
Line
Count
Source
16
20.1M
    {
17
20.1M
        delete t;
18
20.1M
    }
AK::DefaultDelete<Markdown::CodeBlock>::operator()(Markdown::CodeBlock*)
Line
Count
Source
16
20.0M
    {
17
20.0M
        delete t;
18
20.0M
    }
AK::DefaultDelete<Markdown::CommentBlock>::operator()(Markdown::CommentBlock*)
Line
Count
Source
16
16.6M
    {
17
16.6M
        delete t;
18
16.6M
    }
AK::DefaultDelete<Markdown::BlockQuote>::operator()(Markdown::BlockQuote*)
Line
Count
Source
16
16.6M
    {
17
16.6M
        delete t;
18
16.6M
    }
Unexecuted instantiation: AK::DefaultDelete<Media::PlaybackManager::PlaybackStateHandler>::operator()(Media::PlaybackManager::PlaybackStateHandler*)
Unexecuted instantiation: AK::DefaultDelete<Media::VideoFrame>::operator()(Media::VideoFrame*)
Unexecuted instantiation: AK::DefaultDelete<Media::VideoDecoder>::operator()(Media::VideoDecoder*)
AK::DefaultDelete<Media::Video::VP9::ProbabilityTables>::operator()(Media::Video::VP9::ProbabilityTables*)
Line
Count
Source
16
1.56k
    {
17
1.56k
        delete t;
18
1.56k
    }
Unexecuted instantiation: AK::DefaultDelete<IPC::Message>::operator()(IPC::Message*)
Unexecuted instantiation: AK::DefaultDelete<SQL::TreeNode>::operator()(SQL::TreeNode*)
19
};
20
21
template<class T>
22
struct DefaultDelete<T[]> {
23
    constexpr DefaultDelete() = default;
24
25
    constexpr void operator()(T* t)
26
    {
27
        delete[] t;
28
    }
29
};
30
31
}
32
33
#ifdef USING_AK_GLOBALLY
34
using AK::DefaultDelete;
35
#endif