summaryrefslogtreecommitdiff
path: root/svl/source
diff options
context:
space:
mode:
authorJochen Nitschke <j.nitschke+logerrit@ok.de>2017-02-04 11:44:27 +0100
committerJochen Nitschke <j.nitschke+logerrit@ok.de>2017-02-04 11:37:42 +0000
commitd584e2dcc0454e66151d888fb45c23ccb1634aa6 (patch)
tree784c067bdb12093e0f0b889490f92b23dd344ef9 /svl/source
parentf52eb759f61e1806014972cb736e07479f157aa6 (diff)
simplify SfxWhichIter
only one of 164 calls used the ctor with a restricting range. handle this special case. remove nFrom and nTo members. use operator[] on range pointer to highlight we access lower [0] and upper [1] range bound. remove dtor. Change-Id: I87b28502515e45bb190425eb88aa187ac0b5b2d2 Reviewed-on: https://gerrit.libreoffice.org/33911 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Jochen Nitschke <j.nitschke+logerrit@ok.de>
Diffstat (limited to 'svl/source')
-rw-r--r--svl/source/items/whiter.cxx39
1 files changed, 14 insertions, 25 deletions
diff --git a/svl/source/items/whiter.cxx b/svl/source/items/whiter.cxx
index d69960c6f628..88b487b02d30 100644
--- a/svl/source/items/whiter.cxx
+++ b/svl/source/items/whiter.cxx
@@ -21,44 +21,33 @@
#include <svl/whiter.hxx>
#include <svl/itemset.hxx>
-SfxWhichIter::SfxWhichIter( const SfxItemSet& rSet, sal_uInt16 nFromWh, sal_uInt16 nToWh ):
- pRanges(rSet.GetRanges()),
+SfxWhichIter::SfxWhichIter( const SfxItemSet& rSet ):
pStart(rSet.GetRanges()),
- nOfst(0), nFrom(nFromWh), nTo(nToWh)
-{
- if (nFrom > 0)
- (void)FirstWhich();
-}
-
-SfxWhichIter::~SfxWhichIter()
+ pRanges(pStart),
+ nOffset(0)
{
}
sal_uInt16 SfxWhichIter::NextWhich()
{
- while ( 0 != *pRanges )
+ if ( 0 == pRanges[0] )
+ return 0;
+
+ const sal_uInt16 nLastWhich = pRanges[0] + nOffset;
+ ++nOffset;
+ if (pRanges[1] == nLastWhich)
{
- const sal_uInt16 nLastWhich = *pRanges + nOfst;
- ++nOfst;
- if (*(pRanges+1) == nLastWhich)
- {
- pRanges += 2;
- nOfst = 0;
- }
- sal_uInt16 nWhich = *pRanges + nOfst;
- if ( 0 == nWhich || ( nWhich >= nFrom && nWhich <= nTo ) )
- return nWhich;
+ pRanges += 2;
+ nOffset = 0;
}
- return 0;
+ return pRanges[0] + nOffset;
}
sal_uInt16 SfxWhichIter::FirstWhich()
{
pRanges = pStart;
- nOfst = 0;
- if ( *pRanges >= nFrom && *pRanges <= nTo )
- return *pRanges;
- return NextWhich();
+ nOffset = 0;
+ return pRanges[0];
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */