diff --git a/gfx/thebes/PrintTargetSkPDF.cpp b/gfx/thebes/PrintTargetSkPDF.cpp index 5e68c4f64b16..64c7b3c55684 100644 --- a/gfx/thebes/PrintTargetSkPDF.cpp +++ b/gfx/thebes/PrintTargetSkPDF.cpp @@ -67,7 +67,7 @@ PrintTargetSkPDF::BeginPrinting(const nsAString& aTitle, nsresult PrintTargetSkPDF::BeginPage() { - mPageCanvas = sk_ref_sp(mPDFDoc->beginPage(mSize.width, mSize.height)); + mPageCanvas = mPDFDoc->beginPage(mSize.width, mSize.height); return !mPageCanvas ? NS_ERROR_FAILURE : PrintTarget::BeginPage(); } @@ -113,7 +113,7 @@ PrintTargetSkPDF::MakeDrawTarget(const IntSize& aSize, if (!mPageCanvas) { return nullptr; } - mPageDT = Factory::CreateDrawTargetWithSkCanvas(mPageCanvas.get()); + mPageDT = Factory::CreateDrawTargetWithSkCanvas(mPageCanvas); if (!mPageDT) { mPageCanvas = nullptr; return nullptr; @@ -133,12 +133,12 @@ PrintTargetSkPDF::GetReferenceDrawTarget(DrawEventRecorder* aRecorder) if (!mRefPDFDoc) { return nullptr; } - mRefCanvas = sk_ref_sp(mRefPDFDoc->beginPage(mSize.width, mSize.height)); + mRefCanvas = mRefPDFDoc->beginPage(mSize.width, mSize.height); if (!mRefCanvas) { return nullptr; } RefPtr dt = - Factory::CreateDrawTargetWithSkCanvas(mRefCanvas.get()); + Factory::CreateDrawTargetWithSkCanvas(mRefCanvas); if (!dt) { return nullptr; } diff --git a/gfx/thebes/PrintTargetSkPDF.h b/gfx/thebes/PrintTargetSkPDF.h index 3a742b992d3c..fe5f28b31202 100644 --- a/gfx/thebes/PrintTargetSkPDF.h +++ b/gfx/thebes/PrintTargetSkPDF.h @@ -59,12 +59,14 @@ private: UniquePtr mOStream; // The current page's SkCanvas and its wrapping DrawTarget: - sk_sp mPageCanvas; + // Canvas is owned by mPDFDoc, which handles its deletion. + SkCanvas* mPageCanvas; RefPtr mPageDT; // Members needed to provide a reference DrawTarget: sk_sp mRefPDFDoc; - sk_sp mRefCanvas; + // Canvas owned by mRefPDFDoc, which handles its deletion. + SkCanvas* mRefCanvas; SkDynamicMemoryWStream mRefOStream; };