blob: 4069cc9762e345b8460ced9f1b3f605b9ae99de7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
/*
* Copyright 2010 The Android Open Source Project
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#include "SkPDFCatalog.h"
SkPDFCatalog::SkPDFCatalog() {}
SkPDFCatalog::~SkPDFCatalog() {
fSubstituteMap.foreach(
[](SkPDFObject*, SkPDFObject** v) { (*v)->unref(); });
}
bool SkPDFCatalog::addObject(SkPDFObject* obj) {
if (fObjectNumbers.find(obj)) {
return false;
}
fObjectNumbers.set(obj, fObjectNumbers.count() + 1);
fObjects.push(obj);
return true;
}
int32_t SkPDFCatalog::getObjectNumber(SkPDFObject* obj) const {
int32_t* objectNumberFound = fObjectNumbers.find(obj);
SkASSERT(objectNumberFound);
return *objectNumberFound;
}
void SkPDFCatalog::setSubstitute(SkPDFObject* original,
SkPDFObject* substitute) {
SkASSERT(original != substitute);
SkASSERT(!fSubstituteMap.find(original));
fSubstituteMap.set(original, SkRef(substitute));
}
SkPDFObject* SkPDFCatalog::getSubstituteObject(SkPDFObject* object) const {
SkPDFObject** found = fSubstituteMap.find(object);
return found ? *found : object;
}
|