summaryrefslogtreecommitdiff
path: root/sc/inc/compiler.hxx
AgeCommit message (Collapse)Author
2022-09-17speed up large sheet with lots of conditionsNoel Grandin
shaves 10% off view load time Change-Id: I51078ef81613faa2f8c37530fb7dc77b73192525 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140070 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-09-06Simplify by using replace instead of replaceAt in loop in sc/compilerJulien Nabet
+ replace ScCompiler::EnQuote which is used only once with its content at this adhoc location Change-Id: I7d72fd573ec9cea06d9b54e9381b4783756cf08e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139452 Tested-by: Jenkins Reviewed-by: Eike Rathke <erack@redhat.com>
2022-09-01Related: tdf#142293 Have ScCompiler::GetOpCodeMap() overwriteEike Rathke
... FormulaCompiler::GetOpCodeMap() forwarding to GetFinalOpCodeMap() as that is what we want from ScCompiler (and always had), eliminating the now possible temporariness of FormulaCompiler::GetOpCodeMap(). Change-Id: Ia87fb0e911e4f7995bfb5df07dcd1fde3713d006 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139205 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2022-08-23Make static ScCompiler::GetCharClassLocalized() public as wellEike Rathke
... and mutex guard it. Change-Id: Ief9c6deaf7974ac43c7ae439a0fb73c29eced283 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138733 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2022-08-09Use CharClass::uppercase() for AddIns' English UI names, tdf#135993 follow-upEike Rathke
... instead of OUString::toAsciiUpperCase(). English names should consist of ASCII alphanumeric only, but we don't know what an AddIn's author comes up with. Lookup in ScCompiler is done with CharClass as well. For this, use the static ScCompiler::GetCharClassEnglish() instance made public and guard creation with a mutex. Change-Id: Icb79d49d4c7339c8d01b141de2a34715d794dd92 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138004 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2022-05-03add o3tl::equalsAsciiNoel Grandin
Change-Id: I042b8dcadbf7581de325c161763fe35aecde5ca2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133694 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-03-08optimize checking for conflicting named rangesLuboš Luňák
This extends 582fc887f1faafe8ff5f16a13a0208483a93353f, first check if there is any named range that could possibly conflict (which generally should be rare). Change-Id: Ia5e9e56cab29b459bcb489e871b4960ba215b665 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131219 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2022-03-04keep conflicting named ranges working with 16k columnsLuboš Luňák
Named ranges named e.g. 'num1' are actually valid cell addresses when using 16k columns. We prevent naming ranges in a way that would make them conflict, but it's possible to read them from a saved file that was created with fewer columns, and in such cases formulas using them would silently refer to those cells instead of to the named range. I don't see anything in the ODF spec, but OOXML in 18.2.5 recommends this in case there are conflicts (only outside of the normal Excel range of A1-XFD1048576, inside they are always meant to be references, but our normal range currently is only 1k columns, and it's simpler and probably harmless to always resolve a conflict this way). I can optimize performance of this in another commit if needed. Change-Id: I46aef54b069700e7bf268b50fdc1a88989f3ee29 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130891 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2022-03-02function that modifies data should not be called IsXXX()Luboš Luňák
IsXXX() is for const functions that check something. Using it for functions that modify data is confusing. Some of them even are in fact const, and the problem got "fixed" by making data mutable *sigh*. Change-Id: Ic385c96d6c32c818a8a6baa77ab025aab2c45a03 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130890 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-10-27Typo: pDataIgoreCase->pDataIgoreCase in scJulien Nabet
Change-Id: I61f90680f907ee567f1af45801be3e939849d4ff Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124246 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2021-08-11Resolves: tdf#143809 "INF" may be a named expression or DB area nameEike Rathke
... to not be caught by rtl::math::stringToDouble() handling XMLSchema-2 "INF" and "NaN" and set as error. Change-Id: I9bf7aad416a69d4c3c0d49d6c80168097040a3e3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120337 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2021-08-09tdf#64086 tdf#143623 tdf#66250 XLSX: fix named ranges in chartsBalazs Varga
tdf#64086: fix broken XLSX import of named ranges in charts Do not create inner data table in Calc for charts, if the data source contains named ranges. Use the named ranges (local sheet names and global names) to find the data source of charts, so it will be updated correctly if we modify the values in cells. Second part: tdf#143623: chart OOXML, offapi: export the named ranges in charts with the proper special (non-ooxml-standard) Excel syntax. We need to add "[0]" characters before a global named range for proper refreshing of chart data. Also we have to add the sheet name to the local named ranges even if it's on the same sheet, but only in case of charts. Because of this, add property RefConventionChartOOXML to com::sun::star::sheet::FormulaParser, which specifies that use special OOXML chart syntax in case of OOXML reference convention, when parsing a formula string. Third part: tdf#66250 ODF chart: export the reference of named ranges in case of charts, if the named range contains a valid reference. Note: maybe export the name of named ranges would be a nicer solution in the future. Follow-up of commit 3c766512984feff739377d0f0af46558ee7139fd "Related: tdf#64086 Add FormulaGrammar::isRefConventionOOXML()". Thanks to Eike Rathke for his help. Change-Id: I10d8563fb436092e833682f331c25b0c0829ef86 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118862 Tested-by: László Németh <nemeth@numbertext.org> Reviewed-by: László Németh <nemeth@numbertext.org>
2021-07-28Resolves: tdf#76310 Preserve whitespace TAB, CR, LF in formula expressionsEike Rathke
Allowed whitespace in ODFF and OOXML are U+0020 SPACE U+0009 CHARACTER TABULATION U+000A LINE FEED U+000D CARRIAGE RETURN Line feed and carriage return look a bit funny in the Function Wizard if part of a function's argument but work. Once a formula is edited, CR are converted to LF though, probably already in EditEngine, didn't investigate. Change-Id: I6278f6be48872e0710a3d74212db391dda249ed2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119635 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2021-06-21loplugin:finalclasses in sc/incNoel Grandin
Change-Id: I818a5dda788fd15a718914fb05f23e5225dce1c5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117588 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-03-23tdf#124176 Use pragma once in s*Vincent LE GARREC
sc, scaddins, sccomp, scripting Change-Id: Ia99fec9e238033821cb784810edd4762c09bd5db Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112049 Tested-by: Jenkins Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
2021-01-14tdf#133858 reduce the double-ref range to data contentDennis Francis
in certain matrix formulas like SUM(IF(A1=G:G, H:H)*B1/B2) where whole columns are used for comparison in the condition of IF ultimately followed by a reducer like SUM. In such cases we can safely reduce the double-refs involved in the comparison to the sheet area where there is data before converting the data to ScMatrix. This is a more restricted version of Noel's fix in 37ffe509ef011357123642577c04ff296d59ce68 Change-Id: I1c2e8985adedb3f4c4648f541fb0e8e7d0fae033 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109050 Reviewed-by: Luboš Luňák <l.lunak@collabora.com> Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> (cherry picked from commit 65167a9265acfea04733b5ff6ee3220a9da624f4) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109118 Tested-by: Jenkins Reviewed-by: Dennis Francis <dennis.francis@collabora.com>
2020-11-06loplugin:unusedmethodsNoel
Change-Id: Ia6c0361cd793bb62905b0690f7e2ca554019e935 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105388 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-09-29Determine CharClass difference once, tdf#137091 follow-upEike Rathke
As a side note: Clang plugin simplifybool for !(rLT1.getLanguage() == "en" && rLT2.getLanguage() == "en") told "error: logical negation of logical op containing negation, can be simplified" which is nonsense (the message stayed the same while the checks evolved). It actually complained about !(a==b && c==d) to be rewritten as (a!=b || c!=d) whether that makes sense or not.. it may save one boolean operation, yes, but.. Change-Id: Ib478d46d7ff926c1c9f65fec059c7a3f31fa7ce3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103601 Tested-by: Jenkins Reviewed-by: Eike Rathke <erack@redhat.com>
2020-09-29Resolves: tdf#137091 Use CharClass matching the formula languageEike Rathke
... not the current locale. Specifically important for uppercase/lowercase conversions that may yield different results for example in Turkish i with/without dot. Change-Id: I2aa57cdcf530d7a0697c4ffbd5dccb86bb526d8e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103588 Tested-by: Jenkins Reviewed-by: Eike Rathke <erack@redhat.com>
2020-09-23ScRefAddress::GetRefString never passed a null ScDocument*Caolán McNamara
so the nullptr check can be removed and some more along that vein Change-Id: Ic0c1f98564b6bd457edd0d3ba2a4382b7945e806 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103217 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-09-18cid#1466690 ScDocument* arg is never nullCaolán McNamara
So the various fallback null checks are shown to be redundant and can be removed. Change-Id: I93b3c3a9b124b7de48acebcb348a1261c1b0037c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102978 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-09-17ScCompiler always has a ScDocument&Caolán McNamara
so various nullptr checks can go Change-Id: I3fdbc8e0f83855cd368b6ba8123881d266cf7f52 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102908 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-09-17ScCompiler ctors never passed a null ScDocument*Caolán McNamara
add one assert to ScXMLConditionalFormatContext where this isn't immediately certain. Change-Id: I2103c5cd42288e0a5d2a1c2e2d2d031f806773bb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102906 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-09-17base-class formula::FormulaCompiler is sufficient hereCaolán McNamara
Change-Id: Ic95bcc33fda1edb762009c4ca4fd3448640259bf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102900 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-09-14ScCompiler::MoveRelWrap never passed a null ScDocument*Caolán McNamara
Change-Id: I8a5847877bf3de458a9ec81ed02602f067c3a279 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102615 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-03-12Revert "loplugin:constfields in sc"Noel Grandin
This reverts commit fb1d3b580763a333bbbfe115d09e1b5cd8849675. Now that we know that making fields has negative side effects like disabling assignment operator generation. Change-Id: Ib48334ffbeb2c768896dd8ced6818aa0b9910b0b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90333 Tested-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-01-22tdf#83779: convert TRUE/FALSE constants to functions TRUE()/FALSE()Mike Kaganski
This avoids problems with round-tripping Excel spreadsheets, where previously a formula like =IF(ISNA(A1)=FALSE;"a";"b") was imported as =IF(ISNA(A1)=0;"a";"b"), and when exported back, it didn't work in Excel, because boolean values had a distinct type in it. Change-Id: I672a631bfa1a4811349794f714293404c6b24381 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86238 Tested-by: Jenkins Reviewed-by: Eike Rathke <erack@redhat.com>
2019-12-14sc: rowcol: tdf#50916 convert Valid* methodsNoel Grandin
which means we end up passing around ScDocument* __everywhere__ Change-Id: I44d235ca5e9d57519f068b6880ee7d66f3ceb529 Reviewed-on: https://gerrit.libreoffice.org/83548 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-12-13sc: rowcol: tdf#50916 create ScSheetLimits to hold by rtl::ReferenceNoel Grandin
ScTokenArray sometimes outlives the ScDocument that created it, which means it accesses dead data when it tries to validate columns and rows. So create the ScSheetLimits class, which ScTokenArray can hold by reference counted pointer. Change-Id: Ic5771734fe4962d12f024fc1b29232124c14208a Reviewed-on: https://gerrit.libreoffice.org/85117 Tested-by: Jenkins Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2019-12-12sc: rowcol: tdf#50916 pass ScDocument to the token classesNoel Grandin
needed to create a fake ScDocument for the external ref manager, since it has no ScDocument at all Change-Id: Ia786ac291133e3c438694e81ecfb2590729a853d Reviewed-on: https://gerrit.libreoffice.org/85050 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-12-05make some classes module privateNoel Grandin
Mark some stuff SAL_DLLPUBLIC_RTTI in include/vcl/metaact.hxx in order to make ASAN happy. Change-Id: I97febe0968bf58b9cbe60ce647f0ada25e6f4bb0 Reviewed-on: https://gerrit.libreoffice.org/84202 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-10-29sc: rowcol: tdf#50916 convert core/toolNoel Grandin
Change-Id: I0fe5a7ef4a79d0832802945ce1b9da4752f1d5fc Reviewed-on: https://gerrit.libreoffice.org/81598 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-09-26loplugin:constmethod in scNoel Grandin
Change-Id: I78c4fb4acf21756f91582caee5e30e3ad1fc2ae4 Reviewed-on: https://gerrit.libreoffice.org/79543 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-09-01Fix '..'Andrea Gelmini
To complete this: https://gerrit.libreoffice.org/#/c/78312/ This is a massive replace for lines ending with ".." instead of "..." It passed "make check" on Linux. Change-Id: I07fa7b2e30ba9ea17a1f9a5e21c57216ba958efe Reviewed-on: https://gerrit.libreoffice.org/78356 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Jenkins
2019-06-04Resolves: tdf#123752 allow group separator in formula values if possibleEike Rathke
If possible here means if it can't be an operator (is not an ASCII value) and is not any other separator. This restores the "working by chance" behaviour for some locales that use NO-BREAK SPACE as group separator. It never worked for locales that use one of the "ordinary" comma or dot or apostrophe group separator and will not. Change-Id: I8b7ba1b502b6b7367ffb2199d2f3922ab605a659 Reviewed-on: https://gerrit.libreoffice.org/73422 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2019-01-10pass ScTokenArray around by unique_ptrNoel Grandin
Change-Id: I611554b1c4cbc506dbfc32748e9f14c9e8eb5156 Reviewed-on: https://gerrit.libreoffice.org/66022 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-12-11find-unneeded-includes: Avoid proposing o3tl fw declarationGabor Kelemen
This does not really work: even when it seems to, it compiles only because of transitive includes - Filter o3tl/typed_flags_set.hxx in f-u-u - Remove already added fw declarations from hxx files and include full header just in case - Remove now unnecessary blacklist entries Change-Id: Ie0de6667af697095a623b435806449e7e28a6004 Reviewed-on: https://gerrit.libreoffice.org/64659 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2018-11-08loplugin:constantparamNoel Grandin
Change-Id: I593ccc2fb43321caf3ff64d0c348b1bac742ad18 Reviewed-on: https://gerrit.libreoffice.org/63025 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-10-15loplugin:constfields in scNoel Grandin
Change-Id: If326175d571d15752efd1b63df45b2bc785f7541 Reviewed-on: https://gerrit.libreoffice.org/61653 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-08-16remove mempoolNoel Grandin
we've been using the normal memory allocator instead of the sal slab allocator ever since commit bc6a5d8e79e7d0e7d75ac107aa8e6aa275e434e9 Date: Wed Nov 15 16:52:44 2017 +0530 Disable custom allocator Change-Id: I3383962cedb85d56fbec695398901f6ff7057651 Reviewed-on: https://gerrit.libreoffice.org/58577 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-08-09loplugin:unusedmethodsNoel Grandin
Change-Id: I0308ddd467ab6e283c0503f98885a248eb28290c Reviewed-on: https://gerrit.libreoffice.org/58738 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-08-07more robust implicit intersection optimizingLuboš Luňák
For example, FormulaCompiler::MergeRangeReference() may replace the parameter tokens and merge two into one. Change-Id: Ie2933dec3ef73b5b605160e86a8ab3b5b1d17c1c Reviewed-on: https://gerrit.libreoffice.org/58684 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2018-08-06skip some copying with external names in ScRawTokenNoel Grandin
No need to convert from an OUString to a sal_Unicode[] and then back again. There is only one ScRawToken allocated so no need to be ultra careful with extra fields here. Change-Id: I279835e83ba02d9d4cf4d724bd8046be6aca1405 Reviewed-on: https://gerrit.libreoffice.org/58580 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-07-31try to detect that a formula does not contain any implicit intersectionLuboš Luňák
Commit 67444cbe disabled svDoubleRef completely for OpenCL, which means many formulas weren't handled by OpenCL even if the implicit intersection problems are quite rare. This patch tries to detect formulas implicit intersections in formulas and if it's certain that a formula does not contain one, then it's ok to use OpenCL with svDoubleRef. The detection is done by having ScCompiler analyze each opcode call and its parameters, which should provide sufficient information to know if implicit intersection can take place or not. The extra compilation can be avoided by using OpenCL's compilation and doing the svDoubleRef conversion later on the RPN code, to be done later. This is opt-in, so if unsure don't do anything, if it turns out that some opcode needs special handling, it can be simply added. Change-Id: Iaa52fa7eb8b14dc8c2b92384a21e2ab8efe0ddd7 Reviewed-on: https://gerrit.libreoffice.org/57959 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2018-06-27use optional ScInterpreterContext in ScColumn::GetString()Luboš Luňák
Otherwise calc's threading asserts with fdo#37765-1. Change-Id: Ic2500f2218bf62c4d05f1c5284e62a53c0598b53 Reviewed-on: https://gerrit.libreoffice.org/56484 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2018-06-26More Implicit intersection computationDennis Francis
Do implicit intersection computation for for single parameter functions while generating RPN token array when the argument is a doubleref with relative row references. This optimization is not done when under forced array mode or matrix formula mode. The computation logic was already present in ScInterpreter, so factored it out and reused. This also adds unit tests to ensure correctness of II computation for various cases. Change-Id: I509c3f6f811aa036b1dc3296e8f68904b26c3c49 Reviewed-on: https://gerrit.libreoffice.org/53885 Tested-by: Jenkins Reviewed-by: Eike Rathke <erack@redhat.com>
2018-06-06tdf#42949 Fix IWYU warnings in sc/inc/[a,c]*Gabor Kelemen
Found with bin/find-unneeded-includes Only removal proposals are dealt with here. Quite a bit of fallout management was necessary. Several files were not checked earlier because of IWYU problems. Also a few mistaken entries from the yaml file are corrected. Change-Id: I943dfb955e096896961ac487d26ce57a6cb76cc2 Reviewed-on: https://gerrit.libreoffice.org/55303 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2018-05-14use optional ScInterpreterContext if possibleLuboš Luňák
Avoids assertion with threaded cell computations for tdf#100811/2. Change-Id: I2dc0fd80595ccec1824c8675fc97cfc763b88659 Reviewed-on: https://gerrit.libreoffice.org/54080 Reviewed-by: Dennis Francis <dennis.francis@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2018-05-08tdf#42949 Fix IWYU warnings in sc/inc/[bc]*Gabor Kelemen
Found with bin/find-unneeded-includes Only removal proposals are dealt with here. Change-Id: Ie63df2185e0586d1fc7db4ed2825a7aa8d8dde73 Reviewed-on: https://gerrit.libreoffice.org/53950 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2018-04-28tdf#114479: compute implicit sum ranges for ocSumIf,ocAverageIf...Dennis Francis
and update the sum-range token in RPN array while creation of the RPN array itself. + Adds unit tests. + In ScParallelismTest unit test, enable threading in its setUp() method and restore the original setting in tearDown(). Change-Id: Iee9b7759210a82950181a418eb92766a6cf891fc Reviewed-on: https://gerrit.libreoffice.org/49465 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Eike Rathke <erack@redhat.com>