From 2634200a15c42e45edcaaaeac81243c67ded3ad1 Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Mon, 26 Mar 2018 12:14:23 +0100 Subject: forcepoint #32 survive missing emf paths MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: Ic27c3bbac12f66b30ff2f30f558180127cc73a51 Reviewed-on: https://gerrit.libreoffice.org/51873 Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara --- drawinglayer/source/tools/emfphelperdata.cxx | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/drawinglayer/source/tools/emfphelperdata.cxx b/drawinglayer/source/tools/emfphelperdata.cxx index a5dda5d2ad96..09c3a2854aab 100644 --- a/drawinglayer/source/tools/emfphelperdata.cxx +++ b/drawinglayer/source/tools/emfphelperdata.cxx @@ -938,7 +938,11 @@ namespace emfplushelper rMS.ReadUInt32(brushIndexOrColor); SAL_INFO("drawinglayer", "EMF+ FillPath slot: " << index); - EMFPPlusFillPolygon(static_cast(maEMFPObjects[index].get())->GetPolygon(*this), flags & 0x8000, brushIndexOrColor); + EMFPPath* path = static_cast(maEMFPObjects[index].get()); + if (path) + EMFPPlusFillPolygon(path->GetPolygon(*this), flags & 0x8000, brushIndexOrColor); + else + SAL_WARN("drawinglayer", "EmfPlusRecordTypeFillPath missing path"); } break; case EmfPlusRecordTypeFillRegion: @@ -1061,10 +1065,12 @@ namespace emfplushelper rMS.ReadUInt32(penIndex); SAL_INFO("drawinglayer", "EMF+ DrawPath"); SAL_INFO("drawinglayer", "EMF+\tpen: " << penIndex); - EMFPPath* path = static_cast(maEMFPObjects[flags & 0xff].get()); - SAL_WARN_IF(!path, "drawinglayer", "EmfPlusRecordTypeDrawPath missing path"); - EMFPPlusDrawPolygon(path->GetPolygon(*this), penIndex); + EMFPPath* path = static_cast(maEMFPObjects[flags & 0xff].get()); + if (path) + EMFPPlusDrawPolygon(path->GetPolygon(*this), penIndex); + else + SAL_WARN("drawinglayer", "EmfPlusRecordTypeDrawPath missing path"); break; } -- cgit