Make m_pShadingObj a CPDF_Stream instead of CPDF_Object.
authorDan Sinclair <dsinclair@chromium.org>
Mon, 26 Oct 2015 20:14:23 +0000 (16:14 -0400)
committerDan Sinclair <dsinclair@chromium.org>
Mon, 26 Oct 2015 20:14:23 +0000 (16:14 -0400)
commit85361b227ad6786d2aeef8409b79a8d077a26ee9
treefe1ecb088ee13e6a8104183d4777d8fd3e216771
parent6ee3484bcb413f4cce303e237fe15e2bdaf51ade
Make m_pShadingObj a CPDF_Stream instead of CPDF_Object.

This object is required to be a stream and was being converted as such. With
the new type checking this caused us to pass a nullptr where previously we'd
have, incorrectly, cast a CPDF_Dictionary to a CPDF_Stream.

This CL changes the m_pShadingObj to always be a CPDF_Stream. Then, we never
go down the bad code path because we check if m_pShadingObj is nullptr earlier
and bail out.

BUG=chromium:547706
R=tsepez@chromium.org

Review URL: https://codereview.chromium.org/1426713002 .
BUILD.gn
core/include/fpdfapi/fpdf_resource.h
core/src/fpdfapi/fpdf_page/fpdf_page_parser.cpp
core/src/fpdfapi/fpdf_page/fpdf_page_pattern.cpp
core/src/fpdfapi/fpdf_render/fpdf_render_pattern.cpp
core/src/fpdfapi/fpdf_render/fpdf_render_pattern_embeddertest.cpp [new file with mode: 0644]
pdfium.gyp
testing/resources/bug_547706.in [new file with mode: 0644]
testing/resources/bug_547706.pdf [new file with mode: 0644]