aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/pdf/SkPDFCanon.cpp
diff options
context:
space:
mode:
authorGravatar Hal Canary <halcanary@google.com>2017-04-17 16:30:06 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-05-04 13:08:29 +0000
commit5c1b360a89f85accd7dc446670f6f062c73e7e77 (patch)
treea15f476b39778027f982d753719487bc4a6d34ca /src/pdf/SkPDFCanon.cpp
parentbc6e5ff7cfbacc28659c0aecbe9f2989cad80336 (diff)
src/pdf: code cleanup
* SkPDFCanon: remove unnecessary abstraction * Make use of SkTHashMap<K, sk_sp<T>>. * Remove unncessary struct constructors. * More factory fns return sk_sp<T> * SkPDFUtility::GetCachedT<T> factored out. Change-Id: I4055a131b43fe2588fd042b769cd09fff8a3466c Reviewed-on: https://skia-review.googlesource.com/13655 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
Diffstat (limited to 'src/pdf/SkPDFCanon.cpp')
-rw-r--r--src/pdf/SkPDFCanon.cpp57
1 files changed, 3 insertions, 54 deletions
diff --git a/src/pdf/SkPDFCanon.cpp b/src/pdf/SkPDFCanon.cpp
index a804d6b47b..5e8a2cb0c2 100644
--- a/src/pdf/SkPDFCanon.cpp
+++ b/src/pdf/SkPDFCanon.cpp
@@ -12,25 +12,8 @@
////////////////////////////////////////////////////////////////////////////////
-namespace {
-template <typename K, typename V> struct UnrefValue {
- void operator()(K, V** v) { SkSafeUnref(*v); }
-};
-}
-
SkPDFCanon::~SkPDFCanon() {
- // TODO(halcanary): make SkTHashSet work nicely with sk_sp<>,
- // or use std::unordered_set<>
fGraphicStateRecords.foreach ([](WrapGS w) { w.fPtr->unref(); });
- fPDFBitmapMap.foreach(UnrefValue<SkBitmapKey, SkPDFObject>());
- fTypefaceMetrics.foreach(UnrefValue<uint32_t, SkAdvancedTypefaceMetrics>());
- fFontDescriptors.foreach(UnrefValue<uint32_t, SkPDFDict>());
- fFontMap.foreach(UnrefValue<uint64_t, SkPDFFont>());
-}
-
-void SkPDFCanon::reset() {
- this->~SkPDFCanon();
- new (this)SkPDFCanon;
}
////////////////////////////////////////////////////////////////////////////////
@@ -52,7 +35,7 @@ sk_sp<SkPDFObject> SkPDFCanon::findFunctionShader(
}
void SkPDFCanon::addFunctionShader(sk_sp<SkPDFObject> pdfShader,
SkPDFShader::State state) {
- fFunctionShaderRecords.emplace_back(std::move(state), std::move(pdfShader));
+ fFunctionShaderRecords.emplace_back(ShaderRec{std::move(state), std::move(pdfShader)});
}
sk_sp<SkPDFObject> SkPDFCanon::findAlphaShader(
@@ -61,7 +44,7 @@ sk_sp<SkPDFObject> SkPDFCanon::findAlphaShader(
}
void SkPDFCanon::addAlphaShader(sk_sp<SkPDFObject> pdfShader,
SkPDFShader::State state) {
- fAlphaShaderRecords.emplace_back(std::move(state), std::move(pdfShader));
+ fAlphaShaderRecords.emplace_back(ShaderRec{std::move(state), std::move(pdfShader)});
}
sk_sp<SkPDFObject> SkPDFCanon::findImageShader(
@@ -71,7 +54,7 @@ sk_sp<SkPDFObject> SkPDFCanon::findImageShader(
void SkPDFCanon::addImageShader(sk_sp<SkPDFObject> pdfShader,
SkPDFShader::State state) {
- fImageShaderRecords.emplace_back(std::move(state), std::move(pdfShader));
+ fImageShaderRecords.emplace_back(ShaderRec{std::move(state), std::move(pdfShader)});
}
////////////////////////////////////////////////////////////////////////////////
@@ -89,37 +72,3 @@ void SkPDFCanon::addGraphicState(const SkPDFGraphicState* state) {
fGraphicStateRecords.add(w);
}
-////////////////////////////////////////////////////////////////////////////////
-
-sk_sp<SkPDFObject> SkPDFCanon::findPDFBitmap(SkBitmapKey key) const {
- SkPDFObject** ptr = fPDFBitmapMap.find(key);
- return ptr ? sk_ref_sp(*ptr) : sk_sp<SkPDFObject>();
-}
-
-void SkPDFCanon::addPDFBitmap(SkBitmapKey key, sk_sp<SkPDFObject> pdfBitmap) {
- fPDFBitmapMap.set(key, pdfBitmap.release());
-}
-
-////////////////////////////////////////////////////////////////////////////////
-
-sk_sp<SkPDFStream> SkPDFCanon::makeInvertFunction() {
- if (fInvertFunction) {
- return fInvertFunction;
- }
- fInvertFunction = SkPDFGraphicState::MakeInvertFunction();
- return fInvertFunction;
-}
-sk_sp<SkPDFDict> SkPDFCanon::makeNoSmaskGraphicState() {
- if (fNoSmaskGraphicState) {
- return fNoSmaskGraphicState;
- }
- fNoSmaskGraphicState = SkPDFGraphicState::MakeNoSmaskGraphicState();
- return fNoSmaskGraphicState;
-}
-sk_sp<SkPDFArray> SkPDFCanon::makeRangeObject() {
- if (fRangeObject) {
- return fRangeObject;
- }
- fRangeObject = SkPDFShader::MakeRangeObject();
- return fRangeObject;
-}