Coverage Report

Created: 2026-10-28 07:05

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/serenity/Userland/Libraries/LibGfx/ImageFormats/WebPSharedLossless.cpp
Line
Count
Source
1
/*
2
 * Copyright (c) 2024, Nico Weber <thakis@chromium.org>
3
 *
4
 * SPDX-License-Identifier: BSD-2-Clause
5
 */
6
7
#include <LibGfx/ImageFormats/WebPSharedLossless.h>
8
9
namespace Gfx {
10
11
ErrorOr<CanonicalCode> CanonicalCode::from_bytes(ReadonlyBytes bytes)
12
155k
{
13
155k
    auto non_zero_symbol_count = 0;
14
155k
    auto last_non_zero_symbol = -1;
15
37.1M
    for (size_t i = 0; i < bytes.size(); i++) {
16
36.9M
        if (bytes[i] != 0) {
17
265k
            non_zero_symbol_count++;
18
265k
            last_non_zero_symbol = i;
19
265k
        }
20
36.9M
    }
21
22
155k
    if (non_zero_symbol_count == 1)
23
150k
        return CanonicalCode(last_non_zero_symbol);
24
25
5.60k
    return CanonicalCode(TRY(Compress::CanonicalCode::from_bytes(bytes)));
26
5.60k
}
27
28
ErrorOr<u32> CanonicalCode::read_symbol(LittleEndianInputBitStream& bit_stream) const
29
3.99G
{
30
3.99G
    return TRY(m_code.visit(
31
3.99G
        [](u32 single_code) -> ErrorOr<u32> { return single_code; },
32
3.99G
        [&bit_stream](Compress::CanonicalCode const& code) { return code.read_symbol(bit_stream); }));
33
3.99G
}
34
35
}