diff options
author | Noel Grandin <noelgrandin@gmail.com> | 2022-09-10 13:27:36 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2022-09-10 15:40:58 +0200 |
commit | a868a9cd5f45eb0ea6703db3b68c48b7fa79b808 (patch) | |
tree | 56ebe6db87887fdd8c8fb981168039683121e082 /sw | |
parent | 9908e48932e0cdac9785c05ff1d4c0e482ea78ca (diff) |
crashtesting tdf135070-01.odt
asserts with
./instdir/program/soffice --headless --convert-to pdf ~/tdf135070-1.odt
ever since
commit 0f0cc045e06c8f3cd3f9780054f2259c6a0995f7
use more SwPosition::Assign
Change-Id: I653a3136e46fde12b3e31bacec7f44695b0e1329
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139749
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'sw')
-rw-r--r-- | sw/source/core/doc/docbm.cxx | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/sw/source/core/doc/docbm.cxx b/sw/source/core/doc/docbm.cxx index 5b0b40a6b5ee..2347a68638b6 100644 --- a/sw/source/core/doc/docbm.cxx +++ b/sw/source/core/doc/docbm.cxx @@ -1849,25 +1849,38 @@ void SaveBookmark::SetInDoc( { SwPaM aPam(rNewPos); if(oContentIdx) - aPam.GetPoint()->SetContent( *oContentIdx ); + { + if (aPam.GetPoint()->GetNode().IsContentNode()) + aPam.GetPoint()->SetContent( *oContentIdx ); + else + SAL_WARN("sw", "trying to sent content index, but point node is not a content node"); + } if(NODE_OFFSET_MAX != m_nNode2) { aPam.SetMark(); aPam.GetMark()->Adjust(m_nNode2); - if(oContentIdx && !m_nNode2) - aPam.GetMark()->SetContent(*oContentIdx + m_nContent2); + if (aPam.GetMark()->GetNode().IsContentNode()) + { + if(oContentIdx && !m_nNode2) + aPam.GetMark()->SetContent(*oContentIdx + m_nContent2); + else + aPam.GetMark()->SetContent(m_nContent2); + } else - aPam.GetMark()->SetContent(m_nContent2); + SAL_WARN("sw", "trying to sent content index, but mark node is not a content node"); } aPam.GetPoint()->Adjust(m_nNode1); - if(oContentIdx && !m_nNode1) - aPam.GetPoint()->SetContent(*oContentIdx + m_nContent1); - else - aPam.GetPoint()->SetContent(m_nContent1); + if (aPam.GetPoint()->GetNode().IsContentNode()) + { + if(oContentIdx && !m_nNode1) + aPam.GetPoint()->SetContent(*oContentIdx + m_nContent1); + else + aPam.GetPoint()->SetContent(m_nContent1); + } if(aPam.HasMark() && !CheckNodesRange(aPam.GetPoint()->GetNode(), aPam.GetMark()->GetNode(), true)) |