From 389666bf1fed53a92b8c320157ee5fc0d5173552 Mon Sep 17 00:00:00 2001 From: halcanary Date: Fri, 1 Apr 2016 11:43:39 -0700 Subject: SkPDF: PDFShader does not hold images/bitmaps motivation: measurable memory savings. GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1851123002 Review URL: https://codereview.chromium.org/1851123002 --- src/pdf/SkPDFShader.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/pdf/SkPDFShader.cpp b/src/pdf/SkPDFShader.cpp index 5dd94e2c68..abcae7be12 100644 --- a/src/pdf/SkPDFShader.cpp +++ b/src/pdf/SkPDFShader.cpp @@ -452,7 +452,9 @@ private: //////////////////////////////////////////////////////////////////////////////// SkPDFFunctionShader::SkPDFFunctionShader(SkPDFShader::State* state) - : SkPDFDict("Pattern"), fShaderState(state) {} + : SkPDFDict("Pattern"), fShaderState(state) { + state->fImage.reset(); +} SkPDFFunctionShader::~SkPDFFunctionShader() {} @@ -463,7 +465,9 @@ bool SkPDFFunctionShader::equals(const SkPDFShader::State& state) const { //////////////////////////////////////////////////////////////////////////////// SkPDFAlphaFunctionShader::SkPDFAlphaFunctionShader(SkPDFShader::State* state) - : fShaderState(state) {} + : fShaderState(state) { + state->fImage.reset(); +} bool SkPDFAlphaFunctionShader::equals(const SkPDFShader::State& state) const { return state == *fShaderState; @@ -474,7 +478,9 @@ SkPDFAlphaFunctionShader::~SkPDFAlphaFunctionShader() {} //////////////////////////////////////////////////////////////////////////////// SkPDFImageShader::SkPDFImageShader(SkPDFShader::State* state) - : fShaderState(state) {} + : fShaderState(state) { + state->fImage.reset(); +} bool SkPDFImageShader::equals(const SkPDFShader::State& state) const { return state == *fShaderState; -- cgit v1.2.3