summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sw/source/core/undo/rolbck.cxx20
1 files changed, 13 insertions, 7 deletions
diff --git a/sw/source/core/undo/rolbck.cxx b/sw/source/core/undo/rolbck.cxx
index 016ce12a69cb..6131ee154501 100644
--- a/sw/source/core/undo/rolbck.cxx
+++ b/sw/source/core/undo/rolbck.cxx
@@ -615,8 +615,11 @@ void SwHistoryBookmark::SetInDoc( SwDoc* pDoc, bool )
}
else
{
- pMark = pMarkAccess->findMark(m_aName)->get();
- pPam = ::std::auto_ptr<SwPaM>(new SwPaM(pMark->GetMarkPos()));
+ IDocumentMarkAccess::const_iterator_t ppMark = pMarkAccess->findMark(m_aName);
+ if(pMarkAccess->getMarksEnd() != ppMark) {
+ pMark = ppMark->get();
+ pPam = ::std::auto_ptr<SwPaM>(new SwPaM(pMark->GetMarkPos()));
+ }
}
if(m_bSaveOtherPos)
@@ -637,11 +640,14 @@ void SwHistoryBookmark::SetInDoc( SwDoc* pDoc, bool )
{
if(!pMark)
pMark = pMarkAccess->findMark(m_aName)->get();
- OSL_ENSURE(pMark->IsExpanded(),
- "<SwHistoryBookmark::SetInDoc(..)>"
- " - missing pos on old mark");
- pPam->SetMark();
- *pPam->GetMark() = pMark->GetOtherMarkPos();
+ if(pMark)
+ {
+ OSL_ENSURE(pMark->IsExpanded(),
+ "<SwHistoryBookmark::SetInDoc(..)>"
+ " - missing pos on old mark");
+ pPam->SetMark();
+ *pPam->GetMark() = pMark->GetOtherMarkPos();
+ }
}
if(pPam.get())