Kaydet (Commit) 87ad1705 authored tarafından Eike Rathke's avatar Eike Rathke

add DebugCalculationEntry::mnGroup

Change-Id: Ic8b6c661be7570479c271d3ce0aa750e13724fc7
üst 6d7b984e
...@@ -78,11 +78,13 @@ struct DebugCalculationEntry ...@@ -78,11 +78,13 @@ struct DebugCalculationEntry
ScAddress maPos; ScAddress maPos;
OUString maResult; OUString maResult;
const ScDocument* mpDoc; const ScDocument* mpDoc;
sal_uInt32 mnGroup;
sal_uInt16 mnRecursion; sal_uInt16 mnRecursion;
DebugCalculationEntry( const ScAddress& rPos, ScDocument* pDoc ) : DebugCalculationEntry( const ScAddress& rPos, ScDocument* pDoc, sal_uInt32 nGroup ) :
maPos(rPos), maPos(rPos),
mpDoc(pDoc), mpDoc(pDoc),
mnGroup(nGroup),
mnRecursion(pDoc->GetRecursionHelper().GetRecursionCount()) mnRecursion(pDoc->GetRecursionHelper().GetRecursionCount())
{ {
} }
...@@ -99,12 +101,14 @@ static struct DebugCalculation ...@@ -99,12 +101,14 @@ static struct DebugCalculation
std::vector< DebugCalculationEntry > mvPos; std::vector< DebugCalculationEntry > mvPos;
std::vector< DebugCalculationEntry > mvResults; std::vector< DebugCalculationEntry > mvResults;
ScAddress maTrigger; ScAddress maTrigger;
sal_uInt32 mnGroup;
bool mbActive; bool mbActive;
bool mbSwitchOff; bool mbSwitchOff;
bool mbPrint; bool mbPrint;
bool mbPrintResults; bool mbPrintResults;
DebugCalculation() : mbActive(bDebugCalculationActive), mbSwitchOff(false), mbPrint(true), mbPrintResults(false) {} DebugCalculation() : mnGroup(0), mbActive(bDebugCalculationActive), mbSwitchOff(false),
mbPrint(true), mbPrintResults(false) {}
/** Print chain in encountered dependency order. */ /** Print chain in encountered dependency order. */
void print() const void print() const
...@@ -112,7 +116,7 @@ static struct DebugCalculation ...@@ -112,7 +116,7 @@ static struct DebugCalculation
for (auto const& it : mvPos) for (auto const& it : mvPos)
{ {
OUString aStr( it.maPos.Format( SCA_VALID | SCA_TAB_3D, it.mpDoc) + OUString aStr( it.maPos.Format( SCA_VALID | SCA_TAB_3D, it.mpDoc) +
" [" + OUString::number( it.mnRecursion) + "]"); " [" + OUString::number( it.mnRecursion) + "," + OUString::number( it.mnGroup) + "]");
fprintf( stderr, "%s -> ", aStr.toUtf8().getStr()); fprintf( stderr, "%s -> ", aStr.toUtf8().getStr());
} }
fprintf( stderr, "%s", "END\n"); fprintf( stderr, "%s", "END\n");
...@@ -148,6 +152,16 @@ static struct DebugCalculation ...@@ -148,6 +152,16 @@ static struct DebugCalculation
mvPos.back().maResult = "Err:" + OUString::number( nErr); mvPos.back().maResult = "Err:" + OUString::number( nErr);
} }
void enterGroup()
{
++mnGroup;
}
void leaveGroup()
{
--mnGroup;
}
} aDC; } aDC;
struct DebugCalculationStacker struct DebugCalculationStacker
...@@ -158,7 +172,7 @@ struct DebugCalculationStacker ...@@ -158,7 +172,7 @@ struct DebugCalculationStacker
aDC.mbActive = aDC.mbSwitchOff = true; aDC.mbActive = aDC.mbSwitchOff = true;
if (aDC.mbActive) if (aDC.mbActive)
{ {
aDC.mvPos.push_back( DebugCalculationEntry( rPos, pDoc)); aDC.mvPos.push_back( DebugCalculationEntry( rPos, pDoc, aDC.mnGroup));
aDC.mbPrint = true; aDC.mbPrint = true;
} }
} }
...@@ -1537,7 +1551,14 @@ void ScFormulaCell::Interpret() ...@@ -1537,7 +1551,14 @@ void ScFormulaCell::Interpret()
} }
else else
{ {
if ( ! InterpretFormulaGroup() ) #if DEBUG_CALCULATION
aDC.enterGroup();
#endif
bool bGroupInterpreted = InterpretFormulaGroup();
#if DEBUG_CALCULATION
aDC.leaveGroup();
#endif
if (!bGroupInterpreted)
InterpretTail( SCITP_NORMAL); InterpretTail( SCITP_NORMAL);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment