From 7daa6fb286d1b5d65f99521f3314083e86d93e3f Mon Sep 17 00:00:00 2001 From: thestig Date: Mon, 21 Nov 2016 10:12:19 -0800 Subject: Fix CPDFImage::IsInline(). Commit 137a344a changed its behavior. BUG=chromium:667012 Review-Url: https://codereview.chromium.org/2513273003 --- core/fpdfapi/page/cpdf_image.cpp | 12 +++++------- core/fpdfapi/page/cpdf_image.h | 8 ++++---- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/core/fpdfapi/page/cpdf_image.cpp b/core/fpdfapi/page/cpdf_image.cpp index 8ded34e630..60ac1c9815 100644 --- a/core/fpdfapi/page/cpdf_image.cpp +++ b/core/fpdfapi/page/cpdf_image.cpp @@ -7,12 +7,10 @@ #include "core/fpdfapi/page/cpdf_image.h" #include -#include #include #include #include "core/fpdfapi/cpdf_modulemgr.h" -#include "core/fpdfapi/page/cpdf_docpagedata.h" #include "core/fpdfapi/page/cpdf_page.h" #include "core/fpdfapi/parser/cpdf_array.h" #include "core/fpdfapi/parser/cpdf_boolean.h" @@ -31,7 +29,8 @@ CPDF_Image::CPDF_Image(CPDF_Document* pDoc) : m_pDocument(pDoc) {} CPDF_Image::CPDF_Image(CPDF_Document* pDoc, std::unique_ptr pStream) - : m_pDocument(pDoc), + : m_bIsInline(true), + m_pDocument(pDoc), m_pStream(pStream.get()), m_pOwnedStream(std::move(pStream)) { m_pOwnedDict = @@ -60,16 +59,15 @@ void CPDF_Image::FinishInitialization() { CPDF_Image* CPDF_Image::Clone() { CPDF_Image* pImage = new CPDF_Image(m_pDocument); + pImage->m_bIsInline = m_bIsInline; if (m_pOwnedStream) { - pImage->m_pOwnedStream = - ToStream(std::unique_ptr(m_pOwnedStream->Clone())); + pImage->m_pOwnedStream = ToStream(m_pOwnedStream->Clone()); pImage->m_pStream = pImage->m_pOwnedStream.get(); } else { pImage->m_pStream = m_pStream; } if (m_pOwnedDict) { - pImage->m_pOwnedDict = - ToDictionary(std::unique_ptr(m_pOwnedDict->Clone())); + pImage->m_pOwnedDict = ToDictionary(m_pOwnedDict->Clone()); pImage->m_pDict = pImage->m_pOwnedDict.get(); } else { pImage->m_pDict = m_pDict; diff --git a/core/fpdfapi/page/cpdf_image.h b/core/fpdfapi/page/cpdf_image.h index a9bcef27ad..848b0e4462 100644 --- a/core/fpdfapi/page/cpdf_image.h +++ b/core/fpdfapi/page/cpdf_image.h @@ -7,6 +7,8 @@ #ifndef CORE_FPDFAPI_PAGE_CPDF_IMAGE_H_ #define CORE_FPDFAPI_PAGE_CPDF_IMAGE_H_ +#include + #include "core/fpdfapi/parser/cpdf_stream.h" #include "core/fxcrt/fx_system.h" @@ -14,16 +16,13 @@ #define PDF_IMAGE_LOSSY_COMPRESS 0x0001 #define PDF_IMAGE_LOSSLESS_COMPRESS 0x0002 #define PDF_IMAGE_MASK_LOSSY_COMPRESS 0x0004 -#define PDF_IMAGE_MASK_LOSSLESS_COMPRESS 0x0008 class CFX_DIBSource; class CFX_DIBitmap; -class CPDF_Dictionay; class CPDF_Document; class CPDF_Page; class IFX_Pause; class IFX_SeekableReadStream; -class IFX_SeekableWriteStream; class CPDF_Image { public: @@ -46,7 +45,7 @@ class CPDF_Image { int32_t GetPixelHeight() const { return m_Height; } int32_t GetPixelWidth() const { return m_Width; } - bool IsInline() const { return !!m_pOwnedStream; } + bool IsInline() const { return m_bIsInline; } bool IsMask() const { return m_bIsMask; } bool IsInterpol() const { return m_bInterpolate; } @@ -80,6 +79,7 @@ class CPDF_Image { int32_t m_Height = 0; int32_t m_Width = 0; + bool m_bIsInline = false; bool m_bIsMask = false; bool m_bInterpolate = false; CPDF_Document* const m_pDocument; -- cgit v1.2.3