Kaydet (Commit) 5306fabf authored tarafından Eike Rathke's avatar Eike Rathke

tdf#87101 Revert "fdo#83067 also volatile cells need to listen to all refe"...

This reverts commit 0792aef9.

It created a bottleneck with massive use of OFFSET() functions mixed
with other references, see tdf#87101 bugdoc. Will have to come up with a
different approach to solve the "broadcast cell move" problem.

Additionally, the unit test for tdf#83067 and the original problem still
work with the reverted change, so we seem to generally have fixed
something else in the meantime..

 Conflicts:
	sc/source/core/data/formulacell.cxx

Change-Id: Ida2e26398f99ff5878d43ffb46035bc4441dfff6
üst 14863b9a
......@@ -2144,7 +2144,7 @@ void ScFormulaCell::InterpretTail( ScInterpretTailParameter eTailParam )
if (pCode->IsRecalcModeAlways())
{
// The formula was previously volatile, but no more.
pDocument->EndListeningArea(BCA_LISTEN_ALWAYS, false, this);
EndListeningTo(pDocument);
pCode->SetExclusiveRecalcModeNormal();
}
else
......@@ -4280,6 +4280,8 @@ void ScFormulaCell::StartListeningTo( ScDocument* pDoc )
if( pArr->IsRecalcModeAlways() )
{
pDoc->StartListeningArea(BCA_LISTEN_ALWAYS, false, this);
SetNeedsListening( false);
return;
}
pArr->Reset();
......@@ -4321,6 +4323,8 @@ void ScFormulaCell::StartListeningTo( sc::StartListeningContext& rCxt )
if( pArr->IsRecalcModeAlways() )
{
rDoc.StartListeningArea(BCA_LISTEN_ALWAYS, false, this);
SetNeedsListening( false);
return;
}
pArr->Reset();
......@@ -4392,6 +4396,7 @@ void ScFormulaCell::EndListeningTo( ScDocument* pDoc, ScTokenArray* pArr,
if ( GetCode()->IsRecalcModeAlways() )
{
pDoc->EndListeningArea(BCA_LISTEN_ALWAYS, false, this);
return;
}
if (!pArr)
......@@ -4443,6 +4448,7 @@ void ScFormulaCell::EndListeningTo( sc::EndListeningContext& rCxt )
if (pArr->IsRecalcModeAlways())
{
rDoc.EndListeningArea(BCA_LISTEN_ALWAYS, false, this);
return;
}
pArr->Reset();
......
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