aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/pdf/SkPDFBitmap.cpp
diff options
context:
space:
mode:
authorGravatar halcanary <halcanary@google.com>2015-02-27 12:41:03 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2015-02-27 12:41:03 -0800
commit2e3f9d8a9309686eeb4c76ccfde5800da87a68b3 (patch)
treed4a9837f39b384086705102850610a515e2c5e74 /src/pdf/SkPDFBitmap.cpp
parent4f569beac777afde2f2dd9079a52535f8e7519b3 (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.cpp9
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;
}