diff options
author | Tamás Zolnai <tamas.zolnai@collabora.com> | 2017-09-03 14:56:48 +0200 |
---|---|---|
committer | Tamás Zolnai <tamas.zolnai@collabora.com> | 2017-09-03 19:44:40 +0200 |
commit | 242688f3b4fc7228637837e0f4fec3da71ac2710 (patch) | |
tree | d02071ce41f249632638581a7f50046a0bb9b020 | |
parent | bc87d93787a5249759640a7af70846292758cd24 (diff) |
tdf#112169: Crash while saving character background color to DOCX
Change-Id: Iff12b9587b639166caef86f895fb841e83596817
Reviewed-on: https://gerrit.libreoffice.org/41857
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com>
-rwxr-xr-x | sw/qa/extras/ooxmlexport/data/tdf112169.odt | bin | 0 -> 23366 bytes | |||
-rw-r--r-- | sw/qa/extras/ooxmlexport/ooxmlexport9.cxx | 5 | ||||
-rw-r--r-- | sw/source/filter/ww8/ww8atr.cxx | 4 |
3 files changed, 8 insertions, 1 deletions
diff --git a/sw/qa/extras/ooxmlexport/data/tdf112169.odt b/sw/qa/extras/ooxmlexport/data/tdf112169.odt Binary files differnew file mode 100755 index 000000000000..51bb97f2e1e8 --- /dev/null +++ b/sw/qa/extras/ooxmlexport/data/tdf112169.odt diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport9.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport9.cxx index 3867f468649b..e2647a821854 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport9.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport9.cxx @@ -1042,6 +1042,11 @@ DECLARE_OOXMLEXPORT_TEST(testActiveXOptionButtonGroup, "activex_option_button_gr CPPUNIT_ASSERT_EQUAL(sGroupName, getProperty<OUString>(xPropertySet, "GroupName")); } +DECLARE_OOXMLEXPORT_TEST(tdf112169, "tdf112169.odt") +{ + // LO crashed while export because of chararacter background color handling +} + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/source/filter/ww8/ww8atr.cxx b/sw/source/filter/ww8/ww8atr.cxx index 6ba8e5dcd977..7340b13dd32b 100644 --- a/sw/source/filter/ww8/ww8atr.cxx +++ b/sw/source/filter/ww8/ww8atr.cxx @@ -5173,8 +5173,10 @@ void AttributeOutputBase::CharBackgroundBase( const SvxBrushItem& rBrush ) bool bHasShadingMarker = false; // Check shading marker + const SfxPoolItem* pItem = GetExport().HasItem(RES_CHRATR_GRABBAG); + if( pItem ) { - const SfxGrabBagItem& aGrabBag = static_cast< const SfxGrabBagItem& >( GetExport().GetItem( RES_CHRATR_GRABBAG ) ); + const SfxGrabBagItem aGrabBag = static_cast< const SfxGrabBagItem& >(*pItem); const std::map<OUString, css::uno::Any>& rMap = aGrabBag.GetGrabBag(); auto aIterator = rMap.find("CharShadingMarker"); if( aIterator != rMap.end() ) |