summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
authorNoel Grandin <noelgrandin@gmail.com>2022-09-10 13:27:36 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2022-09-10 15:40:58 +0200
commita868a9cd5f45eb0ea6703db3b68c48b7fa79b808 (patch)
tree56ebe6db87887fdd8c8fb981168039683121e082 /sw
parent9908e48932e0cdac9785c05ff1d4c0e482ea78ca (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.cxx29
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))