sw/inc/IDocumentMarkAccess.hxx                            |   86 +-----
 sw/qa/core/macros-test.cxx                                |    2 
 sw/qa/extras/mailmerge/mailmerge.cxx                      |    2 
 sw/qa/extras/mailmerge/mailmergetestbase.cxx              |    2 
 sw/qa/extras/uiwriter/uiwriter.cxx                        |    4 
 sw/source/core/doc/CntntIdxStore.cxx                      |    6 
 sw/source/core/doc/DocumentContentOperationsManager.cxx   |    2 
 sw/source/core/doc/DocumentLinksAdministrationManager.cxx |    2 
 sw/source/core/doc/docbm.cxx                              |  191 ++------------
 sw/source/core/doc/docredln.cxx                           |    3 
 sw/source/core/fields/postithelper.cxx                    |    2 
 sw/source/core/fields/reffld.cxx                          |    2 
 sw/source/core/inc/MarkManager.hxx                        |   32 +-
 sw/source/core/text/EnhancedPDFExportHelper.cxx           |    2 
 sw/source/core/txtnode/atrfld.cxx                         |    2 
 sw/source/core/undo/unbkmk.cxx                            |    4 
 sw/source/core/unocore/unocoll.cxx                        |   12 
 sw/source/core/unocore/unofield.cxx                       |    2 
 sw/source/core/unocore/unoportenum.cxx                    |    4 
 sw/source/filter/html/htmlgrin.cxx                        |    4 
 sw/source/filter/html/swhtml.cxx                          |    2 
 sw/source/filter/writer/writer.cxx                        |    4 
 sw/source/filter/ww8/ww8par.cxx                           |    4 
 sw/source/ui/dialog/uiregionsw.cxx                        |    2 
 sw/source/ui/fldui/fldref.cxx                             |    2 
 sw/source/ui/misc/bookmark.cxx                            |    4 
 sw/source/ui/vba/vbaformfields.cxx                        |    2 
 sw/source/uibase/dochdl/swdtflvr.cxx                      |    4 
 sw/source/uibase/docvw/edtwin2.cxx                        |    3 
 sw/source/uibase/shells/textfld.cxx                       |    2 
 sw/source/uibase/shells/textsh1.cxx                       |    2 
 sw/source/uibase/uiview/view2.cxx                         |    4 
 sw/source/uibase/uiview/viewmdi.cxx                       |    2 
 sw/source/uibase/utlui/bookctrl.cxx                       |    4 
 sw/source/uibase/utlui/content.cxx                        |    8 
 sw/source/uibase/wrtsh/wrtsh3.cxx                         |    2 
 36 files changed, 115 insertions(+), 302 deletions(-)

New commits:
commit e94b85019d607f83b626d4ff3756d8f04c0dfb3f
Author:     Noel Grandin <noel.gran...@collabora.co.uk>
AuthorDate: Sun Aug 4 20:31:10 2024 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Mon Aug 5 15:49:05 2024 +0200

    simplify IMark hierarchy (7)
    
    drop the iterator wrapper, no longer necessary
    
    Change-Id: I41697c062805c3fadd0210cffbc8f7beffe01f2d
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171472
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>
    Tested-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/sw/inc/IDocumentMarkAccess.hxx b/sw/inc/IDocumentMarkAccess.hxx
index e170f5a19eb3..ef75c939e0be 100644
--- a/sw/inc/IDocumentMarkAccess.hxx
+++ b/sw/inc/IDocumentMarkAccess.hxx
@@ -54,58 +54,8 @@ class IDocumentMarkAccess
             NAVIGATOR_REMINDER
         };
 
-        /** wrapper iterator: wraps iterator of implementation while hiding
-            MarkBase class; only MarkBase instances can be retrieved directly.
-         */
-        class SW_DLLPUBLIC iterator
-        {
-            private:
-                
std::optional<std::vector<::sw::mark::MarkBase*>::const_iterator> m_pIter;
-
-            public:
-                // MarkManager implementation needs to get the real iterator
-                std::vector<::sw::mark::MarkBase*>::const_iterator const& 
get() const;
-
-                typedef std::ptrdiff_t difference_type;
-                typedef ::sw::mark::MarkBase* value_type;
-                typedef ::sw::mark::MarkBase* const* pointer;
-                typedef ::sw::mark::MarkBase* const& reference;
-                typedef std::random_access_iterator_tag iterator_category;
-
-                iterator();
-                iterator(std::vector<::sw::mark::MarkBase*>::const_iterator 
const& rIter);
-                iterator(iterator const& rOther);
-                iterator& operator=(iterator const& rOther);
-                iterator(iterator && rOther) noexcept;
-                iterator& operator=(iterator && rOther) noexcept;
-
-                // FIXME unfortunately there's a requirement on input iterator
-                // and forward iterator to return reference, which isn't
-                // possible because we have to return a temp value;
-                // let's try value_type instead, perhaps it's sufficient,
-                // for a const_iterator...
-                ::sw::mark::MarkBase* /*const&*/ operator*() const;
-                // nope can't do that :(
-                //::sw::mark::MarkBase* /* const* */ operator->() const;
-                iterator& operator++();
-                iterator operator++(int);
-                bool operator==(iterator const& rOther) const;
-                bool operator!=(iterator const& rOther) const;
-                iterator& operator--();
-                iterator operator--(int);
-                iterator& operator+=(difference_type);
-                iterator operator+(difference_type) const;
-                iterator& operator-=(difference_type);
-                iterator operator-(difference_type) const;
-                difference_type operator-(iterator const&) const;
-                value_type operator[](difference_type) const;
-                bool operator<(iterator const& rOther) const;
-                bool operator>(iterator const& rOther) const;
-                bool operator<=(iterator const& rOther) const;
-                bool operator>=(iterator const& rOther) const;
-        };
-
-        typedef iterator const_iterator_t;
+        typedef std::vector<::sw::mark::MarkBase*>::const_iterator 
const_iterator;
+        typedef std::vector<::sw::mark::MarkBase*>::iterator iterator;
 
         /// To avoid recursive calls of deleteMark, the removal of dummy
         /// characters of fieldmarks has to be delayed; this is the baseclass
@@ -240,7 +190,7 @@ class IDocumentMarkAccess
                  remove fieldmark chars.
         */
         virtual std::unique_ptr<ILazyDeleter>
-            deleteMark(const IDocumentMarkAccess::const_iterator_t& ppMark, 
bool isMoveNodes) =0;
+            deleteMark(const IDocumentMarkAccess::const_iterator& ppMark, bool 
isMoveNodes) =0;
 
         /** Deletes a mark.
 
@@ -257,11 +207,11 @@ class IDocumentMarkAccess
 
         /** returns a STL-like random access iterator to the begin of the 
sequence of marks.
         */
-        virtual const_iterator_t getAllMarksBegin() const =0;
+        virtual const_iterator getAllMarksBegin() const =0;
 
         /** returns a STL-like random access iterator to the end of the 
sequence of marks.
         */
-        virtual const_iterator_t getAllMarksEnd() const =0;
+        virtual const_iterator getAllMarksEnd() const =0;
 
         /** returns the number of marks.
 
@@ -277,14 +227,14 @@ class IDocumentMarkAccess
             @returns
             an iterator pointing to the mark, or pointing to getAllMarksEnd() 
if nothing was found.
         */
-        virtual const_iterator_t findMark(const OUString& rMark) const =0;
+        virtual const_iterator findMark(const OUString& rMark) const =0;
 
         /** Find the first Mark that does not start before.
 
             @returns
             an iterator pointing to the mark, or pointing to getAllMarksEnd() 
if nothing was found.
         */
-        virtual const_iterator_t findFirstMarkNotStartsBefore(const 
SwPosition& rPos) const =0;
+        virtual const_iterator findFirstMarkNotStartsBefore(const SwPosition& 
rPos) const =0;
 
         // interface Bookmarks (BOOKMARK, CROSSREF_NUMITEM_BOOKMARK, 
CROSSREF_HEADING_BOOKMARK )
 
@@ -293,11 +243,11 @@ class IDocumentMarkAccess
 
         /** returns a STL-like random access iterator to the begin of the 
sequence the Bookmarks.
         */
-        virtual const_iterator_t getBookmarksBegin() const =0;
+        virtual const_iterator getBookmarksBegin() const =0;
 
         /** returns a STL-like random access iterator to the end of the 
sequence of Bookmarks.
         */
-        virtual const_iterator_t getBookmarksEnd() const =0;
+        virtual const_iterator getBookmarksEnd() const =0;
 
         /** returns the number of Bookmarks.
         */
@@ -311,14 +261,14 @@ class IDocumentMarkAccess
             @returns
             an iterator pointing to the bookmark, or getBookmarksEnd() if 
nothing was found.
         */
-        virtual const_iterator_t findBookmark(const OUString& rMark) const =0;
+        virtual const_iterator findBookmark(const OUString& rMark) const =0;
 
         /** Finds the first mark that is starting after.
 
             @returns
             an iterator pointing to the mark, or pointing to getBookmarksEnd() 
if nothing was found.
         */
-        virtual const_iterator_t findFirstBookmarkStartsAfter(const 
SwPosition& rPos) const =0;
+        virtual const_iterator findFirstBookmarkStartsAfter(const SwPosition& 
rPos) const =0;
 
         /// Get the innermost bookmark that contains rPos.
         virtual sw::mark::MarkBase* getOneInnermostBookmarkFor(const 
SwPosition& rPos) const = 0;
@@ -326,11 +276,11 @@ class IDocumentMarkAccess
         // Fieldmarks
         /** returns a STL-like random access iterator to the begin of the 
sequence of fieldmarks.
         */
-        virtual const_iterator_t getFieldmarksBegin() const =0;
+        virtual const_iterator getFieldmarksBegin() const =0;
 
         /** returns a STL-like random access iterator to the end of the 
sequence of fieldmarks.
         */
-        virtual const_iterator_t getFieldmarksEnd() const =0;
+        virtual const_iterator getFieldmarksEnd() const =0;
 
         /// returns the number of Fieldmarks.
         virtual sal_Int32 getFieldmarksCount() const = 0;
@@ -351,10 +301,10 @@ class IDocumentMarkAccess
         virtual void ClearFieldActivation() = 0;
 
         // Annotation Marks
-        virtual const_iterator_t getAnnotationMarksBegin() const = 0;
-        virtual const_iterator_t getAnnotationMarksEnd() const = 0;
+        virtual const_iterator getAnnotationMarksBegin() const = 0;
+        virtual const_iterator getAnnotationMarksEnd() const = 0;
         virtual sal_Int32 getAnnotationMarksCount() const = 0;
-        virtual const_iterator_t findAnnotationMark( const OUString& rName ) 
const = 0;
+        virtual const_iterator findAnnotationMark( const OUString& rName ) 
const = 0;
         virtual sw::mark::MarkBase* getAnnotationMarkFor(const SwPosition& 
rPosition) const = 0;
         // handle and restore text ranges of annotations of tracked deletions
         // based on the helper bookmarks (which can survive I/O and hiding 
redlines)
@@ -362,14 +312,14 @@ class IDocumentMarkAccess
             const OUString& rProposedName,
             MarkType eMark, ::sw::mark::InsertMode eMode,
             SwPosition const* pSepPos = nullptr) = 0;
-        virtual const_iterator_t findAnnotationBookmark( const OUString& rName 
) const = 0;
+        virtual const_iterator findAnnotationBookmark( const OUString& rName ) 
const = 0;
         virtual void restoreAnnotationMarks(bool bDelete = true) = 0;
         /** Finds the first mark that is starting after.
 
             @returns
             an iterator pointing to the mark, or pointing to 
getAnnotationMarksEnd() if nothing was found.
         */
-        virtual const_iterator_t findFirstAnnotationStartsAfter(const 
SwPosition& rPos) const =0;
+        virtual const_iterator findFirstAnnotationStartsAfter(const 
SwPosition& rPos) const =0;
 
         /** Returns the MarkType used to create the mark
         */
diff --git a/sw/qa/core/macros-test.cxx b/sw/qa/core/macros-test.cxx
index b5b3ec02828e..73b7bc399275 100644
--- a/sw/qa/core/macros-test.cxx
+++ b/sw/qa/core/macros-test.cxx
@@ -203,7 +203,7 @@ void SwMacrosTest::testBookmarkDeleteAndJoin()
     // delete
     rIDCO.DeleteAndJoin(aPaM);
 
-    for (IDocumentMarkAccess::const_iterator_t i = rIDMA.getAllMarksBegin(); i 
!= rIDMA.getAllMarksEnd(); ++i)
+    for (auto i = rIDMA.getAllMarksBegin(); i != rIDMA.getAllMarksEnd(); ++i)
     {
         // problem was that the nContent was pointing at deleted node
         CPPUNIT_ASSERT_EQUAL((*i)->GetMarkStart().GetContentNode(),
diff --git a/sw/qa/extras/mailmerge/mailmerge.cxx 
b/sw/qa/extras/mailmerge/mailmerge.cxx
index ceda0d1ff908..decf6f73e227 100644
--- a/sw/qa/extras/mailmerge/mailmerge.cxx
+++ b/sw/qa/extras/mailmerge/mailmerge.cxx
@@ -202,7 +202,7 @@ DECLARE_SHELL_MAILMERGE_TEST(testTdf92623, "tdf92623.odt", 
"10-testing-addresses
     // There is just one mark...
     CPPUNIT_ASSERT_EQUAL(sal_Int32(1), pIDMA->getAllMarksCount());
     CPPUNIT_ASSERT_EQUAL(sal_Int32(0), pIDMA->getBookmarksCount());
-    IDocumentMarkAccess::const_iterator_t mark = pIDMA->getAllMarksBegin();
+    auto mark = pIDMA->getAllMarksBegin();
     // and it's a TEXT_FIELDMARK
     CPPUNIT_ASSERT_EQUAL( 
sal_Int32(IDocumentMarkAccess::MarkType::TEXT_FIELDMARK),
                             sal_Int32(IDocumentMarkAccess::GetType( **mark )) 
);
diff --git a/sw/qa/extras/mailmerge/mailmergetestbase.cxx 
b/sw/qa/extras/mailmerge/mailmergetestbase.cxx
index 50edd6a34552..fb5c57767871 100644
--- a/sw/qa/extras/mailmerge/mailmergetestbase.cxx
+++ b/sw/qa/extras/mailmerge/mailmergetestbase.cxx
@@ -300,7 +300,7 @@ public:
         IDocumentMarkAccess* marks = shell->GetDoc()->getIDocumentMarkAccess();
         // Unfortunately, the pages are marked using UNO bookmarks, which have 
internals names, so they cannot be referred to by their names.
         // Assume that there are no other UNO bookmarks than the ones used by 
mail merge, and that they are in the sorted order.
-        IDocumentMarkAccess::const_iterator_t mark;
+        IDocumentMarkAccess::const_iterator mark;
         int pos = 0;
         for (mark = marks->getAllMarksBegin(); mark != marks->getAllMarksEnd() 
&& pos < document;
              ++mark)
diff --git a/sw/qa/extras/uiwriter/uiwriter.cxx 
b/sw/qa/extras/uiwriter/uiwriter.cxx
index ab76eba797e9..05b6a9965018 100644
--- a/sw/qa/extras/uiwriter/uiwriter.cxx
+++ b/sw/qa/extras/uiwriter/uiwriter.cxx
@@ -1538,7 +1538,7 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest, testBookmarkUndo)
     rUndoManager.Redo();
     CPPUNIT_ASSERT_EQUAL(sal_Int32(1), pMarkAccess->getAllMarksCount());
 
-    IDocumentMarkAccess::const_iterator_t ppBkmk = 
pMarkAccess->findMark(u"Mark"_ustr);
+    auto ppBkmk = pMarkAccess->findMark(u"Mark"_ustr);
     CPPUNIT_ASSERT(ppBkmk != pMarkAccess->getAllMarksEnd());
 
     pMarkAccess->renameMark(*ppBkmk, u"Mark_"_ustr);
@@ -1987,7 +1987,7 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest, testTdf51741)
     CPPUNIT_ASSERT(pWrtShell->IsModified());
     pWrtShell->ResetModified();
     CPPUNIT_ASSERT_EQUAL(sal_Int32(1), pMarkAccess->getAllMarksCount());
-    IDocumentMarkAccess::const_iterator_t ppBkmk = 
pMarkAccess->findMark(u"Mark"_ustr);
+    auto ppBkmk = pMarkAccess->findMark(u"Mark"_ustr);
     CPPUNIT_ASSERT(ppBkmk != pMarkAccess->getAllMarksEnd());
     //Modification 4
     pMarkAccess->renameMark(*ppBkmk, u"Mark_"_ustr);
diff --git a/sw/source/core/doc/CntntIdxStore.cxx 
b/sw/source/core/doc/CntntIdxStore.cxx
index 73f4c0b9a74e..03ee3de02f18 100644
--- a/sw/source/core/doc/CntntIdxStore.cxx
+++ b/sw/source/core/doc/CntntIdxStore.cxx
@@ -221,9 +221,9 @@ namespace
 void ContentIdxStoreImpl::SaveBkmks(SwDoc& rDoc, SwNodeOffset nNode, sal_Int32 
nContent)
 {
     IDocumentMarkAccess* const pMarkAccess = rDoc.getIDocumentMarkAccess();
-    const IDocumentMarkAccess::const_iterator_t ppBkmkEnd = 
pMarkAccess->getAllMarksEnd();
+    const auto ppBkmkEnd = pMarkAccess->getAllMarksEnd();
     for(
-        IDocumentMarkAccess::const_iterator_t ppBkmk = 
pMarkAccess->getAllMarksBegin();
+        auto ppBkmk = pMarkAccess->getAllMarksBegin();
         ppBkmk != ppBkmkEnd;
         ++ppBkmk)
     {
@@ -260,7 +260,7 @@ void ContentIdxStoreImpl::RestoreBkmks(SwDoc& rDoc, 
updater_t const & rUpdater)
     IDocumentMarkAccess* const pMarkAccess = rDoc.getIDocumentMarkAccess();
     for (const MarkEntry& aEntry : m_aBkmkEntries)
     {
-        if (MarkBase *const pMark = 
pMarkAccess->getAllMarksBegin().get()[aEntry.m_nIdx])
+        if (MarkBase *const pMark = 
pMarkAccess->getAllMarksBegin()[aEntry.m_nIdx])
         {
             SwPosition aNewPos(GetRightMarkPos(pMark, aEntry.m_bOther));
             rUpdater(aNewPos, aEntry.m_nContent);
diff --git a/sw/source/core/doc/DocumentContentOperationsManager.cxx 
b/sw/source/core/doc/DocumentContentOperationsManager.cxx
index 3828312176d3..56b44e289e62 100644
--- a/sw/source/core/doc/DocumentContentOperationsManager.cxx
+++ b/sw/source/core/doc/DocumentContentOperationsManager.cxx
@@ -246,7 +246,7 @@ namespace sw
         SwPosition const*const pCpyStt = &rCpyPam;
 
         std::vector< const ::sw::mark::MarkBase* > vMarksToCopy;
-        for ( IDocumentMarkAccess::const_iterator_t ppMark = 
pSrcMarkAccess->getAllMarksBegin();
+        for ( auto ppMark = pSrcMarkAccess->getAllMarksBegin();
               ppMark != pSrcMarkAccess->getAllMarksEnd();
               ++ppMark )
         {
diff --git a/sw/source/core/doc/DocumentLinksAdministrationManager.cxx 
b/sw/source/core/doc/DocumentLinksAdministrationManager.cxx
index 98f304a800eb..1c13b3c50729 100644
--- a/sw/source/core/doc/DocumentLinksAdministrationManager.cxx
+++ b/sw/source/core/doc/DocumentLinksAdministrationManager.cxx
@@ -79,7 +79,7 @@ namespace
     {
         //Iterating over all bookmarks, checking DdeBookmarks
         const OUString sNameLc = bCaseSensitive ? rName : 
GetAppCharClass().lowercase(rName);
-        for(IDocumentMarkAccess::const_iterator_t ppMark = 
rMarkAccess.getAllMarksBegin();
+        for(auto ppMark = rMarkAccess.getAllMarksBegin();
             ppMark != rMarkAccess.getAllMarksEnd();
             ++ppMark)
         {
diff --git a/sw/source/core/doc/docbm.cxx b/sw/source/core/doc/docbm.cxx
index bc9f9db6828e..a2f7dc94b314 100644
--- a/sw/source/core/doc/docbm.cxx
+++ b/sw/source/core/doc/docbm.cxx
@@ -54,136 +54,6 @@ constexpr OUString S_ANNOTATION_BOOKMARK = u"____"_ustr;
 
 using namespace ::sw::mark;
 
-std::vector<::sw::mark::MarkBase*>::const_iterator const&
-IDocumentMarkAccess::iterator::get() const
-{
-    return *m_pIter;
-}
-
-IDocumentMarkAccess::iterator::iterator(std::vector<::sw::mark::MarkBase*>::const_iterator
 const& rIter)
-    : m_pIter(rIter)
-{
-}
-
-IDocumentMarkAccess::iterator::iterator(iterator const& rOther)
-    : m_pIter(rOther.m_pIter)
-{
-}
-
-auto IDocumentMarkAccess::iterator::operator=(iterator const& rOther) -> 
iterator&
-{
-    m_pIter = rOther.m_pIter;
-    return *this;
-}
-
-IDocumentMarkAccess::iterator::iterator(iterator && rOther) noexcept
-    : m_pIter(std::move(rOther.m_pIter))
-{
-}
-
-auto IDocumentMarkAccess::iterator::operator=(iterator && rOther) noexcept -> 
iterator&
-{
-    m_pIter = std::move(rOther.m_pIter);
-    return *this;
-}
-
-// ARGH why does it *need* to return const& ?
-::sw::mark::MarkBase* /*const&*/
-IDocumentMarkAccess::iterator::operator*() const
-{
-    return **m_pIter;
-}
-
-auto IDocumentMarkAccess::iterator::operator++() -> iterator&
-{
-    ++(*m_pIter);
-    return *this;
-}
-auto IDocumentMarkAccess::iterator::operator++(int) -> iterator
-{
-    iterator tmp(*this);
-    ++(*m_pIter);
-    return tmp;
-}
-
-bool IDocumentMarkAccess::iterator::operator==(iterator const& rOther) const
-{
-    return *m_pIter == *rOther.m_pIter;
-}
-
-bool IDocumentMarkAccess::iterator::operator!=(iterator const& rOther) const
-{
-    return *m_pIter != *rOther.m_pIter;
-}
-
-IDocumentMarkAccess::iterator::iterator()
-    : m_pIter(std::in_place)
-{
-}
-
-auto IDocumentMarkAccess::iterator::operator--() -> iterator&
-{
-    --(*m_pIter);
-    return *this;
-}
-
-auto IDocumentMarkAccess::iterator::operator--(int) -> iterator
-{
-    iterator tmp(*this);
-    --(*m_pIter);
-    return tmp;
-}
-
-auto IDocumentMarkAccess::iterator::operator+=(difference_type const n) -> 
iterator&
-{
-    (*m_pIter) += n;
-    return *this;
-}
-
-auto IDocumentMarkAccess::iterator::operator+(difference_type const n) const 
-> iterator
-{
-    return iterator(*m_pIter + n);
-}
-
-auto IDocumentMarkAccess::iterator::operator-=(difference_type const n) -> 
iterator&
-{
-    (*m_pIter) -= n;
-    return *this;
-}
-
-auto IDocumentMarkAccess::iterator::operator-(difference_type const n) const 
-> iterator
-{
-    return iterator(*m_pIter - n);
-}
-
-auto IDocumentMarkAccess::iterator::operator-(iterator const& rOther) const -> 
difference_type
-{
-    return *m_pIter - *rOther.m_pIter;
-}
-
-auto IDocumentMarkAccess::iterator::operator[](difference_type const n) const 
-> value_type
-{
-    return (*m_pIter)[n];
-}
-
-bool IDocumentMarkAccess::iterator::operator<(iterator const& rOther) const
-{
-    return *m_pIter < *rOther.m_pIter;
-}
-bool IDocumentMarkAccess::iterator::operator>(iterator const& rOther) const
-{
-    return *m_pIter > *rOther.m_pIter;
-}
-bool IDocumentMarkAccess::iterator::operator<=(iterator const& rOther) const
-{
-    return *m_pIter <= *rOther.m_pIter;
-}
-bool IDocumentMarkAccess::iterator::operator>=(iterator const& rOther) const
-{
-    return *m_pIter >= *rOther.m_pIter;
-}
-
-
 namespace
 {
     bool lcl_GreaterThan( const SwPosition& rPos, const SwNode& rNdIdx, 
std::optional<sal_Int32> oContentIdx )
@@ -1104,7 +974,7 @@ namespace sw::mark
             std::optional<sal_Int32> oEndContentIdx,
             bool const isReplace)
     {
-        std::vector<const_iterator_t> vMarksToDelete;
+        std::vector<const_iterator> vMarksToDelete;
         bool bIsSortingNeeded = false;
 
         // boolean indicating, if at least one mark has been moved while 
collecting marks for deletion
@@ -1207,7 +1077,7 @@ namespace sw::mark
             // for the shared_ptr<> (the entry in m_vAllMarks) again
             // reverse iteration, since erasing an entry invalidates iterators
             // behind it (the iterators in vMarksToDelete are sorted)
-            for ( std::vector< const_iterator_t >::reverse_iterator pppMark = 
vMarksToDelete.rbegin();
+            for ( std::vector< const_iterator >::reverse_iterator pppMark = 
vMarksToDelete.rbegin();
                   pppMark != vMarksToDelete.rend();
                   ++pppMark )
             {
@@ -1271,10 +1141,10 @@ namespace sw::mark
     }
 
     std::unique_ptr<IDocumentMarkAccess::ILazyDeleter>
-        MarkManager::deleteMark(const const_iterator_t& ppMark, bool const 
isMoveNodes)
+        MarkManager::deleteMark(const const_iterator& ppMark, bool const 
isMoveNodes)
     {
         std::unique_ptr<ILazyDeleter> ret;
-        if (ppMark.get() == m_vAllMarks.end())
+        if (ppMark == m_vAllMarks.end())
             return ret;
         MarkBase* pMark = *ppMark;
 
@@ -1282,7 +1152,7 @@ namespace sw::mark
         {
             case IDocumentMarkAccess::MarkType::BOOKMARK:
                 {
-                    auto const ppBookmark = lcl_FindMark(m_vBookmarks, 
*ppMark.get());
+                    auto const ppBookmark = lcl_FindMark(m_vBookmarks, 
*ppMark);
                     if ( ppBookmark != m_vBookmarks.end() )
                     {
                         Bookmark* pBookmark = 
dynamic_cast<Bookmark*>(*ppBookmark);
@@ -1302,7 +1172,7 @@ namespace sw::mark
             case IDocumentMarkAccess::MarkType::CROSSREF_HEADING_BOOKMARK:
             case IDocumentMarkAccess::MarkType::CROSSREF_NUMITEM_BOOKMARK:
                 {
-                    auto const ppBookmark = lcl_FindMark(m_vBookmarks, 
*ppMark.get());
+                    auto const ppBookmark = lcl_FindMark(m_vBookmarks, 
*ppMark);
                     if ( ppBookmark != m_vBookmarks.end() )
                     {
                         m_vBookmarks.erase(ppBookmark);
@@ -1320,7 +1190,7 @@ namespace sw::mark
             case IDocumentMarkAccess::MarkType::DROPDOWN_FIELDMARK:
             case IDocumentMarkAccess::MarkType::DATE_FIELDMARK:
                 {
-                    auto const ppFieldmark = lcl_FindMark(m_vFieldmarks, 
*ppMark.get());
+                    auto const ppFieldmark = lcl_FindMark(m_vFieldmarks, 
*ppMark);
                     if ( ppFieldmark != m_vFieldmarks.end() )
                     {
                         if(m_pLastActiveFieldmark == *ppFieldmark)
@@ -1339,7 +1209,7 @@ namespace sw::mark
 
             case IDocumentMarkAccess::MarkType::ANNOTATIONMARK:
                 {
-                    auto const ppAnnotationMark = 
lcl_FindMark(m_vAnnotationMarks, *ppMark.get());
+                    auto const ppAnnotationMark = 
lcl_FindMark(m_vAnnotationMarks, *ppMark);
                     assert(ppAnnotationMark != m_vAnnotationMarks.end() &&
                         "<MarkManager::deleteMark(..)> - Annotation Mark not 
found in Annotation Mark container.");
                     m_vAnnotationMarks.erase(ppAnnotationMark);
@@ -1355,7 +1225,7 @@ namespace sw::mark
         //Effective STL Item 27, get a non-const iterator aI at the same
         //position as const iterator ppMark was
         auto aI = m_vAllMarks.begin();
-        std::advance(aI, std::distance<container_t::const_iterator>(aI, 
ppMark.get()));
+        std::advance(aI, std::distance<container_t::const_iterator>(aI, 
ppMark));
         DdeBookmark* const pDdeBookmark = dynamic_cast<DdeBookmark*>(pMark);
         if (pDdeBookmark)
         {
@@ -1386,7 +1256,7 @@ namespace sw::mark
         for ( ; it != endIt; ++it)
             if (*it == pMark)
             {
-                deleteMark(iterator(it), false);
+                deleteMark(it, false);
                 break;
             }
     }
@@ -1402,20 +1272,18 @@ namespace sw::mark
         m_vAllMarks.clear();
     }
 
-    IDocumentMarkAccess::const_iterator_t MarkManager::findMark(const 
OUString& rName) const
+    IDocumentMarkAccess::const_iterator MarkManager::findMark(const OUString& 
rName) const
     {
-        auto const ret = lcl_FindMarkByName(rName, m_vAllMarks.begin(), 
m_vAllMarks.end());
-        return IDocumentMarkAccess::iterator(ret);
+        return lcl_FindMarkByName(rName, m_vAllMarks.begin(), 
m_vAllMarks.end());
     }
 
-    IDocumentMarkAccess::const_iterator_t MarkManager::findBookmark(const 
OUString& rName) const
+    IDocumentMarkAccess::const_iterator MarkManager::findBookmark(const 
OUString& rName) const
     {
-        auto const ret = lcl_FindMarkByName(rName, m_vBookmarks.begin(), 
m_vBookmarks.end());
-        return IDocumentMarkAccess::iterator(ret);
+        return lcl_FindMarkByName(rName, m_vBookmarks.begin(), 
m_vBookmarks.end());
     }
 
     // find the first Mark that does not start before
-    IDocumentMarkAccess::const_iterator_t 
MarkManager::findFirstMarkNotStartsBefore(const SwPosition& rPos) const
+    IDocumentMarkAccess::const_iterator 
MarkManager::findFirstMarkNotStartsBefore(const SwPosition& rPos) const
     {
         return std::lower_bound(
                 m_vAllMarks.begin(),
@@ -1424,35 +1292,35 @@ namespace sw::mark
                 CompareIMarkStartsBefore());
     }
 
-    IDocumentMarkAccess::const_iterator_t MarkManager::getAllMarksBegin() const
+    IDocumentMarkAccess::const_iterator MarkManager::getAllMarksBegin() const
         { return m_vAllMarks.begin(); }
 
-    IDocumentMarkAccess::const_iterator_t MarkManager::getAllMarksEnd() const
+    IDocumentMarkAccess::const_iterator MarkManager::getAllMarksEnd() const
         { return m_vAllMarks.end(); }
 
     sal_Int32 MarkManager::getAllMarksCount() const
         { return m_vAllMarks.size(); }
 
-    IDocumentMarkAccess::const_iterator_t MarkManager::getBookmarksBegin() 
const
+    IDocumentMarkAccess::const_iterator MarkManager::getBookmarksBegin() const
         { return m_vBookmarks.begin(); }
 
-    IDocumentMarkAccess::const_iterator_t MarkManager::getBookmarksEnd() const
+    IDocumentMarkAccess::const_iterator MarkManager::getBookmarksEnd() const
         { return m_vBookmarks.end(); }
 
     sal_Int32 MarkManager::getBookmarksCount() const
         { return m_vBookmarks.size(); }
 
-    IDocumentMarkAccess::const_iterator_t MarkManager::getFieldmarksBegin() 
const
+    IDocumentMarkAccess::const_iterator MarkManager::getFieldmarksBegin() const
         { return m_vFieldmarks.begin(); }
 
-    IDocumentMarkAccess::const_iterator_t MarkManager::getFieldmarksEnd() const
+    IDocumentMarkAccess::const_iterator MarkManager::getFieldmarksEnd() const
         { return m_vFieldmarks.end(); }
 
     sal_Int32 MarkManager::getFieldmarksCount() const { return 
m_vFieldmarks.size(); }
 
 
     // finds the first that is starting after
-    IDocumentMarkAccess::const_iterator_t 
MarkManager::findFirstBookmarkStartsAfter(const SwPosition& rPos) const
+    IDocumentMarkAccess::const_iterator 
MarkManager::findFirstBookmarkStartsAfter(const SwPosition& rPos) const
     {
         return std::upper_bound(
             m_vBookmarks.begin(),
@@ -1728,12 +1596,12 @@ namespace sw::mark
     Fieldmark* MarkManager::getFieldmarkBefore(const SwPosition& rPos, bool 
bLoop) const
         { return dynamic_cast<Fieldmark*>(lcl_getMarkBefore(m_vFieldmarks, 
rPos, bLoop)); }
 
-    IDocumentMarkAccess::const_iterator_t 
MarkManager::getAnnotationMarksBegin() const
+    IDocumentMarkAccess::const_iterator MarkManager::getAnnotationMarksBegin() 
const
     {
         return m_vAnnotationMarks.begin();
     }
 
-    IDocumentMarkAccess::const_iterator_t MarkManager::getAnnotationMarksEnd() 
const
+    IDocumentMarkAccess::const_iterator MarkManager::getAnnotationMarksEnd() 
const
     {
         return m_vAnnotationMarks.end();
     }
@@ -1743,10 +1611,9 @@ namespace sw::mark
         return m_vAnnotationMarks.size();
     }
 
-    IDocumentMarkAccess::const_iterator_t MarkManager::findAnnotationMark( 
const OUString& rName ) const
+    IDocumentMarkAccess::const_iterator MarkManager::findAnnotationMark( const 
OUString& rName ) const
     {
-        auto const ret = lcl_FindMarkByName( rName, 
m_vAnnotationMarks.begin(), m_vAnnotationMarks.end() );
-        return IDocumentMarkAccess::iterator(ret);
+        return lcl_FindMarkByName( rName, m_vAnnotationMarks.begin(), 
m_vAnnotationMarks.end() );
     }
 
     MarkBase* MarkManager::getAnnotationMarkFor(const SwPosition& rPos) const
@@ -1761,7 +1628,7 @@ namespace sw::mark
     }
 
     // finds the first that is starting after
-    IDocumentMarkAccess::const_iterator_t 
MarkManager::findFirstAnnotationStartsAfter(const SwPosition& rPos) const
+    IDocumentMarkAccess::const_iterator 
MarkManager::findFirstAnnotationStartsAfter(const SwPosition& rPos) const
     {
         return std::upper_bound(
             m_vAnnotationMarks.begin(),
@@ -1782,7 +1649,7 @@ namespace sw::mark
     }
 
     // find helper bookmark of annotations on tracked deletions
-    IDocumentMarkAccess::const_iterator_t 
MarkManager::findAnnotationBookmark(const OUString& rName) const
+    IDocumentMarkAccess::const_iterator 
MarkManager::findAnnotationBookmark(const OUString& rName) const
     {
         OUString sAnnotationBookmarkName(rName + S_ANNOTATION_BOOKMARK);
         return findBookmark(sAnnotationBookmarkName);
@@ -1801,7 +1668,7 @@ namespace sw::mark
                   (nPos = rBookmarkName.indexOf(S_ANNOTATION_BOOKMARK)) > -1 )
             {
                 ::sw::UndoGuard const undoGuard(m_rDoc.GetIDocumentUndoRedo());
-                IDocumentMarkAccess::const_iterator_t pMark = 
findAnnotationMark(rBookmarkName.copy(0, nPos));
+                IDocumentMarkAccess::const_iterator pMark = 
findAnnotationMark(rBookmarkName.copy(0, nPos));
                 if ( pMark != getAnnotationMarksEnd() )
                 {
                     const SwPaM aPam((**iter).GetMarkStart(), 
(**pMark).GetMarkEnd());
diff --git a/sw/source/core/doc/docredln.cxx b/sw/source/core/doc/docredln.cxx
index 5744700d0fdc..e4f1f0f1de13 100644
--- a/sw/source/core/doc/docredln.cxx
+++ b/sw/source/core/doc/docredln.cxx
@@ -1795,8 +1795,7 @@ static void lcl_storeAnnotationMarks(SwDoc& rDoc, const 
SwPosition* pStt, const
         SwPosition const& rStartPos((**iter).GetMarkStart());
         if ( *pStt <= rStartPos && rStartPos < *pEnd )
         {
-            IDocumentMarkAccess::const_iterator_t pOldMark =
-                    rDMA.findAnnotationBookmark((**iter).GetName());
+            auto pOldMark = rDMA.findAnnotationBookmark((**iter).GetName());
             if ( pOldMark == rDMA.getBookmarksEnd() )
             {
                 // at start of redlines use a 1-character length bookmark range
diff --git a/sw/source/core/fields/postithelper.cxx 
b/sw/source/core/fields/postithelper.cxx
index c28de860e729..f9ea8eef4433 100644
--- a/sw/source/core/fields/postithelper.cxx
+++ b/sw/source/core/fields/postithelper.cxx
@@ -198,7 +198,7 @@ SwPostItHelper::SwLayoutStatus 
SwPostItHelper::getLayoutInfos(
                             if( !bDeleted )
                             {
                                 IDocumentMarkAccess& 
rDMA(*pTextNode->GetDoc().getIDocumentMarkAccess());
-                                IDocumentMarkAccess::const_iterator_t 
pAnnotationBookmark =
+                                auto pAnnotationBookmark =
                                     
rDMA.findAnnotationBookmark(pAnnotationMark->GetName());
                                 // tdf#140980 only really deleted, if there is 
no helper bookmark
                                 // in ChangesInMargin mode
diff --git a/sw/source/core/fields/reffld.cxx b/sw/source/core/fields/reffld.cxx
index 28ca54166a95..8ca0cce869e1 100644
--- a/sw/source/core/fields/reffld.cxx
+++ b/sw/source/core/fields/reffld.cxx
@@ -1330,7 +1330,7 @@ SwTextNode* SwGetRefFieldType::FindAnchor(SwDoc* pDoc, 
const OUString& rRefMark,
 
     case REF_BOOKMARK:
         {
-            IDocumentMarkAccess::const_iterator_t ppMark = 
pDoc->getIDocumentMarkAccess()->findMark(rRefMark);
+            auto ppMark = pDoc->getIDocumentMarkAccess()->findMark(rRefMark);
             if (ppMark != pDoc->getIDocumentMarkAccess()->getAllMarksEnd()
                 && (!pLayout || !pLayout->IsHideRedlines()
                     || !sw::IsMarkHidden(*pLayout, **ppMark)))
diff --git a/sw/source/core/inc/MarkManager.hxx 
b/sw/source/core/inc/MarkManager.hxx
index 7bae3a21c372..5a2415f9ff3a 100644
--- a/sw/source/core/inc/MarkManager.hxx
+++ b/sw/source/core/inc/MarkManager.hxx
@@ -72,29 +72,29 @@ namespace sw::mark {
 
             // deleters
             virtual std::unique_ptr<ILazyDeleter>
-                deleteMark(const const_iterator_t& ppMark, bool isMoveNodes) 
override;
+                deleteMark(const const_iterator& ppMark, bool isMoveNodes) 
override;
             virtual void deleteMark(const ::sw::mark::MarkBase* const pMark) 
override;
             virtual void clearAllMarks() override;
 
             // marks
-            virtual const_iterator_t getAllMarksBegin() const override;
-            virtual const_iterator_t getAllMarksEnd() const override;
+            virtual const_iterator getAllMarksBegin() const override;
+            virtual const_iterator getAllMarksEnd() const override;
             virtual sal_Int32 getAllMarksCount() const override;
-            virtual const_iterator_t findMark(const OUString& rName) const 
override;
-            virtual const_iterator_t findFirstMarkNotStartsBefore(const 
SwPosition& rPos) const override;
+            virtual const_iterator findMark(const OUString& rName) const 
override;
+            virtual const_iterator findFirstMarkNotStartsBefore(const 
SwPosition& rPos) const override;
 
             // bookmarks
             virtual bool isBookmarkDeleted(SwPaM const& rPaM, bool isReplace) 
const override;
-            virtual const_iterator_t getBookmarksBegin() const override;
-            virtual const_iterator_t getBookmarksEnd() const override;
+            virtual const_iterator getBookmarksBegin() const override;
+            virtual const_iterator getBookmarksEnd() const override;
             virtual sal_Int32 getBookmarksCount() const override;
-            virtual const_iterator_t findBookmark(const OUString& rName) const 
override;
-            virtual const_iterator_t findFirstBookmarkStartsAfter(const 
SwPosition& rPos) const override;
+            virtual const_iterator findBookmark(const OUString& rName) const 
override;
+            virtual const_iterator findFirstBookmarkStartsAfter(const 
SwPosition& rPos) const override;
             virtual ::sw::mark::MarkBase* getOneInnermostBookmarkFor(const 
SwPosition& rPos) const override;
 
             // Fieldmarks
-            virtual const_iterator_t getFieldmarksBegin() const override;
-            virtual const_iterator_t getFieldmarksEnd() const override;
+            virtual const_iterator getFieldmarksBegin() const override;
+            virtual const_iterator getFieldmarksEnd() const override;
             virtual sal_Int32 getFieldmarksCount() const override;
             virtual ::sw::mark::Fieldmark* getFieldmarkAt(const SwPosition& 
rPos) const override;
             virtual sw::mark::Fieldmark* getInnerFieldmarkFor(const 
SwPosition& rPos) const override;
@@ -114,12 +114,12 @@ namespace sw::mark {
             void dumpAsXml(xmlTextWriterPtr pWriter) const;
 
             // Annotation Marks
-            virtual const_iterator_t getAnnotationMarksBegin() const override;
-            virtual const_iterator_t getAnnotationMarksEnd() const override;
+            virtual const_iterator getAnnotationMarksBegin() const override;
+            virtual const_iterator getAnnotationMarksEnd() const override;
             virtual sal_Int32 getAnnotationMarksCount() const override;
-            virtual const_iterator_t findAnnotationMark( const OUString& rName 
) const override;
+            virtual const_iterator findAnnotationMark( const OUString& rName ) 
const override;
             virtual sw::mark::MarkBase* getAnnotationMarkFor(const SwPosition& 
rPos) const override;
-            virtual const_iterator_t findFirstAnnotationStartsAfter(const 
SwPosition& rPos) const override;
+            virtual const_iterator findFirstAnnotationStartsAfter(const 
SwPosition& rPos) const override;
 
             virtual void assureSortedMarkContainers() const override;
 
@@ -130,7 +130,7 @@ namespace sw::mark {
                 const OUString& rName, IDocumentMarkAccess::MarkType eMark,
                 sw::mark::InsertMode eMode,
                 SwPosition const* pSepPos = nullptr) override;
-            virtual const_iterator_t findAnnotationBookmark( const OUString& 
rName ) const override;
+            virtual const_iterator findAnnotationBookmark( const OUString& 
rName ) const override;
             virtual void restoreAnnotationMarks(bool bDelete = true) override;
 
         private:
diff --git a/sw/source/core/text/EnhancedPDFExportHelper.cxx 
b/sw/source/core/text/EnhancedPDFExportHelper.cxx
index db8b8654e96e..dfd3a95d8e46 100644
--- a/sw/source/core/text/EnhancedPDFExportHelper.cxx
+++ b/sw/source/core/text/EnhancedPDFExportHelper.cxx
@@ -2713,7 +2713,7 @@ void 
SwEnhancedPDFExportHelper::EnhancedPDFExport(LanguageType const eLanguageDe
             // 1. a name for the destination, formed from the standard OOo 
bookmark name
             // 2. the destination, obtained from where the bookmark 
destination lies
             IDocumentMarkAccess* const pMarkAccess = 
mrSh.GetDoc()->getIDocumentMarkAccess();
-            for(IDocumentMarkAccess::const_iterator_t ppMark = 
pMarkAccess->getBookmarksBegin();
+            for(auto ppMark = pMarkAccess->getBookmarksBegin();
                 ppMark != pMarkAccess->getBookmarksEnd();
                 ++ppMark)
             {
diff --git a/sw/source/core/txtnode/atrfld.cxx 
b/sw/source/core/txtnode/atrfld.cxx
index 1652786f6588..53846770f6d5 100644
--- a/sw/source/core/txtnode/atrfld.cxx
+++ b/sw/source/core/txtnode/atrfld.cxx
@@ -790,7 +790,7 @@ SwTextAnnotationField::~SwTextAnnotationField()
     SwDoc& rDoc = static_cast<const 
SwPostItFieldType*>(pPostItField->GetTyp())->GetDoc();
 
     IDocumentMarkAccess* pMarksAccess = rDoc.getIDocumentMarkAccess();
-    IDocumentMarkAccess::const_iterator_t pMark = 
pMarksAccess->findAnnotationMark( pPostItField->GetName() );
+    auto pMark = pMarksAccess->findAnnotationMark( pPostItField->GetName() );
     return pMark != pMarksAccess->getAnnotationMarksEnd()
            ? *pMark
            : nullptr;
diff --git a/sw/source/core/undo/unbkmk.cxx b/sw/source/core/undo/unbkmk.cxx
index c9f3fe46ffa1..d51afe99c779 100644
--- a/sw/source/core/undo/unbkmk.cxx
+++ b/sw/source/core/undo/unbkmk.cxx
@@ -54,7 +54,7 @@ void SwUndoBookmark::SetInDoc( SwDoc* pDoc )
 void SwUndoBookmark::ResetInDoc( SwDoc& rDoc )
 {
     IDocumentMarkAccess* const pMarkAccess = rDoc.getIDocumentMarkAccess();
-    for ( IDocumentMarkAccess::const_iterator_t ppBkmk = 
pMarkAccess->getAllMarksBegin();
+    for ( auto ppBkmk = pMarkAccess->getAllMarksBegin();
           ppBkmk != pMarkAccess->getAllMarksEnd();
           ++ppBkmk )
     {
@@ -135,7 +135,7 @@ SwRewriter SwUndoRenameBookmark::GetRewriter() const
 void SwUndoRenameBookmark::Rename(::sw::UndoRedoContext const & rContext, 
const OUString& sFrom, const OUString& sTo)
 {
     IDocumentMarkAccess* const pMarkAccess = 
rContext.GetDoc().getIDocumentMarkAccess();
-    IDocumentMarkAccess::const_iterator_t ppBkmk = 
pMarkAccess->findMark(sFrom);
+    auto ppBkmk = pMarkAccess->findMark(sFrom);
     if (ppBkmk != pMarkAccess->getAllMarksEnd())
     {
         pMarkAccess->renameMark( *ppBkmk, sTo );
diff --git a/sw/source/core/unocore/unocoll.cxx 
b/sw/source/core/unocore/unocoll.cxx
index e00fa835f16a..7bd99220f931 100644
--- a/sw/source/core/unocore/unocoll.cxx
+++ b/sw/source/core/unocore/unocoll.cxx
@@ -1508,8 +1508,7 @@ sal_Int32 SwXBookmarks::getCount()
 
     sal_Int32 count(0);
     IDocumentMarkAccess* const pMarkAccess = GetDoc().getIDocumentMarkAccess();
-    for (IDocumentMarkAccess::const_iterator_t ppMark =
-            pMarkAccess->getBookmarksBegin();
+    for (auto ppMark = pMarkAccess->getBookmarksBegin();
          ppMark != pMarkAccess->getBookmarksEnd(); ++ppMark)
     {
         if (IDocumentMarkAccess::MarkType::BOOKMARK ==
@@ -1530,8 +1529,7 @@ uno::Any SwXBookmarks::getByIndex(sal_Int32 nIndex)
         throw IndexOutOfBoundsException();
 
     sal_Int32 count(0);
-    for (IDocumentMarkAccess::const_iterator_t ppMark =
-            pMarkAccess->getBookmarksBegin();
+    for (auto ppMark = pMarkAccess->getBookmarksBegin();
          ppMark != pMarkAccess->getBookmarksEnd(); ++ppMark)
     {
         if (IDocumentMarkAccess::MarkType::BOOKMARK ==
@@ -1557,7 +1555,7 @@ uno::Any SwXBookmarks::getByName(const OUString& rName)
 
     auto& rDoc = GetDoc();
     IDocumentMarkAccess* const pMarkAccess = rDoc.getIDocumentMarkAccess();
-    IDocumentMarkAccess::const_iterator_t ppBkmk = 
pMarkAccess->findBookmark(rName);
+    auto ppBkmk = pMarkAccess->findBookmark(rName);
     if(ppBkmk == pMarkAccess->getBookmarksEnd())
         throw NoSuchElementException();
 
@@ -1574,7 +1572,7 @@ uno::Sequence< OUString > SwXBookmarks::getElementNames()
 
     std::vector< OUString > ret;
     IDocumentMarkAccess* const pMarkAccess = GetDoc().getIDocumentMarkAccess();
-    for (IDocumentMarkAccess::const_iterator_t ppMark =
+    for (auto ppMark =
             pMarkAccess->getBookmarksBegin();
          ppMark != pMarkAccess->getBookmarksEnd(); ++ppMark)
     {
@@ -1605,7 +1603,7 @@ sal_Bool SwXBookmarks::hasElements()
     SolarMutexGuard aGuard;
 
     IDocumentMarkAccess* const pMarkAccess = GetDoc().getIDocumentMarkAccess();
-    for (IDocumentMarkAccess::const_iterator_t ppMark =
+    for (auto ppMark =
             pMarkAccess->getBookmarksBegin();
          ppMark != pMarkAccess->getBookmarksEnd(); ++ppMark)
     {
diff --git a/sw/source/core/unocore/unofield.cxx 
b/sw/source/core/unocore/unofield.cxx
index 530eb215cf22..bd4c2b89fbe9 100644
--- a/sw/source/core/unocore/unofield.cxx
+++ b/sw/source/core/unocore/unofield.cxx
@@ -2082,7 +2082,7 @@ SwXTextField::getAnchor()
     {
         const SwPostItField* pPostItField = static_cast<const 
SwPostItField*>(pField);
         IDocumentMarkAccess* pMarkAccess = 
m_pImpl->m_pDoc->getIDocumentMarkAccess();
-        for (IDocumentMarkAccess::const_iterator_t ppMark = 
pMarkAccess->getAnnotationMarksBegin(); ppMark != 
pMarkAccess->getAnnotationMarksEnd(); ++ppMark)
+        for (auto ppMark = pMarkAccess->getAnnotationMarksBegin(); ppMark != 
pMarkAccess->getAnnotationMarksEnd(); ++ppMark)
         {
             if ((*ppMark)->GetName() == pPostItField->GetName())
             {
diff --git a/sw/source/core/unocore/unoportenum.cxx 
b/sw/source/core/unocore/unoportenum.cxx
index 8ace7be1e60c..f7bdd63fa9f9 100644
--- a/sw/source/core/unocore/unoportenum.cxx
+++ b/sw/source/core/unocore/unoportenum.cxx
@@ -265,12 +265,12 @@ namespace
         // no need to consider annotation marks starting after aEndOfPara
         SwContentNode& rPtNd = 
*rUnoCursor.GetPoint()->GetNode().GetContentNode();
         SwPosition aEndOfPara( rPtNd, rPtNd.Len() );
-        const IDocumentMarkAccess::const_iterator_t pCandidatesEnd =
+        const auto pCandidatesEnd =
             pMarkAccess->findFirstAnnotationStartsAfter(aEndOfPara);
 
         // search for all annotation marks that have its start position in 
this paragraph
         const SwNode& rOwnNode = rUnoCursor.GetPoint()->GetNode();
-        for( IDocumentMarkAccess::const_iterator_t ppMark = 
pMarkAccess->getAnnotationMarksBegin();
+        for( auto ppMark = pMarkAccess->getAnnotationMarksBegin();
              ppMark != pCandidatesEnd;
              ++ppMark )
         {
diff --git a/sw/source/filter/html/htmlgrin.cxx 
b/sw/source/filter/html/htmlgrin.cxx
index 90cd96895a88..b292b9d69fd8 100644
--- a/sw/source/filter/html/htmlgrin.cxx
+++ b/sw/source/filter/html/htmlgrin.cxx
@@ -1430,7 +1430,7 @@ bool SwHTMLParser::HasCurrentParaBookmarks( bool 
bIgnoreStack ) const
     {
         // second step: when we didn't find a bookmark, check if there is one 
set already
         IDocumentMarkAccess* const pMarkAccess = 
m_xDoc->getIDocumentMarkAccess();
-        for(IDocumentMarkAccess::const_iterator_t ppMark = 
pMarkAccess->getAllMarksBegin();
+        for(auto ppMark = pMarkAccess->getAllMarksBegin();
             ppMark != pMarkAccess->getAllMarksEnd();
             ++ppMark)
         {
@@ -1494,7 +1494,7 @@ void SwHTMLParser::StripTrailingPara()
 
             // now we have to move maybe existing bookmarks
             IDocumentMarkAccess* const pMarkAccess = 
m_xDoc->getIDocumentMarkAccess();
-            for(IDocumentMarkAccess::const_iterator_t ppMark = 
pMarkAccess->getAllMarksBegin();
+            for(auto ppMark = pMarkAccess->getAllMarksBegin();
                 ppMark != pMarkAccess->getAllMarksEnd();
                 ++ppMark)
             {
diff --git a/sw/source/filter/html/swhtml.cxx b/sw/source/filter/html/swhtml.cxx
index 9808e8c8e0a9..767ce605fbf7 100644
--- a/sw/source/filter/html/swhtml.cxx
+++ b/sw/source/filter/html/swhtml.cxx
@@ -2910,7 +2910,7 @@ void SwHTMLParser::SetAttr_( bool bChkEnd, bool 
bBeforeTable,
                     {
                         const OUString sName( 
static_cast<SfxStringItem*>(pAttr->m_pItem.get())->GetValue() );
                         IDocumentMarkAccess* const pMarkAccess = 
m_xDoc->getIDocumentMarkAccess();
-                        IDocumentMarkAccess::const_iterator_t ppBkmk = 
pMarkAccess->findMark( sName );
+                        auto ppBkmk = pMarkAccess->findMark( sName );
                         if( ppBkmk != pMarkAccess->getAllMarksEnd() &&
                             (*ppBkmk)->GetMarkStart() == *aAttrPam.GetPoint() )
                             break; // do not generate duplicates on this 
position
diff --git a/sw/source/filter/writer/writer.cxx 
b/sw/source/filter/writer/writer.cxx
index 1775819253ae..101ca7bcac47 100644
--- a/sw/source/filter/writer/writer.cxx
+++ b/sw/source/filter/writer/writer.cxx
@@ -157,7 +157,7 @@ bool Writer::CopyNextPam( SwPaM ** ppPam )
 sal_Int32 Writer::FindPos_Bkmk(const SwPosition& rPos) const
 {
     const IDocumentMarkAccess* const pMarkAccess = 
m_pDoc->getIDocumentMarkAccess();
-    const IDocumentMarkAccess::const_iterator_t ppBkmk = 
pMarkAccess->findFirstMarkNotStartsBefore(rPos);
+    const auto ppBkmk = pMarkAccess->findFirstMarkNotStartsBefore(rPos);
     if(ppBkmk != pMarkAccess->getAllMarksEnd())
         return ppBkmk - pMarkAccess->getAllMarksBegin();
     return -1;
@@ -399,7 +399,7 @@ void Writer::AddFontItem( SfxItemPool& rPool, const 
SvxFontItem& rFont )
 void Writer::CreateBookmarkTable()
 {
     const IDocumentMarkAccess* const pMarkAccess = 
m_pDoc->getIDocumentMarkAccess();
-    for(IDocumentMarkAccess::const_iterator_t ppBkmk = 
pMarkAccess->getBookmarksBegin();
+    for(auto ppBkmk = pMarkAccess->getBookmarksBegin();
         ppBkmk != pMarkAccess->getBookmarksEnd();
         ++ppBkmk)
     {
diff --git a/sw/source/filter/ww8/ww8par.cxx b/sw/source/filter/ww8/ww8par.cxx
index 85ec351496af..9812199f1d64 100644
--- a/sw/source/filter/ww8/ww8par.cxx
+++ b/sw/source/filter/ww8/ww8par.cxx
@@ -1582,7 +1582,7 @@ bool SwWW8FltRefStack::IsFootnoteEdnBkmField(
         && !static_cast<const 
SwGetRefField*>(pField)->GetSetRefName().isEmpty())
     {
         const IDocumentMarkAccess* const pMarkAccess = 
m_rDoc.getIDocumentMarkAccess();
-        IDocumentMarkAccess::const_iterator_t ppBkmk =
+        auto ppBkmk =
             pMarkAccess->findMark( static_cast<const 
SwGetRefField*>(pField)->GetSetRefName() );
         if(ppBkmk != pMarkAccess->getAllMarksEnd())
         {
@@ -5421,7 +5421,7 @@ ErrCode SwWW8ImplReader::CoreLoad(WW8Glossary const 
*pGloss)
         IDocumentMarkAccess* const pMarkAccess = 
m_rDoc.getIDocumentMarkAccess();
         if ( pMarkAccess )
         {
-            IDocumentMarkAccess::const_iterator_t ppBkmk = 
pMarkAccess->findBookmark( u"_PictureBullets"_ustr );
+            auto ppBkmk = pMarkAccess->findBookmark( u"_PictureBullets"_ustr );
             if ( ppBkmk != pMarkAccess->getBookmarksEnd() &&
                        IDocumentMarkAccess::GetType(**ppBkmk) == 
IDocumentMarkAccess::MarkType::BOOKMARK )
             {
diff --git a/sw/source/ui/dialog/uiregionsw.cxx 
b/sw/source/ui/dialog/uiregionsw.cxx
index 6549901a0566..0cf29d4f769b 100644
--- a/sw/source/ui/dialog/uiregionsw.cxx
+++ b/sw/source/ui/dialog/uiregionsw.cxx
@@ -147,7 +147,7 @@ static void lcl_FillSubRegionList( SwWrtShell& rSh, 
weld::ComboBox& rSubRegions,
     rSubRegions.clear();
     lcl_FillList( rSh, rSubRegions, pAvailNames, nullptr );
     IDocumentMarkAccess* const pMarkAccess = rSh.getIDocumentMarkAccess();
-    for( IDocumentMarkAccess::const_iterator_t ppMark = 
pMarkAccess->getBookmarksBegin();
+    for( auto ppMark = pMarkAccess->getBookmarksBegin();
         ppMark != pMarkAccess->getBookmarksEnd();
         ++ppMark)
     {
diff --git a/sw/source/ui/fldui/fldref.cxx b/sw/source/ui/fldui/fldref.cxx
index dea60485a001..44013b89edef 100644
--- a/sw/source/ui/fldui/fldref.cxx
+++ b/sw/source/ui/fldui/fldref.cxx
@@ -584,7 +584,7 @@ void SwFieldRefPage::UpdateSubType(const OUString& 
filterString)
         {
             // get all text marks
             IDocumentMarkAccess* const pMarkAccess = 
pSh->getIDocumentMarkAccess();
-            for(IDocumentMarkAccess::const_iterator_t ppMark = 
pMarkAccess->getBookmarksBegin();
+            for(auto ppMark = pMarkAccess->getBookmarksBegin();
                 ppMark != pMarkAccess->getBookmarksEnd();
                 ++ppMark)
             {
diff --git a/sw/source/ui/misc/bookmark.cxx b/sw/source/ui/misc/bookmark.cxx
index 6bd3ed243671..d6bbaf0e4b1d 100644
--- a/sw/source/ui/misc/bookmark.cxx
+++ b/sw/source/ui/misc/bookmark.cxx
@@ -326,7 +326,7 @@ bool SwInsertBookmarkDlg::HaveBookmarksChanged()
 
     std::vector<std::pair<sw::mark::MarkBase*, OUString>>::const_iterator 
aListIter
         = m_aTableBookmarks.begin();
-    for (IDocumentMarkAccess::const_iterator_t ppBookmark = 
pMarkAccess->getBookmarksBegin();
+    for (auto ppBookmark = pMarkAccess->getBookmarksBegin();
          ppBookmark != pMarkAccess->getBookmarksEnd(); ++ppBookmark)
     {
         if (IDocumentMarkAccess::MarkType::BOOKMARK == 
IDocumentMarkAccess::GetType(**ppBookmark))
@@ -349,7 +349,7 @@ void SwInsertBookmarkDlg::PopulateTable()
     m_xBookmarksBox->clear();
 
     IDocumentMarkAccess* const pMarkAccess = m_rSh.getIDocumentMarkAccess();
-    for (IDocumentMarkAccess::const_iterator_t ppBookmark = 
pMarkAccess->getBookmarksBegin();
+    for (auto ppBookmark = pMarkAccess->getBookmarksBegin();
          ppBookmark != pMarkAccess->getBookmarksEnd(); ++ppBookmark)
     {
         if (IDocumentMarkAccess::MarkType::BOOKMARK == 
IDocumentMarkAccess::GetType(**ppBookmark))
diff --git a/sw/source/ui/vba/vbaformfields.cxx 
b/sw/source/ui/vba/vbaformfields.cxx
index 7f8a3ef5de1b..b7830d975e3a 100644
--- a/sw/source/ui/vba/vbaformfields.cxx
+++ b/sw/source/ui/vba/vbaformfields.cxx
@@ -40,7 +40,7 @@ static sw::mark::Fieldmark* lcl_getFieldmark(std::string_view 
rName, sal_Int32&
 
     sal_Int32 nCounter = 0;
     std::vector<OUString> vElementNames;
-    IDocumentMarkAccess::iterator aIter = pMarkAccess->getFieldmarksBegin();
+    auto aIter = pMarkAccess->getFieldmarksBegin();
     while (aIter != pMarkAccess->getFieldmarksEnd())
     {
         switch (IDocumentMarkAccess::GetType(**aIter))
diff --git a/sw/source/uibase/dochdl/swdtflvr.cxx 
b/sw/source/uibase/dochdl/swdtflvr.cxx
index 603555aee7cb..1ed55b93f36a 100644
--- a/sw/source/uibase/dochdl/swdtflvr.cxx
+++ b/sw/source/uibase/dochdl/swdtflvr.cxx
@@ -885,7 +885,7 @@ static void DeleteDDEMarks(SwDoc & rDest)
     IDocumentMarkAccess *const pMarkAccess = rDest.getIDocumentMarkAccess();
     std::vector< ::sw::mark::MarkBase* > vDdeMarks;
     // find all DDE-Bookmarks
-    for (IDocumentMarkAccess::const_iterator_t ppMark = 
pMarkAccess->getAllMarksBegin();
+    for (auto ppMark = pMarkAccess->getAllMarksBegin();
         ppMark != pMarkAccess->getAllMarksEnd();
         ++ppMark)
     {
@@ -4503,7 +4503,7 @@ bool SwTransferDdeLink::WriteData( SvStream& rStrm )
                                          
m_pDocShell->GetTitle(SFX_TITLE_FULLNAME), m_sName);
 
     IDocumentMarkAccess* const pMarkAccess = 
m_pDocShell->GetDoc()->getIDocumentMarkAccess();
-    IDocumentMarkAccess::const_iterator_t ppMark = 
pMarkAccess->findMark(m_sName);
+    auto ppMark = pMarkAccess->findMark(m_sName);
     if(ppMark != pMarkAccess->getAllMarksEnd()
         && IDocumentMarkAccess::GetType(**ppMark) != 
IDocumentMarkAccess::MarkType::BOOKMARK)
     {
diff --git a/sw/source/uibase/docvw/edtwin2.cxx 
b/sw/source/uibase/docvw/edtwin2.cxx
index dd1ae2ffe3ab..ff9732e5a7ba 100644
--- a/sw/source/uibase/docvw/edtwin2.cxx
+++ b/sw/source/uibase/docvw/edtwin2.cxx
@@ -415,8 +415,7 @@ void SwEditWin::RequestHelp(const HelpEvent &rEvt)
                 {
                     OUString sTmpSearchStr = sText.copy( 1 );
                     IDocumentMarkAccess* pMarkAccess = 
rSh.getIDocumentMarkAccess();
-                    IDocumentMarkAccess::const_iterator_t ppBkmk =
-                                    pMarkAccess->findBookmark( sTmpSearchStr );
+                    auto ppBkmk = pMarkAccess->findBookmark( sTmpSearchStr );
                     if ( ppBkmk != pMarkAccess->getBookmarksEnd() &&
                          IDocumentMarkAccess::GetType(**ppBkmk)
                             == 
IDocumentMarkAccess::MarkType::CROSSREF_HEADING_BOOKMARK )
diff --git a/sw/source/uibase/shells/textfld.cxx 
b/sw/source/uibase/shells/textfld.cxx
index 275745eb2aea..e6440e8a5448 100644
--- a/sw/source/uibase/shells/textfld.cxx
+++ b/sw/source/uibase/shells/textfld.cxx
@@ -1115,7 +1115,7 @@ FIELD_INSERT:
 
                 // Allow wizard to be re-run: delete previously 
wizard-inserted page number.
                 // Try before creating non-shared header: avoid copying ODD 
bookmark onto EVEN page.
-                IDocumentMarkAccess::const_iterator_t ppMark = rIDMA.findMark(
+                auto ppMark = rIDMA.findMark(
                     sBookmarkName + OUString::number(rSh.GetVirtPageNum()));
                 if (ppMark != rIDMA.getAllMarksEnd() && *ppMark)
                 {
diff --git a/sw/source/uibase/shells/textsh1.cxx 
b/sw/source/uibase/shells/textsh1.cxx
index 6c450142b605..f559fdc17792 100644
--- a/sw/source/uibase/shells/textsh1.cxx
+++ b/sw/source/uibase/shells/textsh1.cxx
@@ -1231,7 +1231,7 @@ void SwTextShell::Execute(SfxRequest &rReq)
             // collect and sort navigator reminder names
             IDocumentMarkAccess* const pMarkAccess = 
rWrtSh.getIDocumentMarkAccess();
             std::vector< OUString > vNavMarkNames;
-            for(IDocumentMarkAccess::const_iterator_t ppMark = 
pMarkAccess->getAllMarksBegin();
+            for(auto ppMark = pMarkAccess->getAllMarksBegin();
                 ppMark != pMarkAccess->getAllMarksEnd();
                 ++ppMark)
             {
diff --git a/sw/source/uibase/uiview/view2.cxx 
b/sw/source/uibase/uiview/view2.cxx
index ed8107b48000..20f331c91bee 100644
--- a/sw/source/uibase/uiview/view2.cxx
+++ b/sw/source/uibase/uiview/view2.cxx
@@ -2242,7 +2242,7 @@ void SwView::ExecuteStatusLine(SfxRequest &rReq)
                 const sal_Int32 nIdx = static_cast<const 
SfxUInt16Item*>(pItem)->GetValue();
                 if(nIdx < pMarkAccess->getBookmarksCount())
                 {
-                    const IDocumentMarkAccess::const_iterator_t ppBookmark = 
rSh.getIDocumentMarkAccess()->getBookmarksBegin() + nIdx;
+                    const auto ppBookmark = 
rSh.getIDocumentMarkAccess()->getBookmarksBegin() + nIdx;
                     rSh.EnterStdMode();
                     rSh.GotoMark( *ppBookmark );
                 }
@@ -2616,7 +2616,7 @@ bool SwView::JumpToSwMark( std::u16string_view rMark )
             while( -1 != ( nLastPos = sMark.indexOf( cMarkSeparator, nPos + 1 
)) )
                 nPos = nLastPos;
 
-        IDocumentMarkAccess::const_iterator_t ppMark;
+        IDocumentMarkAccess::const_iterator ppMark;
         IDocumentMarkAccess* const pMarkAccess = 
m_pWrtShell->getIDocumentMarkAccess();
         if( -1 != nPos )
             sCmp = sMark.copy(nPos + 1).replaceAll(" ", "");
diff --git a/sw/source/uibase/uiview/viewmdi.cxx 
b/sw/source/uibase/uiview/viewmdi.cxx
index 8ded09973e91..e1bbb2fe6094 100644
--- a/sw/source/uibase/uiview/viewmdi.cxx
+++ b/sw/source/uibase/uiview/viewmdi.cxx
@@ -516,7 +516,7 @@ IMPL_LINK( SwView, MoveNavigationHdl, void*, p, void )
             // collect and sort navigator reminder names
             IDocumentMarkAccess* const pMarkAccess = 
rSh.getIDocumentMarkAccess();
             std::vector< OUString > vNavMarkNames;
-            for(IDocumentMarkAccess::const_iterator_t ppMark = 
pMarkAccess->getAllMarksBegin();
+            for(auto ppMark = pMarkAccess->getAllMarksBegin();
                 ppMark != pMarkAccess->getAllMarksEnd();
                 ++ppMark)
             {
diff --git a/sw/source/uibase/utlui/bookctrl.cxx 
b/sw/source/uibase/utlui/bookctrl.cxx
index 04c16b105f24..0352934ece4c 100644
--- a/sw/source/uibase/utlui/bookctrl.cxx
+++ b/sw/source/uibase/utlui/bookctrl.cxx
@@ -83,10 +83,10 @@ void SwBookmarkControl::Command( const CommandEvent& rCEvt )
     std::unique_ptr<weld::Menu> xPopup(xBuilder->weld_menu(u"menu"_ustr));
 
     IDocumentMarkAccess* const pMarkAccess = 
pWrtShell->getIDocumentMarkAccess();
-    IDocumentMarkAccess::const_iterator_t ppBookmarkStart = 
pMarkAccess->getBookmarksBegin();
+    auto ppBookmarkStart = pMarkAccess->getBookmarksBegin();
     sal_uInt32 nPopupId = 1;
     std::map<sal_Int32, sal_uInt16> aBookmarkIdx;
-    for(IDocumentMarkAccess::const_iterator_t ppBookmark = ppBookmarkStart;
+    for(auto ppBookmark = ppBookmarkStart;
         ppBookmark != pMarkAccess->getBookmarksEnd();
         ++ppBookmark)
     {
diff --git a/sw/source/uibase/utlui/content.cxx 
b/sw/source/uibase/utlui/content.cxx
index 1910c1605757..de71d32cdc86 100644
--- a/sw/source/uibase/utlui/content.cxx
+++ b/sw/source/uibase/utlui/content.cxx
@@ -636,7 +636,7 @@ void SwContentType::FillMemberList(bool* pbContentChanged)
         {
             tools::Long nYPos = 0;
             IDocumentMarkAccess* const pMarkAccess = 
m_pWrtShell->getIDocumentMarkAccess();
-            for(IDocumentMarkAccess::const_iterator_t ppBookmark = 
pMarkAccess->getBookmarksBegin();
+            for(auto ppBookmark = pMarkAccess->getBookmarksBegin();
                 ppBookmark != pMarkAccess->getBookmarksEnd();
                 ++ppBookmark)
             {
@@ -4544,7 +4544,7 @@ void SwContentTree::UpdateTracking()
     {
         SwPaM* pCursor = m_pActiveShell->GetCursor();
         IDocumentMarkAccess* const pMarkAccess = 
m_pActiveShell->getIDocumentMarkAccess();
-        IDocumentMarkAccess::const_iterator_t ppBookmark = 
pMarkAccess->getBookmarksBegin();
+        auto ppBookmark = pMarkAccess->getBookmarksBegin();
         if (pCursor && ppBookmark != pMarkAccess->getBookmarksEnd()
             && !(m_bIsRoot && m_nRootType != ContentTypeId::BOOKMARK))
         {
@@ -4813,7 +4813,7 @@ bool 
SwContentTree::IsSelectedEntryCurrentDocCursorPosition(const weld::TreeIter
     {
         SwPaM* pCursor = m_pActiveShell->GetCursor();
         IDocumentMarkAccess* const pMarkAccess = 
m_pActiveShell->getIDocumentMarkAccess();
-        IDocumentMarkAccess::const_iterator_t ppBookmark = 
pMarkAccess->getBookmarksBegin();
+        auto ppBookmark = pMarkAccess->getBookmarksBegin();
         if (pCursor && ppBookmark != pMarkAccess->getBookmarksEnd())
         {
             OUString sBookmarkName;
@@ -7059,7 +7059,7 @@ void SwContentTree::BringBookmarksToAttention(const 
std::vector<OUString>& rName
     IDocumentMarkAccess* const pMarkAccess = 
m_pActiveShell->getIDocumentMarkAccess();
     for (const auto& rName : rNames)
     {
-        IDocumentMarkAccess::const_iterator_t ppBkmk = 
pMarkAccess->findBookmark(rName);
+        auto ppBkmk = pMarkAccess->findBookmark(rName);
         if (ppBkmk == pMarkAccess->getBookmarksEnd())
             continue;
         SwPosition aMarkStart = (*ppBkmk)->GetMarkStart();
diff --git a/sw/source/uibase/wrtsh/wrtsh3.cxx 
b/sw/source/uibase/wrtsh/wrtsh3.cxx
index b8ce4dcde2c2..55ba862216b7 100644
--- a/sw/source/uibase/wrtsh/wrtsh3.cxx
+++ b/sw/source/uibase/wrtsh/wrtsh3.cxx
@@ -263,7 +263,7 @@ void SwWrtShell::DrawSelChanged( )
 
 void SwWrtShell::GotoMark( const OUString& rName )
 {
-    IDocumentMarkAccess::const_iterator_t ppMark = 
getIDocumentMarkAccess()->findMark( rName );
+    auto ppMark = getIDocumentMarkAccess()->findMark( rName );
     if (ppMark == getIDocumentMarkAccess()->getAllMarksEnd())
         return;
     MoveBookMark( BOOKMARK_INDEX, *ppMark );

Reply via email to