Kaydet (Commit) 3193e78a authored tarafından Eike Rathke's avatar Eike Rathke

Related: tdf#114251 disable ocName named expressions for vectorization

Recursive checking of their token arrays would be needed.

This solves the slowness in the non-threading case of tdf#114251
because no arrays are generated for the named ranges, which is
rather a lucky workaround than a solution.

The wrong handling of range references in general (array where
scalar is expected, no implicit intersection) still persists.

Change-Id: I57385bd95efa584108d93d724921285c97a91a45
Reviewed-on: https://gerrit.libreoffice.org/46623Reviewed-by: 's avatarEike Rathke <erack@redhat.com>
Tested-by: 's avatarEike Rathke <erack@redhat.com>
üst ecac94f3
......@@ -1664,6 +1664,24 @@ void ScTokenArray::CheckToken( const FormulaToken& r )
mbOpenCLEnabled = false;
CheckForThreading(eOp);
}
else
{
// All the rest, special commands, separators, error codes, ...
switch (eOp)
{
case ocName:
// Named expression would need "recursive" handling of its
// token array for vector state in
// ScFormulaCell::InterpretFormulaGroup() and below.
SAL_INFO("sc.opencl", "opcode " << formula::FormulaCompiler().GetOpCodeMap(sheet::FormulaLanguage::ENGLISH)->getSymbol(eOp) << " disables vectorisation for formula group");
meVectorState = FormulaVectorDisabledByOpCode;
mbOpenCLEnabled = false;
CheckForThreading(eOp);
break;
default:
; // nothing
}
}
}
bool ScTokenArray::ImplGetReference( ScRange& rRange, const ScAddress& rPos, bool bValidOnly ) const
......
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