Kaydet (Commit) 8f616303 authored tarafından Eike Rathke's avatar Eike Rathke

add a recursion guard to lcl_FindRangeNamesInUse()

Change-Id: Ia4a8f0273bb30b696b3499e75fa70e5c1a0981f1
üst ef3ca022
......@@ -3710,7 +3710,8 @@ void ScFormulaCell::UpdateGrow( const ScRange& rArea, SCCOL nGrowX, SCROW nGrowY
StartListeningTo( pDocument ); // Listener as previous
}
static void lcl_FindRangeNamesInUse(sc::UpdatedRangeNames& rIndexes, ScTokenArray* pCode, const ScDocument* pDoc)
static void lcl_FindRangeNamesInUse(sc::UpdatedRangeNames& rIndexes, ScTokenArray* pCode, const ScDocument* pDoc,
int nRecursion)
{
for (FormulaToken* p = pCode->First(); p; p = pCode->Next())
{
......@@ -3720,16 +3721,19 @@ static void lcl_FindRangeNamesInUse(sc::UpdatedRangeNames& rIndexes, ScTokenArra
SCTAB nTab = p->GetSheet();
rIndexes.setUpdatedName( nTab, nTokenIndex);
ScRangeData* pSubName = pDoc->FindRangeNameByIndexAndSheet( nTokenIndex, nTab);
if (pSubName)
lcl_FindRangeNamesInUse(rIndexes, pSubName->GetCode(), pDoc);
if (nRecursion < 126) // whatever.. 42*3
{
ScRangeData* pSubName = pDoc->FindRangeNameByIndexAndSheet( nTokenIndex, nTab);
if (pSubName)
lcl_FindRangeNamesInUse(rIndexes, pSubName->GetCode(), pDoc, nRecursion+1);
}
}
}
}
void ScFormulaCell::FindRangeNamesInUse(sc::UpdatedRangeNames& rIndexes) const
{
lcl_FindRangeNamesInUse( rIndexes, pCode, pDocument );
lcl_FindRangeNamesInUse( rIndexes, pCode, pDocument, 0);
}
void ScFormulaCell::SetChanged(bool b)
......
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