diff options
-rw-r--r-- | sw/source/ui/misc/bookmark.cxx | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/sw/source/ui/misc/bookmark.cxx b/sw/source/ui/misc/bookmark.cxx index b932883359db..fdf0262f2307 100644 --- a/sw/source/ui/misc/bookmark.cxx +++ b/sw/source/ui/misc/bookmark.cxx @@ -249,15 +249,18 @@ bool SwInsertBookmarkDlg::HaveBookmarksChanged() if (pMarkAccess->getBookmarksCount() != m_nLastBookmarksCount) return true; - IDocumentMarkAccess::const_iterator_t ppBookmark = pMarkAccess->getBookmarksBegin(); - for (std::pair<sw::mark::IMark*,OUString> & aTableBookmark : aTableBookmarks) + std::vector<std::pair<sw::mark::IMark*, OUString>>::const_iterator aListIter = aTableBookmarks.begin(); + for (IDocumentMarkAccess::const_iterator_t ppBookmark = pMarkAccess->getBookmarksBegin(); + ppBookmark != pMarkAccess->getBookmarksEnd(); ++ppBookmark) { if (IDocumentMarkAccess::MarkType::BOOKMARK == IDocumentMarkAccess::GetType(**ppBookmark)) { - if (aTableBookmark.first != ppBookmark->get() || - aTableBookmark.second != ppBookmark->get()->GetName()) + if (aListIter == aTableBookmarks.end()) return true; - ++ppBookmark; + if (aListIter->first != ppBookmark->get() || + aListIter->second != ppBookmark->get()->GetName()) + return true; + ++aListIter; } } return false; @@ -267,6 +270,7 @@ void SwInsertBookmarkDlg::PopulateTable() { aTableBookmarks.clear(); m_pBookmarksBox->Clear(); + IDocumentMarkAccess* const pMarkAccess = rSh.getIDocumentMarkAccess(); for (IDocumentMarkAccess::const_iterator_t ppBookmark = pMarkAccess->getBookmarksBegin(); ppBookmark != pMarkAccess->getBookmarksEnd(); ++ppBookmark) |