Coverage Report

Created: 2024-05-20 07:14

/src/skia/tools/UrlDataManager.cpp
Line
Count
Source (jump to first uncovered line)
1
/*
2
 * Copyright 2016 Google Inc.
3
 *
4
 * Use of this source code is governed by a BSD-style license that can be
5
 * found in the LICENSE file.
6
 */
7
8
#include "tools/UrlDataManager.h"
9
10
#include <unordered_map>
11
#include <vector>
12
13
0
bool operator==(const SkData& a, const SkData& b) {
14
0
    return a.equals(&b);
15
0
}
16
17
0
UrlDataManager::UrlDataManager(SkString rootUrl) : fRootUrl(rootUrl), fDataId(0) {}
18
19
0
SkString UrlDataManager::addData(SkData* data, const char* contentType) {
20
0
    UrlData* urlData = fCache.find(*data);
21
0
    if (fCache.find(*data)) {
22
0
        SkASSERT(data->equals(urlData->fData.get()));
23
0
        return urlData->fUrl;
24
0
    }
25
26
0
    urlData = new UrlData;
27
0
    urlData->fData.reset(SkRef(data));
28
0
    urlData->fContentType.set(contentType);
29
0
    urlData->fUrl.appendf("%s/%u", fRootUrl.c_str(), fDataId++);
30
31
0
    fCache.add(urlData);
32
33
0
    SkASSERT(!fUrlLookup.find(urlData->fUrl));
34
0
    fUrlLookup.add(urlData);
35
0
    return urlData->fUrl;
36
0
}
Unexecuted instantiation: UrlDataManager::addData(SkData*, char const*)
Unexecuted instantiation: UrlDataManager::addData(SkData*, char const*)
37
38
0
void UrlDataManager::reset() {
39
0
    fCache.foreach([&](UrlData* urlData) {
40
0
        urlData->unref();
41
0
    });
42
0
    fCache.rewind();
43
0
}
44
45
0
void UrlDataManager::indexImages(const std::vector<sk_sp<SkImage>>& images) {
46
0
    SkASSERT(imageMap.empty());  // this method meant only for initialization once.
47
0
    for (size_t i = 0; i < images.size(); ++i) {
48
0
        imageMap.insert({images[i].get(), i});
49
0
    }
50
0
}
Unexecuted instantiation: UrlDataManager::indexImages(std::__1::vector<sk_sp<SkImage>, std::__1::allocator<sk_sp<SkImage> > > const&)
Unexecuted instantiation: UrlDataManager::indexImages(std::__1::vector<sk_sp<SkImage>, std::__1::allocator<sk_sp<SkImage> > > const&)
51
52
0
int UrlDataManager::lookupImage(const SkImage* im) {
53
0
    auto search = imageMap.find(im);
54
0
    if (search != imageMap.end()) {
55
0
        return search->second;
56
0
    } else {
57
        // -1 signals the pointer to this image wasn't in the original list.
58
        // Maybe it was synthesized after file load? If so, you shouldn't be looking it up here.
59
0
        return -1;
60
0
    }
61
0
}