summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sw/source/core/doc/docbm.cxx22
1 files changed, 14 insertions, 8 deletions
diff --git a/sw/source/core/doc/docbm.cxx b/sw/source/core/doc/docbm.cxx
index dc5473458a81..5aa68f10dedb 100644
--- a/sw/source/core/doc/docbm.cxx
+++ b/sw/source/core/doc/docbm.cxx
@@ -1906,19 +1906,25 @@ void _RestoreCntntIdx(std::vector<sal_uLong> &rSaveArr,
case 0x8000:
{
MarkBase* pMark = dynamic_cast<MarkBase*>(pMarkAccess->getAllMarksBegin()[aSave.GetCount()].get());
- SwPosition aNewPos(pMark->GetMarkPos());
- aNewPos.nNode = rNd;
- aNewPos.nContent.Assign(pCNd, std::min(aSave.GetContent(), nLen));
- pMark->SetMarkPos(aNewPos);
+ if (pMark)
+ {
+ SwPosition aNewPos(pMark->GetMarkPos());
+ aNewPos.nNode = rNd;
+ aNewPos.nContent.Assign(pCNd, std::min(aSave.GetContent(), nLen));
+ pMark->SetMarkPos(aNewPos);
+ }
}
break;
case 0x8001:
{
MarkBase* pMark = dynamic_cast<MarkBase*>(pMarkAccess->getAllMarksBegin()[aSave.GetCount()].get());
- SwPosition aNewPos(pMark->GetOtherMarkPos());
- aNewPos.nNode = rNd;
- aNewPos.nContent.Assign(pCNd, std::min(aSave.GetContent(), nLen));
- pMark->SetOtherMarkPos(aNewPos);
+ if (pMark)
+ {
+ SwPosition aNewPos(pMark->GetOtherMarkPos());
+ aNewPos.nNode = rNd;
+ aNewPos.nContent.Assign(pCNd, std::min(aSave.GetContent(), nLen));
+ pMark->SetOtherMarkPos(aNewPos);
+ }
}
break;
case 0x1001: