diff options
author | Jochen Nitschke <j.nitschke+logerrit@ok.de> | 2017-02-04 11:44:27 +0100 |
---|---|---|
committer | Jochen Nitschke <j.nitschke+logerrit@ok.de> | 2017-02-04 11:37:42 +0000 |
commit | d584e2dcc0454e66151d888fb45c23ccb1634aa6 (patch) | |
tree | 784c067bdb12093e0f0b889490f92b23dd344ef9 /svl | |
parent | f52eb759f61e1806014972cb736e07479f157aa6 (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')
-rw-r--r-- | svl/source/items/whiter.cxx | 39 |
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: */ |