Coverage Report

Created: 2025-08-29 06:57

/src/qpdf/libqpdf/ResourceFinder.cc
Line
Count
Source (jump to first uncovered line)
1
#include <qpdf/ResourceFinder.hh>
2
3
void
4
ResourceFinder::handleObject(QPDFObjectHandle obj, size_t offset, size_t)
5
0
{
6
0
    if (obj.isOperator() && !last_name.empty()) {
7
0
        static const std::map<std::string, std::string> op_to_rtype{
8
0
            {"CS", "/ColorSpace"},
9
0
            {"cs", "/ColorSpace"},
10
0
            {"gs", "/ExtGState"},
11
0
            {"Tf", "/Font"},
12
0
            {"SCN", "/Pattern"},
13
0
            {"scn", "/Pattern"},
14
0
            {"BDC", "/Properties"},
15
0
            {"DP", "/Properties"},
16
0
            {"sh", "/Shading"},
17
0
            {"Do", "/XObject"},
18
0
        };
19
0
        std::string op = obj.getOperatorValue();
20
0
        auto iter = op_to_rtype.find(op);
21
0
        if (iter == op_to_rtype.end()) {
22
0
            return;
23
0
        }
24
0
        names.insert(last_name);
25
0
        names_by_resource_type[iter->second][last_name].push_back(last_name_offset);
26
0
    } else if (obj.isName()) {
27
0
        last_name = obj.getName();
28
0
        last_name_offset = offset;
29
0
    }
30
0
}
31
32
void
33
ResourceFinder::handleEOF()
34
0
{
35
0
}