From 2bfcef385da43a6516a5fd3d8704e6f2eb5e9a9f Mon Sep 17 00:00:00 2001 From: Eike Rathke Date: Tue, 1 Dec 2015 12:50:09 +0100 Subject: add DebugCalculationEntry::mnRecursion Change-Id: I159cb1dcbe7a9678f7353292c3eab2fbc325d7f9 (cherry picked from commit 6d7b984ed17930bbfb884734ed83b98fb03ab06a) --- sc/source/core/data/formulacell.cxx | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/sc/source/core/data/formulacell.cxx b/sc/source/core/data/formulacell.cxx index 6adf10677103..3963e6ada123 100644 --- a/sc/source/core/data/formulacell.cxx +++ b/sc/source/core/data/formulacell.cxx @@ -70,17 +70,20 @@ IMPL_FIXEDMEMPOOL_NEWDEL( ScFormulaCell ) #define DEBUG_CALCULATION 0 #if DEBUG_CALCULATION -static ScAddress aDebugCalculationTriggerAddress(1,2,0); // Sheet1.B3, whatever you like +static bool bDebugCalculationActive = false; // Set to true for global active init, +static ScAddress aDebugCalculationTriggerAddress(1,2,0); // or on cell Sheet1.B3, whatever you like struct DebugCalculationEntry { ScAddress maPos; OUString maResult; const ScDocument* mpDoc; + sal_uInt16 mnRecursion; - DebugCalculationEntry( const ScAddress& rPos, const ScDocument* pDoc ) : + DebugCalculationEntry( const ScAddress& rPos, ScDocument* pDoc ) : maPos(rPos), - mpDoc(pDoc) + mpDoc(pDoc), + mnRecursion(pDoc->GetRecursionHelper().GetRecursionCount()) { } }; @@ -101,14 +104,15 @@ static struct DebugCalculation bool mbPrint; bool mbPrintResults; - DebugCalculation() : mbActive(false), mbSwitchOff(false), mbPrint(true), mbPrintResults(false) {} + DebugCalculation() : mbActive(bDebugCalculationActive), mbSwitchOff(false), mbPrint(true), mbPrintResults(false) {} /** Print chain in encountered dependency order. */ void print() const { 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) + "]"); fprintf( stderr, "%s -> ", aStr.toUtf8().getStr()); } fprintf( stderr, "%s", "END\n"); @@ -120,7 +124,7 @@ static struct DebugCalculation for (auto const& it : mvResults) { OUString aStr( it.maPos.Format( SCA_VALID | SCA_TAB_3D, it.mpDoc)); - aStr += "(" + it.maResult + ")"; + aStr += " (" + it.maResult + ")"; fprintf( stderr, "%s, ", aStr.toUtf8().getStr()); } fprintf( stderr, "%s", "END\n"); @@ -148,7 +152,7 @@ static struct DebugCalculation struct DebugCalculationStacker { - DebugCalculationStacker( const ScAddress& rPos, const ScDocument* pDoc ) + DebugCalculationStacker( const ScAddress& rPos, ScDocument* pDoc ) { if (!aDC.mbActive && rPos == aDC.maTrigger) aDC.mbActive = aDC.mbSwitchOff = true; -- cgit