summaryrefslogtreecommitdiff
path: root/sc/source
diff options
context:
space:
mode:
authorCaolán McNamara <caolan.mcnamara@collabora.com>2023-10-29 16:46:23 +0000
committerCaolán McNamara <caolan.mcnamara@collabora.com>2023-10-29 21:44:11 +0100
commit3b39360edc104f4ecfed1228b08812388f5126a1 (patch)
treedb01a3271170e79b6da0bb205ecce7770d18f4e5 /sc/source
parent798d21e2a1b8bc48b6bb5e1b3cf0cba0e5882a59 (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.cxx9
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: