Drop SfxItemIter::FirstItem

It is always used right after the iterator is created, where simple
GetCurItem gives the same value without reseting the position.

Change-Id: I871dc7989b79e13f06436ef7928692645b5209f6
Reviewed-on: https://gerrit.libreoffice.org/79903
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
diff --git a/chart2/source/controller/itemsetwrapper/ItemConverter.cxx b/chart2/source/controller/itemsetwrapper/ItemConverter.cxx
index e94875b..0a27a52 100644
--- a/chart2/source/controller/itemsetwrapper/ItemConverter.cxx
+++ b/chart2/source/controller/itemsetwrapper/ItemConverter.cxx
@@ -154,11 +154,10 @@ bool ItemConverter::ApplyItemSet( const SfxItemSet & rItemSet )

    bool bItemsChanged = false;
    SfxItemIter aIter( rItemSet );
    const SfxPoolItem * pItem = aIter.FirstItem();
    tPropertyNameWithMemberId aProperty;
    uno::Any aValue;

    while( pItem )
    for (const SfxPoolItem* pItem = aIter.GetCurItem(); pItem; pItem = aIter.NextItem())
    {
        if( rItemSet.GetItemState( pItem->Which(), false ) == SfxItemState::SET )
        {
@@ -188,7 +187,6 @@ bool ItemConverter::ApplyItemSet( const SfxItemSet & rItemSet )
                bItemsChanged = ApplySpecialItem( pItem->Which(), rItemSet ) || bItemsChanged;
            }
        }
        pItem = aIter.NextItem();
    }

    return bItemsChanged;
diff --git a/include/svl/itemiter.hxx b/include/svl/itemiter.hxx
index bfcc437..3d690c9 100644
--- a/include/svl/itemiter.hxx
+++ b/include/svl/itemiter.hxx
@@ -36,11 +36,6 @@ public:
    ~SfxItemIter();

    /// get item, or null if no items
    const SfxPoolItem* FirstItem()
    {
        m_nCurrent = m_nStart;
        return m_rSet.m_nCount ? *(m_rSet.m_pItems.get() + m_nCurrent) : nullptr;
    }
    const SfxPoolItem* GetCurItem() const
    {
        return m_rSet.m_nCount ? *(m_rSet.m_pItems.get() + m_nCurrent) : nullptr;
diff --git a/sc/source/core/data/docpool.cxx b/sc/source/core/data/docpool.cxx
index 74f6099..d9515f6 100644
--- a/sc/source/core/data/docpool.cxx
+++ b/sc/source/core/data/docpool.cxx
@@ -400,9 +400,8 @@ static bool lcl_HFPresentation
    }

    SfxItemIter aIter( rSet );
    pItem = aIter.FirstItem();

    while( pItem )
    for (pItem = aIter.GetCurItem(); pItem; pItem = aIter.NextItem())
    {
        sal_uInt16 nWhich = pItem->Which();

@@ -466,8 +465,6 @@ static bool lcl_HFPresentation
        {
            rText = rText + aText + " + ";
        }

        pItem = aIter.NextItem();
    }

    rText = comphelper::string::stripEnd(rText, ' ');
diff --git a/sfx2/source/control/bindings.cxx b/sfx2/source/control/bindings.cxx
index dfbf7c8..0381423 100644
--- a/sfx2/source/control/bindings.cxx
+++ b/sfx2/source/control/bindings.cxx
@@ -396,7 +396,7 @@ void SfxBindings::SetState
    if ( nRegLevel )
    {
        SfxItemIter aIter(rSet);
        for ( const SfxPoolItem *pItem = aIter.FirstItem();
        for ( const SfxPoolItem *pItem = aIter.GetCurItem();
              pItem;
              pItem = aIter.NextItem() )
            Invalidate( pItem->Which() );
@@ -410,7 +410,7 @@ void SfxBindings::SetState
        // Iterate over the itemset, update if the slot bound
        //! Bug: Use WhichIter and possibly send VoidItems up
        SfxItemIter aIter(rSet);
        for ( const SfxPoolItem *pItem = aIter.FirstItem();
        for ( const SfxPoolItem *pItem = aIter.GetCurItem();
              pItem;
              pItem = aIter.NextItem() )
        {
diff --git a/sfx2/source/control/dispatch.cxx b/sfx2/source/control/dispatch.cxx
index 51e04d39..e7cf277 100644
--- a/sfx2/source/control/dispatch.cxx
+++ b/sfx2/source/control/dispatch.cxx
@@ -901,7 +901,7 @@ const SfxPoolItem* SfxDispatcher::Execute(sal_uInt16 nSlot, SfxCallMode nCall,
        if ( pArgs )
        {
            SfxItemIter aIter(*pArgs);
            for ( const SfxPoolItem *pArg = aIter.FirstItem();
            for ( const SfxPoolItem *pArg = aIter.GetCurItem();
                pArg;
                pArg = aIter.NextItem() )
                MappedPut_Impl( aSet, *pArg );
@@ -991,7 +991,7 @@ const SfxPoolItem* SfxDispatcher::Execute(sal_uInt16 nSlot, SfxCallMode eCall,
    {
        SfxAllItemSet aSet( pShell->GetPool() );
        SfxItemIter aIter(rArgs);
        for ( const SfxPoolItem *pArg = aIter.FirstItem();
        for ( const SfxPoolItem *pArg = aIter.GetCurItem();
              pArg;
              pArg = aIter.NextItem() )
            MappedPut_Impl( aSet, *pArg );
@@ -1765,7 +1765,7 @@ bool SfxDispatcher::FillState_(const SfxSlotServer& rSvr, SfxItemSet& rState,
        {
            SfxInterface *pIF = pSh->GetInterface();
            SfxItemIter aIter( rState );
            for ( const SfxPoolItem *pItem = aIter.FirstItem();
            for ( const SfxPoolItem *pItem = aIter.GetCurItem();
                  pItem;
                  pItem = aIter.NextItem() )
            {
diff --git a/sfx2/source/control/request.cxx b/sfx2/source/control/request.cxx
index dfab1b8..d4f48cc 100644
--- a/sfx2/source/control/request.cxx
+++ b/sfx2/source/control/request.cxx
@@ -477,12 +477,10 @@ void SfxRequest::Done
    else
    {
        SfxItemIter aIter(rSet);
        const SfxPoolItem* pItem = aIter.FirstItem();
        while(pItem)
        for (const SfxPoolItem* pItem = aIter.GetCurItem(); pItem; pItem = aIter.NextItem())
        {
            if(!IsInvalidItem(pItem))
                pArgs->Put(*pItem,pItem->Which());
            pItem = aIter.NextItem();
        }
    }
}
@@ -620,7 +618,7 @@ void SfxRequest::Done_Impl
        {
            // iterate over Items
            SfxItemIter aIter(*pSet);
            for ( const SfxPoolItem* pItem = aIter.FirstItem(); pItem; pItem = aIter.NextItem() )
            for ( const SfxPoolItem* pItem = aIter.GetCurItem(); pItem; pItem = aIter.NextItem() )
            {
                // to determine the slot ID for the individual item
                sal_uInt16 nSlotId = rPool.GetSlotId( pItem->Which() );
diff --git a/svl/source/items/itemset.cxx b/svl/source/items/itemset.cxx
index f325cec..364fb42 100644
--- a/svl/source/items/itemset.cxx
+++ b/svl/source/items/itemset.cxx
@@ -1497,7 +1497,7 @@ void SfxItemSet::dumpAsXml(xmlTextWriterPtr pWriter) const
{
    xmlTextWriterStartElement(pWriter, BAD_CAST("SfxItemSet"));
    SfxItemIter aIter(*this);
    for (const SfxPoolItem* pItem = aIter.FirstItem(); pItem; pItem = aIter.NextItem())
    for (const SfxPoolItem* pItem = aIter.GetCurItem(); pItem; pItem = aIter.NextItem())
         pItem->dumpAsXml(pWriter);
    xmlTextWriterEndElement(pWriter);
}
diff --git a/svl/source/items/style.cxx b/svl/source/items/style.cxx
index 6a8b255..950201b 100644
--- a/svl/source/items/style.cxx
+++ b/svl/source/items/style.cxx
@@ -327,10 +327,9 @@ OUString SfxStyleSheetBase::GetDescription( MapUnit eMetric )
{
    SfxItemIter aIter( GetItemSet() );
    OUStringBuffer aDesc;
    const SfxPoolItem* pItem = aIter.FirstItem();

    IntlWrapper aIntlWrapper(SvtSysLocale().GetUILanguageTag());
    while ( pItem )
    for (const SfxPoolItem* pItem = aIter.GetCurItem(); pItem; pItem = aIter.NextItem())
    {
        OUString aItemPresentation;

@@ -343,7 +342,6 @@ OUString SfxStyleSheetBase::GetDescription( MapUnit eMetric )
            if ( !aItemPresentation.isEmpty() )
                aDesc.append(aItemPresentation);
        }
        pItem = aIter.NextItem();
    }
    return aDesc.makeStringAndClear();
}
diff --git a/svx/source/dialog/hdft.cxx b/svx/source/dialog/hdft.cxx
index 3243037..fc11a54 100644
--- a/svx/source/dialog/hdft.cxx
+++ b/svx/source/dialog/hdft.cxx
@@ -94,13 +94,11 @@ namespace svx {
        if ( pDlg->Execute() == RET_OK && pDlg->GetOutputItemSet() )
        {
            SfxItemIter aIter( *pDlg->GetOutputItemSet() );
            const SfxPoolItem* pItem = aIter.FirstItem();

            while ( pItem )
            for (const SfxPoolItem* pItem = aIter.GetCurItem(); pItem; pItem = aIter.NextItem())
            {
                if ( !IsInvalidItem( pItem ) )
                    pBBSet->Put( *pItem );
                pItem = aIter.NextItem();
            }
            bRes = true;
        }
@@ -627,16 +625,13 @@ IMPL_LINK_NOARG(SvxHFPage, BackgroundHdl, weld::Button&, void)
    if(RET_OK == pDlg->Execute() && pDlg->GetOutputItemSet())
    {
        SfxItemIter aIter(*pDlg->GetOutputItemSet());
        const SfxPoolItem* pItem = aIter.FirstItem();

        while(pItem)
        for (const SfxPoolItem* pItem = aIter.GetCurItem(); pItem; pItem = aIter.NextItem())
        {
            if(!IsInvalidItem(pItem))
            {
                pBBSet->Put(*pItem);
            }

            pItem = aIter.NextItem();
        }

        {
diff --git a/svx/source/sdr/properties/textproperties.cxx b/svx/source/sdr/properties/textproperties.cxx
index e6e5143..1ba561ef 100644
--- a/svx/source/sdr/properties/textproperties.cxx
+++ b/svx/source/sdr/properties/textproperties.cxx
@@ -320,9 +320,9 @@ namespace sdr
                                    // which occur in StyleSheet, take care of
                                    // parents (!)
                                    SfxItemIter aIter(pNewStyleSheet->GetItemSet());
                                    const SfxPoolItem* pItem = aIter.FirstItem();

                                    while(pItem)
                                    for (const SfxPoolItem* pItem = aIter.GetCurItem(); pItem;
                                         pItem = aIter.NextItem())
                                    {
                                        if(!IsInvalidItem(pItem))
                                        {
@@ -333,7 +333,6 @@ namespace sdr
                                                rOutliner.RemoveCharAttribs(nPara, nW);
                                            }
                                        }
                                        pItem = aIter.NextItem();
                                    }
                                }
                            }
diff --git a/svx/source/svdraw/svdedtv1.cxx b/svx/source/svdraw/svdedtv1.cxx
index 7b2ac40..15d69fa 100644
--- a/svx/source/svdraw/svdedtv1.cxx
+++ b/svx/source/svdraw/svdedtv1.cxx
@@ -937,8 +937,7 @@ std::vector<sal_uInt16> GetAllCharPropIds(const SfxItemSet& rSet)
    std::vector<sal_uInt16> aCharWhichIds;
    {
        SfxItemIter aIter(rSet);
        const SfxPoolItem* pItem=aIter.FirstItem();
        while (pItem!=nullptr)
        for (const SfxPoolItem* pItem = aIter.GetCurItem(); pItem; pItem = aIter.NextItem())
        {
            if (!IsInvalidItem(pItem))
            {
@@ -946,7 +945,6 @@ std::vector<sal_uInt16> GetAllCharPropIds(const SfxItemSet& rSet)
                if (nWhich>=EE_CHAR_START && nWhich<=EE_CHAR_END)
                    aCharWhichIds.push_back( nWhich );
            }
            pItem=aIter.NextItem();
        }
    }
    return aCharWhichIds;
@@ -961,13 +959,13 @@ void SdrEditView::SetAttrToMarked(const SfxItemSet& rAttr, bool bReplaceAll)
    {
        bool bHasEEFeatureItems=false;
        SfxItemIter aIter(rAttr);
        const SfxPoolItem* pItem=aIter.FirstItem();
        while (!bHasEEFeatureItems && pItem!=nullptr) {
        for (const SfxPoolItem* pItem = aIter.GetCurItem(); !bHasEEFeatureItems && pItem;
             pItem = aIter.NextItem())
        {
            if (!IsInvalidItem(pItem)) {
                sal_uInt16 nW=pItem->Which();
                if (nW>=EE_FEATURE_START && nW<=EE_FEATURE_END) bHasEEFeatureItems=true;
            }
            pItem=aIter.NextItem();
        }
        if(bHasEEFeatureItems)
        {
diff --git a/svx/source/svdraw/svdedxv.cxx b/svx/source/svdraw/svdedxv.cxx
index ab18693..52b178b 100644
--- a/svx/source/svdraw/svdedxv.cxx
+++ b/svx/source/svdraw/svdedxv.cxx
@@ -2168,8 +2168,8 @@ bool SdrObjEditView::SetAttributes(const SfxItemSet& rSet, bool bReplaceAll)
        {
            bool bHasEEFeatureItems = false;
            SfxItemIter aIter(rSet);
            const SfxPoolItem* pItem = aIter.FirstItem();
            while (!bHasEEFeatureItems && pItem != nullptr)
            for (const SfxPoolItem* pItem = aIter.GetCurItem(); !bHasEEFeatureItems && pItem;
                 pItem = aIter.NextItem())
            {
                if (!IsInvalidItem(pItem))
                {
@@ -2177,8 +2177,6 @@ bool SdrObjEditView::SetAttributes(const SfxItemSet& rSet, bool bReplaceAll)
                    if (nW >= EE_FEATURE_START && nW <= EE_FEATURE_END)
                        bHasEEFeatureItems = true;
                }

                pItem = aIter.NextItem();
            }

            if (bHasEEFeatureItems)
diff --git a/svx/source/svdraw/svdpntv.cxx b/svx/source/svdraw/svdpntv.cxx
index 458a22f..ec2a3b1 100644
--- a/svx/source/svdraw/svdpntv.cxx
+++ b/svx/source/svdraw/svdpntv.cxx
@@ -967,13 +967,13 @@ void SdrPaintView::SetDefaultAttr(const SfxItemSet& rAttr, bool bReplaceAll)
    {
        bool bHasEEFeatureItems=false;
        SfxItemIter aIter(rAttr);
        const SfxPoolItem* pItem=aIter.FirstItem();
        while (!bHasEEFeatureItems && pItem!=nullptr) {
        for (const SfxPoolItem* pItem = aIter.GetCurItem(); !bHasEEFeatureItems && pItem;
             pItem = aIter.NextItem())
        {
            if (!IsInvalidItem(pItem)) {
                sal_uInt16 nW=pItem->Which();
                if (nW>=EE_FEATURE_START && nW<=EE_FEATURE_END) bHasEEFeatureItems=true;
            }
            pItem=aIter.NextItem();
        }

        if(bHasEEFeatureItems)
diff --git a/sw/source/core/doc/DocumentContentOperationsManager.cxx b/sw/source/core/doc/DocumentContentOperationsManager.cxx
index 3a22965..9292c83 100644
--- a/sw/source/core/doc/DocumentContentOperationsManager.cxx
+++ b/sw/source/core/doc/DocumentContentOperationsManager.cxx
@@ -1115,7 +1115,7 @@ namespace //local functions originally from docfmt.cxx
        if ( 1 == rChgSet.Count() )
        {
            SfxItemIter aIter( rChgSet );
            const SfxPoolItem* pItem = aIter.FirstItem();
            const SfxPoolItem* pItem = aIter.GetCurItem();
            if (pItem && !IsInvalidItem(pItem))
            {
                const sal_uInt16 nWhich = pItem->Which();
diff --git a/sw/source/core/doc/dbgoutsw.cxx b/sw/source/core/doc/dbgoutsw.cxx
index afedbfd..1e7a7be 100644
--- a/sw/source/core/doc/dbgoutsw.cxx
+++ b/sw/source/core/doc/dbgoutsw.cxx
@@ -251,13 +251,10 @@ const char * dbg_out(const SfxPoolItem * pItem)
static OUString lcl_dbg_out(const SfxItemSet & rSet)
{
    SfxItemIter aIter(rSet);
    const SfxPoolItem * pItem;
    bool bFirst = true;
    OUStringBuffer aStr = "[ ";

    pItem = aIter.FirstItem();

    while (pItem )
    for (const SfxPoolItem* pItem = aIter.GetCurItem(); pItem; pItem = aIter.NextItem())
    {
        if (!bFirst)
            aStr.append(", ");
@@ -268,8 +265,6 @@ static OUString lcl_dbg_out(const SfxItemSet & rSet)
            aStr.append("invalid");

        bFirst = false;

        pItem = aIter.NextItem();
    }

    aStr.append(" ]");
diff --git a/sw/source/core/doc/docfly.cxx b/sw/source/core/doc/docfly.cxx
index 58f4521..f67d05b 100644
--- a/sw/source/core/doc/docfly.cxx
+++ b/sw/source/core/doc/docfly.cxx
@@ -492,7 +492,7 @@ void SwDoc::CheckForUniqueItemForLineFillNameOrIndex(SfxItemSet& rSet)
    SwDrawModel* pDrawModel = getIDocumentDrawModelAccess().GetOrCreateDrawModel();
    SfxItemIter aIter(rSet);

    for(const SfxPoolItem* pItem = aIter.FirstItem(); pItem; pItem = aIter.NextItem())
    for (const SfxPoolItem* pItem = aIter.GetCurItem(); pItem; pItem = aIter.NextItem())
    {
        if (IsInvalidItem(pItem))
            continue;
diff --git a/sw/source/core/doc/docfmt.cxx b/sw/source/core/doc/docfmt.cxx
index c9ca44a..83ba56a 100644
--- a/sw/source/core/doc/docfmt.cxx
+++ b/sw/source/core/doc/docfmt.cxx
@@ -1831,8 +1831,7 @@ void SwDoc::SetFormatItemByAutoFormat( const SwPaM& rPam, const SfxItemSet& rSet
    const sal_Int32 nEnd(rPam.End()->nContent.GetIndex());
    std::vector<sal_uInt16> whichIds;
    SfxItemIter iter(rSet);
    for (SfxPoolItem const* pItem = iter.FirstItem();
            pItem; pItem = iter.NextItem())
    for (SfxPoolItem const* pItem = iter.GetCurItem(); pItem; pItem = iter.NextItem())
    {
        whichIds.push_back(pItem->Which());
        whichIds.push_back(pItem->Which());
@@ -1875,12 +1874,9 @@ void SwDoc::ChgFormat(SwFormat & rFormat, const SfxItemSet & rSet)
        {
            SfxItemIter aIter(aSet);

            const SfxPoolItem * pItem = aIter.FirstItem();
            while (pItem != nullptr)
            for (const SfxPoolItem* pItem = aIter.GetCurItem(); pItem; pItem = aIter.NextItem())
            {
                aOldSet.InvalidateItem(pItem->Which());

                pItem = aIter.NextItem();
            }
        }

diff --git a/sw/source/core/frmedt/fefly1.cxx b/sw/source/core/frmedt/fefly1.cxx
index 622eaf7..db4c888 100644
--- a/sw/source/core/frmedt/fefly1.cxx
+++ b/sw/source/core/frmedt/fefly1.cxx
@@ -1157,8 +1157,7 @@ void SwFEShell::ResetFlyFrameAttr( const SfxItemSet* pSet )
        StartAllAction();

        SfxItemIter aIter( *pSet );
        const SfxPoolItem* pItem = aIter.FirstItem();
        while( pItem )
        for (const SfxPoolItem* pItem = aIter.GetCurItem(); pItem; pItem = aIter.NextItem())
        {
            if( !IsInvalidItem( pItem ) )
            {
@@ -1166,7 +1165,6 @@ void SwFEShell::ResetFlyFrameAttr( const SfxItemSet* pSet )
                if( RES_ANCHOR != nWhich && RES_CHAIN != nWhich && RES_CNTNT != nWhich )
                    pFly->GetFormat()->ResetFormatAttr( nWhich );
            }
            pItem = aIter.NextItem();
        }

        EndAllActionAndCall();
diff --git a/sw/source/core/layout/atrfrm.cxx b/sw/source/core/layout/atrfrm.cxx
index b03a2a0..f657bf5 100644
--- a/sw/source/core/layout/atrfrm.cxx
+++ b/sw/source/core/layout/atrfrm.cxx
@@ -2519,7 +2519,7 @@ void SwFrameFormat::Modify( const SfxPoolItem* pOld, const SfxPoolItem* pNew )
                SfxItemIter aIter(*static_cast<const SwAttrSetChg*>(pNew)->GetChgSet());
                bool bReset(false);

                for(const SfxPoolItem* pItem = aIter.FirstItem(); pItem && !bReset; pItem = aIter.NextItem())
                for(const SfxPoolItem* pItem = aIter.GetCurItem(); pItem && !bReset; pItem = aIter.NextItem())
                {
                    bReset = !IsInvalidItem(pItem) && pItem->Which() >= XATTR_FILL_FIRST && pItem->Which() <= XATTR_FILL_LAST;
                }
diff --git a/sw/source/core/text/itratr.cxx b/sw/source/core/text/itratr.cxx
index c3e82b4..59b7277 100644
--- a/sw/source/core/text/itratr.cxx
+++ b/sw/source/core/text/itratr.cxx
@@ -438,7 +438,7 @@ bool SwAttrIter::Seek(TextFrameIndex const nNewPos)
static void InsertCharAttrs(SfxPoolItem const** pAttrs, SfxItemSet const& rItems)
{
    SfxItemIter iter(rItems);
    for (SfxPoolItem const* pItem = iter.FirstItem(); pItem; pItem = iter.NextItem())
    for (SfxPoolItem const* pItem = iter.GetCurItem(); pItem; pItem = iter.NextItem())
    {
        auto const nWhich(pItem->Which());
        if (isCHRATR(nWhich) && RES_CHRATR_RSID != nWhich)
diff --git a/sw/source/core/txtnode/ndtxt.cxx b/sw/source/core/txtnode/ndtxt.cxx
index 0626058..0623438 100644
--- a/sw/source/core/txtnode/ndtxt.cxx
+++ b/sw/source/core/txtnode/ndtxt.cxx
@@ -5288,7 +5288,7 @@ void SwTextNode::SwClientNotify( const SwModify& rModify, const SfxHint& rHint )
            {
                SfxItemIter aIter(*static_cast<const SwAttrSetChg*>(pNewValue)->GetChgSet());

                for(const SfxPoolItem* pItem = aIter.FirstItem(); pItem && !bReset; pItem = aIter.NextItem())
                for(const SfxPoolItem* pItem = aIter.GetCurItem(); pItem && !bReset; pItem = aIter.NextItem())
                {
                    bReset = !IsInvalidItem(pItem) && pItem->Which() >= XATTR_FILL_FIRST && pItem->Which() <= XATTR_FILL_LAST;
                }
diff --git a/sw/source/core/txtnode/thints.cxx b/sw/source/core/txtnode/thints.cxx
index 84ae915..79ab219 100644
--- a/sw/source/core/txtnode/thints.cxx
+++ b/sw/source/core/txtnode/thints.cxx
@@ -1786,7 +1786,7 @@ static bool lcl_IsIgnoredCharFormatForBullets(const sal_uInt16 nWhich)
void SwTextNode::TryCharSetExpandToNum(const SfxItemSet& aCharSet)
{
    SfxItemIter aIter( aCharSet );
    const SfxPoolItem* pItem = aIter.FirstItem();
    const SfxPoolItem* pItem = aIter.GetCurItem();
    if (!pItem)
        return;
    const sal_uInt16 nWhich = pItem->Which();
@@ -2766,8 +2766,8 @@ bool SwpHints::MergePortions( SwTextNode& rNode )
                        SfxItemIter iter2(set2);
                        if (set1.Count() == set2.Count())
                        {
                            for (SfxPoolItem const* pItem1 = iter1.FirstItem(),
                                                  * pItem2 = iter2.FirstItem();
                            for (SfxPoolItem const* pItem1 = iter1.GetCurItem(),
                                                  * pItem2 = iter2.GetCurItem();
                                 pItem1 && pItem2;
                                 pItem1 = iter1.NextItem(),
                                 pItem2 = iter2.NextItem())
diff --git a/sw/source/core/undo/rolbck.cxx b/sw/source/core/undo/rolbck.cxx
index 8d30afb..d500679 100644
--- a/sw/source/core/undo/rolbck.cxx
+++ b/sw/source/core/undo/rolbck.cxx
@@ -773,8 +773,8 @@ SwHistorySetAttrSet::SwHistorySetAttrSet( const SfxItemSet& rSet,
    , m_nNodeIndex( nNodePos )
{
    SfxItemIter aIter( m_OldSet ), aOrigIter( rSet );
    const SfxPoolItem* pItem = aIter.FirstItem(),
                     * pOrigItem = aOrigIter.FirstItem();
    const SfxPoolItem* pItem = aIter.GetCurItem(),
                     * pOrigItem = aOrigIter.GetCurItem();
    while (pItem && pOrigItem)
    {
        if( !rSetArr.count( pOrigItem->Which() ))
@@ -1316,7 +1316,7 @@ void SwRegHistory::Modify( const SfxPoolItem* pOld, const SfxPoolItem* pNew )
            {
                pNewHstr.reset( new SwHistorySetAttrSet( rSet, m_nNodeIndex, m_WhichIdSet ) );
            }
            else if (const SfxPoolItem* pItem = SfxItemIter( rSet ).FirstItem())
            else if (const SfxPoolItem* pItem = SfxItemIter(rSet).GetCurItem())
            {
                if ( m_WhichIdSet.count( pItem->Which() ) )
                {
@@ -1374,7 +1374,7 @@ bool SwRegHistory::InsertItems( const SfxItemSet& rSet,
    if ( m_pHistory && bInserted )
    {
        SfxItemIter aIter(rSet);
        for (SfxPoolItem const* pItem = aIter.FirstItem(); pItem; pItem = aIter.NextItem())
        for (SfxPoolItem const* pItem = aIter.GetCurItem(); pItem; pItem = aIter.NextItem())
        {   // check that the history recorded a hint to reset every item
            sal_uInt16 const nWhich(pItem->Which());
            sal_uInt16 const nExpected(
@@ -1435,12 +1435,10 @@ void SwRegHistory::MakeSetWhichIds()
        if( pSet && pSet->Count() )
        {
            SfxItemIter aIter( *pSet );
            const SfxPoolItem* pItem = aIter.FirstItem();
            while(pItem)
            for (const SfxPoolItem* pItem = aIter.GetCurItem(); pItem; pItem = aIter.NextItem())
            {
                sal_uInt16 nW = pItem->Which();
                m_WhichIdSet.insert( nW );
                pItem = aIter.NextItem();
            }
        }
    }
diff --git a/sw/source/core/unocore/unostyle.cxx b/sw/source/core/unocore/unostyle.cxx
index 683afef..2169cb9 100644
--- a/sw/source/core/unocore/unostyle.cxx
+++ b/sw/source/core/unocore/unostyle.cxx
@@ -4240,9 +4240,8 @@ uno::Sequence< beans::PropertyValue > SwXAutoStyle::getProperties()

    SfxItemSet& rSet = *mpSet;
    SfxItemIter aIter(rSet);
    const SfxPoolItem* pItem = aIter.FirstItem();

    while ( pItem )
    for (const SfxPoolItem* pItem = aIter.GetCurItem(); pItem; pItem = aIter.NextItem())
    {
        const sal_uInt16 nWID = pItem->Which();

@@ -4258,7 +4257,6 @@ uno::Sequence< beans::PropertyValue > SwXAutoStyle::getProperties()
                aPropertyVector.push_back( aPropertyValue );
            }
        }
        pItem = aIter.NextItem();
    }

    const sal_Int32 nCount = aPropertyVector.size();
diff --git a/sw/source/filter/html/htmlcss1.cxx b/sw/source/filter/html/htmlcss1.cxx
index 8ff8ab0..053b437 100644
--- a/sw/source/filter/html/htmlcss1.cxx
+++ b/sw/source/filter/html/htmlcss1.cxx
@@ -2241,8 +2241,7 @@ void SwHTMLParser::InsertParaAttrs( const SfxItemSet& rItemSet )
{
    SfxItemIter aIter( rItemSet );

    const SfxPoolItem *pItem = aIter.FirstItem();
    while( pItem )
    for (const SfxPoolItem* pItem = aIter.GetCurItem(); pItem; pItem = aIter.NextItem())
    {
        // search for the table entry of the item...
        sal_uInt16 nWhich = pItem->Which();
@@ -2258,8 +2257,6 @@ void SwHTMLParser::InsertParaAttrs( const SfxItemSet& rItemSet )
            if (!bSuccess)
                m_aParaAttrs.pop_back();
        }

        pItem = aIter.NextItem();
    }
}

diff --git a/sw/source/filter/html/htmlctxt.cxx b/sw/source/filter/html/htmlctxt.cxx
index 0c739bf..00f2198 100644
--- a/sw/source/filter/html/htmlctxt.cxx
+++ b/sw/source/filter/html/htmlctxt.cxx
@@ -566,8 +566,7 @@ void SwHTMLParser::InsertAttrs( SfxItemSet &rItemSet,

    SfxItemIter aIter( rItemSet );

    const SfxPoolItem *pItem = aIter.FirstItem();
    while( pItem )
    for (const SfxPoolItem* pItem = aIter.GetCurItem(); pItem; pItem = aIter.NextItem())
    {
        HTMLAttr **ppAttr = nullptr;

@@ -727,8 +726,6 @@ void SwHTMLParser::InsertAttrs( SfxItemSet &rItemSet,
            HTMLAttrs &rAttrs = pContext->GetAttrs();
            rAttrs.push_back( *ppAttr );
        }

        pItem = aIter.NextItem();
    }

    if( !rPropInfo.m_aId.isEmpty() )
diff --git a/sw/source/filter/html/htmldrawreader.cxx b/sw/source/filter/html/htmldrawreader.cxx
index 8226764..a382322 100644
--- a/sw/source/filter/html/htmldrawreader.cxx
+++ b/sw/source/filter/html/htmldrawreader.cxx
@@ -455,11 +455,9 @@ void SwHTMLParser::NewMarquee( HTMLTable *pCurTable )
    {
        SfxItemIter aIter( aStyleItemSet );

        const SfxPoolItem *pItem = aIter.FirstItem();
        while( pItem )
        for (const SfxPoolItem* pItem = aIter.GetCurItem(); pItem; pItem = aIter.NextItem())
        {
            PutEEPoolItem( aItemSet, *pItem );
            pItem = aIter.NextItem();
        }
    }

diff --git a/sw/source/uibase/app/docstyle.cxx b/sw/source/uibase/app/docstyle.cxx
index e802570..0f24525 100644
--- a/sw/source/uibase/app/docstyle.cxx
+++ b/sw/source/uibase/app/docstyle.cxx
@@ -832,7 +832,7 @@ OUString  SwDocStyleSheet::GetDescription(MapUnit eUnit)
        SfxItemIter aIter( *pSet );
        OUStringBuffer aDesc;

        for (const SfxPoolItem* pItem = aIter.FirstItem(); pItem; pItem = aIter.NextItem())
        for (const SfxPoolItem* pItem = aIter.GetCurItem(); pItem; pItem = aIter.NextItem())
        {
            if(!IsInvalidItem(pItem))
            {
@@ -883,7 +883,7 @@ OUString  SwDocStyleSheet::GetDescription(MapUnit eUnit)
        const drawing::FillStyle eFillStyle(pSet->Get(XATTR_FILLSTYLE).GetValue());
        const bool bUseFloatTransparence(pSet->Get(XATTR_FILLFLOATTRANSPARENCE).IsEnabled());

        for ( const SfxPoolItem* pItem = aIter.FirstItem(); pItem; pItem = aIter.NextItem() )
        for (const SfxPoolItem* pItem = aIter.GetCurItem(); pItem; pItem = aIter.NextItem())
        {
            if(!IsInvalidItem(pItem))
            {
diff --git a/sw/source/uibase/wrtsh/wrtsh1.cxx b/sw/source/uibase/wrtsh/wrtsh1.cxx
index dfd7e91..234413c 100644
--- a/sw/source/uibase/wrtsh/wrtsh1.cxx
+++ b/sw/source/uibase/wrtsh/wrtsh1.cxx
@@ -1600,8 +1600,7 @@ void SwWrtShell::AutoUpdatePara(SwTextFormatColl* pColl, const SfxItemSet& rStyl
    GetPaMAttr( pCursor, aCoreSet );
    bool bReset = false;
    SfxItemIter aParaIter( aCoreSet );
    const SfxPoolItem* pParaItem = aParaIter.FirstItem();
    while( pParaItem )
    for (auto pParaItem = aParaIter.GetCurItem(); pParaItem; pParaItem = aParaIter.NextItem())
    {
        if(!IsInvalidItem(pParaItem))
        {
@@ -1613,7 +1612,6 @@ void SwWrtShell::AutoUpdatePara(SwTextFormatColl* pColl, const SfxItemSet& rStyl
                bReset = true;
            }
        }
        pParaItem = aParaIter.NextItem();
    }
    StartAction();
    if(bReset)