aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/pdf/SkPDFShader.cpp
diff options
context:
space:
mode:
authorGravatar mtklein <mtklein@chromium.org>2015-09-09 06:48:29 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-09-09 06:48:29 -0700
commita1254acdb344174e761f5061c820559dab64a74c (patch)
treee7337fb34009c082ae4887e0eb91e5027e100ba4 /src/pdf/SkPDFShader.cpp
parenta5783aeff042ccaf517e50dee3660a4925f5f694 (diff)
Port uses of SkLazyPtr to SkOncePtr.
This gives SkOncePtr a non-trivial destructor that uses std::default_delete by default. This is overrideable, as seen in SkColorTable. SK_DECLARE_STATIC_ONCE_PTR still just leaves its pointers hanging at EOP. BUG=skia: No public API changes. TBR=reed@google.com Review URL: https://codereview.chromium.org/1322933005
Diffstat (limited to 'src/pdf/SkPDFShader.cpp')
-rw-r--r--src/pdf/SkPDFShader.cpp13
1 files changed, 4 insertions, 9 deletions
diff --git a/src/pdf/SkPDFShader.cpp b/src/pdf/SkPDFShader.cpp
index 645091dad2..fe6e47c1db 100644
--- a/src/pdf/SkPDFShader.cpp
+++ b/src/pdf/SkPDFShader.cpp
@@ -10,6 +10,7 @@
#include "SkPDFShader.h"
#include "SkData.h"
+#include "SkOncePtr.h"
#include "SkPDFCanon.h"
#include "SkPDFDevice.h"
#include "SkPDFFormXObject.h"
@@ -677,8 +678,7 @@ static bool split_perspective(const SkMatrix in, SkMatrix* affine,
return true;
}
-namespace {
-SkPDFObject* create_range_object() {
+static SkPDFObject* create_range_object() {
SkPDFArray* range = new SkPDFArray;
range->reserve(6);
range->appendInt(0);
@@ -689,12 +689,7 @@ SkPDFObject* create_range_object() {
range->appendInt(1);
return range;
}
-
-template <typename T> void unref(T* ptr) { ptr->unref();}
-} // namespace
-
-SK_DECLARE_STATIC_LAZY_PTR(SkPDFObject, rangeObject,
- create_range_object, unref<SkPDFObject>);
+SK_DECLARE_STATIC_ONCE_PTR(SkPDFObject, rangeObject);
static SkPDFStream* make_ps_function(const SkString& psCode,
SkPDFArray* domain) {
@@ -703,7 +698,7 @@ static SkPDFStream* make_ps_function(const SkString& psCode,
SkPDFStream* result = new SkPDFStream(funcData.get());
result->insertInt("FunctionType", 4);
result->insertObject("Domain", SkRef(domain));
- result->insertObject("Range", SkRef(rangeObject.get()));
+ result->insertObject("Range", SkRef(rangeObject.get(create_range_object)));
return result;
}