xmloff/source/style/PageMasterExportPropMapper.cxx | 25 +++++++++++---------- 1 file changed, 14 insertions(+), 11 deletions(-)
New commits: commit 08c414f908353c38b93491ee1b6405c6489468d3 Author: Michael Stahl <michael.st...@cib.de> AuthorDate: Thu Jun 4 13:28:33 2020 +0200 Commit: Michael Stahl <michael.st...@cib.de> CommitDate: Thu Jun 4 16:37:52 2020 +0200 xmloff: ODF export: fix crash on tdf125455-2.odt FillBitmapMode is a very funny property that is stored as 2 items XFillBmpTileItem XATTR_FILLBMP_TILE and XFillBmpStretchItem XATTR_FILLBMP_STRETCH and the XPropertySet implementations for it are a bit inconsistent, e.g. sd uses .GetItem<XFillBmpStretchItem> which searches the parent and requires both items to be present, but sw uses GetItemState(XATTR_FILLBMP_STRETCH, false) which does not check the parent and one item is enough. Let's just not export the attribute in case the property isn't defined. (regression from 4d4404b79bf051de79f587bdafd82cc0addfc636) Change-Id: I13c2e91c3e4eb15ebec508f679ba49614f493a11 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95501 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.st...@cib.de> diff --git a/xmloff/source/style/PageMasterExportPropMapper.cxx b/xmloff/source/style/PageMasterExportPropMapper.cxx index f2f08b3a2827..5eb32ead6812 100644 --- a/xmloff/source/style/PageMasterExportPropMapper.cxx +++ b/xmloff/source/style/PageMasterExportPropMapper.cxx @@ -591,19 +591,22 @@ void XMLPageMasterExportPropMapper::ContextFilter( backgroundSize <<= true; break; case drawing::FillStyle_BITMAP: - assert(pFillBitmapMode); - switch (pFillBitmapMode->maValue.get<drawing::BitmapMode>()) + if (pFillBitmapMode) { - case drawing::BitmapMode_REPEAT: - backgroundSize <<= true; - break; - case drawing::BitmapMode_STRETCH: - case drawing::BitmapMode_NO_REPEAT: - backgroundSize <<= false; - break; - default: - assert(false); + switch (pFillBitmapMode->maValue.get<drawing::BitmapMode>()) + { + case drawing::BitmapMode_REPEAT: + backgroundSize <<= true; + break; + case drawing::BitmapMode_STRETCH: + case drawing::BitmapMode_NO_REPEAT: + backgroundSize <<= false; + break; + default: + assert(false); + } } + // else: leave it ambiguous if not explicitly defined break; default: assert(false); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits