diff options
author | Caolán McNamara <caolan.mcnamara@collabora.com> | 2023-10-29 16:46:23 +0000 |
---|---|---|
committer | Caolán McNamara <caolan.mcnamara@collabora.com> | 2023-10-29 21:44:11 +0100 |
commit | 3b39360edc104f4ecfed1228b08812388f5126a1 (patch) | |
tree | db01a3271170e79b6da0bb205ecce7770d18f4e5 /sc/source | |
parent | 798d21e2a1b8bc48b6bb5e1b3cf0cba0e5882a59 (diff) |
crashtesting: dependency tracking doesn't parse ocRange
so only the args passed to ocRange are seen, not what range is
created from those args, so the dependency detected is just the args
and not the result
seen with forum-mso-en4-457928.xlsx
=SUMPRODUCT(--(LEFT(TRIM(Summary.Sections.Type),2)=F24)*Summary.Sections.QCount)
Summary.Sections.Type is
Summary.SectionType.Start:INDEX(Summary,,COLUMN(Summary.SectionType.EndCol))
Summary.SectionType.Start is
$Summary.$BD$7
Summary.SectionType.EndCol is
$Summary.$BG$7
So $BD$7 and $BG$7 are detected as dependencies, but we are really dependent
on the $BD$7:$BG$7 range, so $BE$7:$BF$7 is not seen
Change-Id: Ia06fe4cb0845994d0221f020cf26ba20866624ef
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158625
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Diffstat (limited to 'sc/source')
-rw-r--r-- | sc/source/core/data/formulacell.cxx | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/sc/source/core/data/formulacell.cxx b/sc/source/core/data/formulacell.cxx index 88970ff75401..f278492b0916 100644 --- a/sc/source/core/data/formulacell.cxx +++ b/sc/source/core/data/formulacell.cxx @@ -4512,6 +4512,15 @@ struct ScDependantsCalculator return false; } + if (p->GetOpCode() == ocRange) + { + // We are just looking at svSingleRef/svDoubleRef, so we will miss that ocRange constructs + // a range from its arguments, and only examining the individual args doesn't capture the + // true range of dependencies + SAL_WARN("sc.core.formulacell", "dynamic range, dropping as candidate for parallelizing"); + return false; + } + switch (p->GetType()) { case svSingleRef: |