summaryrefslogtreecommitdiffstats
path: root/sc/inc/recursionhelper.hxx
diff options
context:
space:
mode:
authorKohei Yoshida <kohei.yoshida@suse.com>2012-04-09 21:34:24 -0400
committerKohei Yoshida <kohei.yoshida@suse.com>2012-04-09 21:45:58 -0400
commit8b2fb88b124acd8fc7fa3443dafb3f955b47390d (patch)
tree726c0b41426da849f05dd789060861b8a2256593 /sc/inc/recursionhelper.hxx
parentremoved unused defines (diff)
downloadcore-8b2fb88b124acd8fc7fa3443dafb3f955b47390d.tar.gz
core-8b2fb88b124acd8fc7fa3443dafb3f955b47390d.zip
Make non-trivial methods non in-line.
Diffstat (limited to 'sc/inc/recursionhelper.hxx')
-rw-r--r--sc/inc/recursionhelper.hxx79
1 files changed, 18 insertions, 61 deletions
diff --git a/sc/inc/recursionhelper.hxx b/sc/inc/recursionhelper.hxx
index dc44921d8840..176a93d61501 100644
--- a/sc/inc/recursionhelper.hxx
+++ b/sc/inc/recursionhelper.hxx
@@ -40,10 +40,10 @@ class ScFormulaCell;
struct ScFormulaRecursionEntry
{
ScFormulaCell* pCell;
- sal_Bool bOldRunning;
+ bool bOldRunning;
ScFormulaResult aPreviousResult;
- ScFormulaRecursionEntry( ScFormulaCell* p, sal_Bool bR,
- const ScFormulaResult & rRes ) :
+ ScFormulaRecursionEntry(
+ ScFormulaCell* p, bool bR, const ScFormulaResult & rRes ) :
pCell(p), bOldRunning(bR), aPreviousResult( rRes)
{
}
@@ -65,44 +65,24 @@ class ScRecursionHelper
bool bInIterationReturn;
bool bConverging;
- void Init()
- {
- nRecursionCount = 0;
- bInRecursionReturn = bDoingRecursion = bInIterationReturn = false;
- aInsertPos = GetEnd();
- ResetIteration();
- }
- void ResetIteration()
- {
- aLastIterationStart = GetEnd();
- nIteration = 0;
- bConverging = false;
- }
+ void Init();
+ void ResetIteration();
- public:
+public:
- ScRecursionHelper() { Init(); }
+ ScRecursionHelper();
sal_uInt16 GetRecursionCount() const { return nRecursionCount; }
void IncRecursionCount() { ++nRecursionCount; }
void DecRecursionCount() { --nRecursionCount; }
/// A pure recursion return, no iteration.
bool IsInRecursionReturn() const { return bInRecursionReturn &&
!bInIterationReturn; }
- void SetInRecursionReturn( bool b )
- {
- // Do not use IsInRecursionReturn() here, it decouples iteration.
- if (b && !bInRecursionReturn)
- aInsertPos = aRecursionFormulas.begin();
- bInRecursionReturn = b;
- }
+ void SetInRecursionReturn( bool b );
bool IsDoingRecursion() const { return bDoingRecursion; }
void SetDoingRecursion( bool b ) { bDoingRecursion = b; }
- void Insert( ScFormulaCell* p, sal_Bool bOldRunning,
- const ScFormulaResult & rRes )
- {
- aRecursionFormulas.insert( aInsertPos, ScFormulaRecursionEntry( p,
- bOldRunning, rRes));
- }
+
+ void Insert( ScFormulaCell* p, bool bOldRunning, const ScFormulaResult & rRes );
+
ScFormulaRecursionList::iterator GetStart()
{
return aRecursionFormulas.begin();
@@ -112,33 +92,15 @@ class ScRecursionHelper
return aRecursionFormulas.end();
}
bool IsInIterationReturn() const { return bInIterationReturn; }
- void SetInIterationReturn( bool b )
- {
- // An iteration return is always coupled to a recursion return.
- SetInRecursionReturn( b);
- bInIterationReturn = b;
- }
+ void SetInIterationReturn( bool b );
bool IsDoingIteration() const { return nIteration > 0; }
sal_uInt16 GetIteration() const { return nIteration; }
bool & GetConvergingReference() { return bConverging; }
- void StartIteration()
- {
- SetInIterationReturn( false);
- nIteration = 1;
- bConverging = false;
- aLastIterationStart = GetIterationStart();
- }
- void ResumeIteration()
- {
- SetInIterationReturn( false);
- aLastIterationStart = GetIterationStart();
- }
+ void StartIteration();
+ void ResumeIteration();
void IncIteration() { ++nIteration; }
- void EndIteration()
- {
- aRecursionFormulas.erase( GetIterationStart(), GetIterationEnd());
- ResetIteration();
- }
+ void EndIteration();
+
ScFormulaRecursionList::iterator GetLastIterationStart() { return aLastIterationStart; }
ScFormulaRecursionList::iterator GetIterationStart() { return GetStart(); }
ScFormulaRecursionList::iterator GetIterationEnd() { return GetEnd(); }
@@ -148,13 +110,8 @@ class ScRecursionHelper
const ScFormulaRecursionList& GetList() const { return aRecursionFormulas; }
ScFormulaRecursionList& GetList() { return aRecursionFormulas; }
ScRecursionInIterationStack& GetRecursionInIterationStack() { return aRecursionInIterationStack; }
- void Clear()
- {
- aRecursionFormulas.clear();
- while (!aRecursionInIterationStack.empty())
- aRecursionInIterationStack.pop();
- Init();
- }
+
+ void Clear();
};
#endif // INCLUDED_RECURSIONHELPER_HXX