Coverage Report

Created: 2026-01-10 07:00

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/qpdf/libqpdf/Pl_Count.cc
Line
Count
Source
1
#include <qpdf/Pl_Count.hh>
2
3
#include <qpdf/QIntC.hh>
4
#include <qpdf/Util.hh>
5
6
using namespace qpdf;
7
8
class Pl_Count::Members
9
{
10
  public:
11
3.52k
    Members() = default;
12
    Members(Members const&) = delete;
13
    ~Members() = default;
14
15
    // Must be qpdf_offset_t, not size_t, to handle writing more than size_t can handle.
16
    qpdf_offset_t count{0};
17
    unsigned char last_char{'\0'};
18
};
19
20
Pl_Count::Pl_Count(char const* identifier, Pipeline* next) :
21
3.52k
    Pipeline(identifier, next),
22
3.52k
    m(std::make_unique<Members>())
23
3.52k
{
24
3.52k
    util::assertion(next, "Attempt to create Pl_Count with nullptr as next");
25
3.52k
}
26
27
3.52k
Pl_Count::~Pl_Count() = default;
28
// Must be explicit and not inline -- see QPDF_DLL_CLASS in README-maintainer
29
30
void
31
Pl_Count::write(unsigned char const* buf, size_t len)
32
9.65k
{
33
9.65k
    if (len) {
34
9.50k
        m->count += QIntC::to_offset(len);
35
9.50k
        m->last_char = buf[len - 1];
36
9.50k
        next()->write(buf, len);
37
9.50k
    }
38
9.65k
}
39
40
void
41
Pl_Count::finish()
42
3.22k
{
43
3.22k
    next()->finish();
44
3.22k
}
45
46
qpdf_offset_t
47
Pl_Count::getCount() const
48
3.22k
{
49
3.22k
    return m->count;
50
3.22k
}
51
52
unsigned char
53
Pl_Count::getLastChar() const
54
0
{
55
0
    return m->last_char;
56
0
}