Kaydet (Commit) 67444cbe authored tarafından Eike Rathke's avatar Eike Rathke

Related: tdf#114251 disable vectorization of svDoubleRef

It doesn't work, not knowing how to handle implicit intersections
not only produces huge unnecessary matrix operations but also
delivers wrong results.

Unit test will follow as a separate commit.

Change-Id: I14982d4a53d6af57196da998e53d426502c22fec
Reviewed-on: https://gerrit.libreoffice.org/46647Reviewed-by: 's avatarEike Rathke <erack@redhat.com>
Tested-by: 's avatarEike Rathke <erack@redhat.com>
üst 3193e78a
......@@ -165,6 +165,18 @@ bool ScGroupTokenConverter::convert( const ScTokenArray& rCode, sc::FormulaLogge
break;
case svDoubleRef:
{
/* FIXME: this simply does not work, it doesn't know
* a) the context of implicit intersection, for which creating
two arrays dows not only result in huge unnecessary matrix
operations but also produces wrong results, e.g. =B:B/C:C
* b) when to keep a reference as a reference depending on the
expected parameter type, e.g. INDEX(), OFFSET() and
others (though that *may* be disabled by OpCode already).
* Until both are solved keep the reference. */
mrGroupTokens.AddToken(*p);
break;
#if 0
ScComplexRefData aRef = *p->GetDoubleRef();
ScRange aAbs = aRef.toAbs(mrPos);
......@@ -237,6 +249,7 @@ bool ScGroupTokenConverter::convert( const ScTokenArray& rCode, sc::FormulaLogge
//ensure that backing storage exists for our lifetime
mxFormulaGroupContext = mrDoc.GetFormulaGroupContext();
}
#endif
}
break;
case svIndex:
......
......@@ -1612,10 +1612,11 @@ void ScTokenArray::CheckToken( const FormulaToken& r )
// Don't change the state.
break;
case svSingleRef:
case svDoubleRef:
// Depends on the reference state.
meVectorState = FormulaVectorCheckReference;
break;
case svDoubleRef:
// Does not work yet, see ScGroupTokenConverter::convert()
case svError:
case svEmptyCell:
case svExternal:
......
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