summaryrefslogtreecommitdiff
path: root/sw/source
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.com>2022-03-30 11:20:12 +0200
committerMiklos Vajna <vmiklos@collabora.com>2022-03-31 16:39:06 +0200
commitac151fafd06c92cf9482b5696380346206542f87 (patch)
treea03f13e92e196c51543bc6c9049bd17f2436410b /sw/source
parent066076255277261898278102b49cf91fdd3d2881 (diff)
sw: fix crash in SwAttrSet::CopyToModify()
Regression from commit 938a4d6624a78f3e272b3c4c07f314cb0c6db723 (tdf#128375 sw: fix copying RES_PARATR_LIST_AUTOFMT to different SwDoc, 2019-11-01), the problem is that we may get an autofmt pool item which is set, but its style handle is empty. Assume that this is the same case as having no autofmt at all. (cherry picked from commit ddfafd9b67e6e61c144b29ac73bbafb413ddf03b) Conflicts: sw/Module_sw.mk sw/source/core/attr/swatrset.cxx [ Help backporting by also picking a single hunk from commit 1ad26c9fc237e00247f18fcc8ccc778fba88d1fd (loplugin:referencecasting add check for new rtl::Reference operator, 2021-02-11) as well. ] Change-Id: I87494fd04687d31201b4ec712cb0fb1ec7362b46 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132313 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Diffstat (limited to 'sw/source')
-rw-r--r--sw/source/core/attr/swatrset.cxx3
1 files changed, 2 insertions, 1 deletions
diff --git a/sw/source/core/attr/swatrset.cxx b/sw/source/core/attr/swatrset.cxx
index 0fe141ef5834..4b9f8eddded8 100644
--- a/sw/source/core/attr/swatrset.cxx
+++ b/sw/source/core/attr/swatrset.cxx
@@ -399,7 +399,8 @@ void SwAttrSet::CopyToModify( sw::BroadcastingModify& rMod ) const
}
if (pSrcDoc != pDstDoc &&
- SfxItemState::SET == GetItemState(RES_PARATR_LIST_AUTOFMT, false, &pItem))
+ SfxItemState::SET == GetItemState(RES_PARATR_LIST_AUTOFMT, false, &pItem) &&
+ static_cast<SwFormatAutoFormat const&>(*pItem).GetStyleHandle())
{
SfxItemSet const& rAutoStyle(*static_cast<SwFormatAutoFormat const&>(*pItem).GetStyleHandle());
std::shared_ptr<SfxItemSet> const pNewSet(