diff options
author | 2015-02-27 12:41:03 -0800 | |
---|---|---|
committer | 2015-02-27 12:41:03 -0800 | |
commit | 2e3f9d8a9309686eeb4c76ccfde5800da87a68b3 (patch) | |
tree | d4a9837f39b384086705102850610a515e2c5e74 /src/pdf/SkPDFBitmap.cpp | |
parent | 4f569beac777afde2f2dd9079a52535f8e7519b3 (diff) |
PDF: Canon now owns a reference to all interned objects
Add SkPDFCanon::reset function to unref all objects.
No longer possible to remove object from canon
Motivation: this doesn't change these object's lifetime, (they will
still be fully unrefed when SkDocument::close() is called, but we no
longer have to remove them from the array when their destructor is
called.
Review URL: https://codereview.chromium.org/966863002
Diffstat (limited to 'src/pdf/SkPDFBitmap.cpp')
-rw-r--r-- | src/pdf/SkPDFBitmap.cpp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/pdf/SkPDFBitmap.cpp b/src/pdf/SkPDFBitmap.cpp index 03230341a4..5774360a7c 100644 --- a/src/pdf/SkPDFBitmap.cpp +++ b/src/pdf/SkPDFBitmap.cpp @@ -247,12 +247,11 @@ void SkPDFBitmap::emitDict(SkWStream* stream, pdfDict.emitObject(stream, catalog); } -SkPDFBitmap::SkPDFBitmap(SkPDFCanon* canon, - const SkBitmap& bm, +SkPDFBitmap::SkPDFBitmap(const SkBitmap& bm, SkPDFObject* smask) - : fCanon(canon), fBitmap(bm), fSMask(smask) {} + : fBitmap(bm), fSMask(smask) {} -SkPDFBitmap::~SkPDFBitmap() { fCanon->removeBitmap(this); } +SkPDFBitmap::~SkPDFBitmap() {} //////////////////////////////////////////////////////////////////////////////// static bool is_transparent(const SkBitmap& bm) { @@ -312,7 +311,7 @@ SkPDFBitmap* SkPDFBitmap::Create(SkPDFCanon* canon, // are refed by the SkPDFBitmap). smask = SkNEW_ARGS(PDFAlphaBitmap, (bm)); } - pdfBitmap = SkNEW_ARGS(SkPDFBitmap, (canon, bm, smask)); + pdfBitmap = SkNEW_ARGS(SkPDFBitmap, (bm, smask)); canon->addBitmap(pdfBitmap); return pdfBitmap; } |