Age | Commit message (Collapse) | Author | Files | Lines |
|
Change-Id: I45d2a1e573a7e4923aaaf5b69f3c4b39215aacc2
Reviewed-on: https://gerrit.libreoffice.org/63778
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
(cherry picked from commit 266aab73a88ae5b62fcddaf383107d8e7edc51f2)
Reviewed-on: https://gerrit.libreoffice.org/63797
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
If a formula contains a matrix, interpreting it will actually result
in modifying it in some ways (e.g. ScInterpreter::PopRangeMatrix() calls
SetErrorInterpreter() on the matrix).
Testcase: rhbz#1645905
Change-Id: I63742449ba0e4e375d6e459dc7bccd7e6b62920e
Reviewed-on: https://gerrit.libreoffice.org/63187
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Jenkins
Reviewed-on: https://gerrit.libreoffice.org/63379
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
It's the same like svExternal(Single|Double)Ref, there's a lot of thread-unsafe
code involved.
Change-Id: Ief8bbbd9393788c374215412ee5236ce6bb551fa
Reviewed-on: https://gerrit.libreoffice.org/63176
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Jenkins
(cherry picked from commit 3460e91ac853964015215ec75be7cf63361ca0e9)
Reviewed-on: https://gerrit.libreoffice.org/63377
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
ScTabEditEngine doesn't override CalcFieldValue, so the function in
EditEngine returns a single space as representation. By inheriting from
ScFieldEditEngine the representation is calculated correctly.
Change-Id: I6f3be8bd2c3936acf9f3d082c25c080bd3cbee76
Reviewed-on: https://gerrit.libreoffice.org/62428
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Reviewed-on: https://gerrit.libreoffice.org/62967
Tested-by: Jenkins
|
|
This simplifies to match empty for the same conditions whether
numeric or not, an empty string does not result in numeric 0 here.
Change-Id: I923a3e1f07dd2691d3ac720fc28ba76986fe6c3d
Reviewed-on: https://gerrit.libreoffice.org/61486
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
(cherry picked from commit 9d8c89d9044edb5ad5c8bc4a8f0fd5868192714e)
Reviewed-on: https://gerrit.libreoffice.org/61495
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
The point is, if one of the FormulaTokens in the formula
is returned as the "result" FormulaToken, then we should not reuse
that same FormulaToken for each formula-cell in the group. If we do,
then we end up with whole group/batch having the same result.
Also adds a unit test specific to this bug.
This issue is non existent in master because "SoftwareInterpreter"
and related code were removed from master long after branch-off
to 6.1.
Change-Id: I10265211b5f14c82ed385401aa3fb838c492872d
Reviewed-on: https://gerrit.libreoffice.org/61362
Tested-by: Jenkins
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
|
|
The parent is always the ScDBCollection that contains the
ScDBCollection::NamedDBs container, not the one the
ScDBCollection::NamedDBs was copy-constructed from.
Change-Id: Ia409347f3aeb9ad7a5e68da7af727adfac98d6a2
Reviewed-on: https://gerrit.libreoffice.org/60833
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
(cherry picked from commit 7ea5d339dc4d8412f436f3affa589bfbd0b1ef68)
Reviewed-on: https://gerrit.libreoffice.org/60841
Tested-by: Eike Rathke <erack@redhat.com>
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
|
|
Also simplify parent/child relationships, get rid
of double data (SdrPage/Parent infos in SdrObjects,
also in SdrObjList). This is all not needed - when a
SdrObject is inserted to a SdrPage, get SdrPage by
traveling over parents (no double info, member as soon
as inserted, ...).
More cleanups/reworks included, will need some more
cleanups, too.
Stabilizing: SetRectsDirty/DefaultStyleSheet
Had to correct the SetRectsDirty stuff for 3D due to
going down the hierarchy while the 2D implementation
goes the other direction -> endless loops. Added special
handling for 3D stuff for now (will be chnaged again when
SnapRect is no longer needed at SdrObject level).
Also had to adapt how the DefaultStyleSheet is set at
incarnated SdrObjects - better: their properties. Since
we now always have a SdrModel, it is possible to correctly
initialize with the correct default StyleSheet from that
SdrModel.
This needs to be done after ForceDefaultAttributes and in a
way that again deletes Items that are set in the StyleSheet.
This leads to an error in CppunitTest_sd_import_tests where
I checked tdf100491 - it is okay and thus I change the control
instance of the imported, XML-dumped file.
The less hard attributes, the better for Styles in general.
Cleanup of comments for last two commits
Corrected SvxShape::getParent()
Needed to get the direct parent, so test for SdrObject
first (to get SdrObjGroup/E3DScene), for SdrPage second
Fixed CppunitTest_sc_subsequent_export_test
Several problems arose. The used SdrCaptionObj was
Cloned, but the clone not inserted to a SdrPage. This
leads to not being able to access a UNO API imlementation
of the SdrPage (SvxPage) on lower levels.
It worked before due to SdrObject having a SdrPage*
additionally to being added to a SdrPage - this is exactly
the main cleanup this change does.
Looked for why it is cloned, could see no reasons. The
SdrCaptionObj exists during all im/export, not difference
to other SdrObjects (that do not get cloned). It is not
changed in any way. It *might* be to suppress a crash that
happened due to UNO API Service emfio/emfio not being
available in the UnitTest scenario. Interestingly it
did not crash with the cloned SdrCaptionObj, but the
Graphic exported was probably wrong.
Fixed by no longer Cloning the SdrCaptionObj and adding
emfio/emfio UNO API Service.
d139f821a5b39535a3e7b9c6261df7e18f8ae8ac
910e7f4bc628a715fda7545dffaf3369d5e76ea0
ca1de01b723051e09ac37d7ec7bba978beea41c5
3a76da1471dfe75e69847f64a6a3519ad21c8c9c
Change-Id: I986586e326b563acebf00d931a7084c6eb09e5f8
Reviewed-on: https://gerrit.libreoffice.org/54689
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Armin Le Grand <Armin.Le.Grand@cib.de>
Reviewed-on: https://gerrit.libreoffice.org/60535
Tested-by: Jenkins
|
|
This makes the branch use the same blacklist, i.e.
commits 4aecbe996349c7767ba3fb1e81db2ef6f94d39ba
and fbd79a36ca8110e37434bb2eb5cc83e892710392.
Change-Id: I85ae8e79ee5285f26a5594ad2fddd4a37284afd0
Reviewed-on: https://gerrit.libreoffice.org/60254
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Jenkins
|
|
This is a combination of 2 commits.
Resolves: tdf#119533 reintroduce time rounding but cut, tdf#118800 follow-up
Regression from
commit c69e7266916ac1b8917477fb4eccdb9098da5792
CommitDate: Thu Jul 19 14:01:30 2018 +0200
tdf#118800 fix rounding error in Calc function HOUR, MINUTE, SECOND.
Rounding was only an error if it produced a value of a full day in
seconds, or if it otherwise led to an inappropriately rounded-up
individual value, but in general some rounding is necessary.
Instead of omitting rounding completely, basically round to
nanoseconds and then do not round individual hour,minute,second
values but instead truncate to the next magnitude so 23:59:59.9999
gives 23h59m59s instead of 24h0m0s
Reviewed-on: https://gerrit.libreoffice.org/59677
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
(cherry picked from commit 273b3e10eab70ebc084cb62568bd699fddfb376e)
Shortcut small negative values to 0:0:0, tdf#119533 tdf#118800 follow-up
... instead of letting them end up as 24:0:0
Reviewed-on: https://gerrit.libreoffice.org/59699
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Eike Rathke <erack@redhat.com>
(cherry picked from commit 98cb91686901dc0133c5c23dc5658d9623dbd436)
0212a2b422a931a24fd2748aa2826a5b60d2a397
Change-Id: I93df1aa54212c1b8816237c9467f270ed28a3f1f
Reviewed-on: https://gerrit.libreoffice.org/59678
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
The value 100000 already was in the year 2000 initial commit,
probably some memory and performance constraints back then. At
least one full column should be sortable, make it two so we don't
bail out that early for functions like MODE() that can take
multiple ranges. In fact maybe ScMatrix::IsSizeAllocatable()
should be taken into account, which is much larger though and
QuickSort() might not play well with it.
Change-Id: I061abfd0f061c8df62c31468df744eb5dc7152be
Reviewed-on: https://gerrit.libreoffice.org/59637
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Eike Rathke <erack@redhat.com>
(cherry picked from commit e8cb36fd6234270c8c31147db35cccab9c234529)
Reviewed-on: https://gerrit.libreoffice.org/59660
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Quote from tdf#73078:
> The function TYPE is specified with the Syntax:
> TYPE( Any value ) and the rule "If a Reference
> is provided, the reference is first dereferenced,
> and any formulas are evaluated."
> [ODF1.2 part2 section 6.13.33 TYP]
>
> Because of argument type "Any" the function cannot result
> in an error. Gnumeric, Apache OpenOffice, and Excel return
> the number 1 in this case.
Therefore, have LibreOffice return 1 as well, rather than
having an "Err:502" ("Error: Invalid argument").
Change-Id: I1e679645e7b2e70e185574f805cd410b0508cbd8
Reviewed-on: https://gerrit.libreoffice.org/59826
Tested-by: Jenkins
Reviewed-by: Eike Rathke <erack@redhat.com>
(cherry picked from commit 0383ccd4e7116c3d26edc1f86b7a74fe3cf649bd)
Reviewed-on: https://gerrit.libreoffice.org/59852
Tested-by: Eike Rathke <erack@redhat.com>
|
|
Either it is 0.0 or it is not.
Change-Id: I8e170e08b7a26ade65ca3b8db26a2d8c581e444c
Reviewed-on: https://gerrit.libreoffice.org/59057
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
(cherry picked from commit 0815f3460fa8a595a085d853e96ffffb8ec0471f)
Reviewed-on: https://gerrit.libreoffice.org/59494
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: Ib207d3723ce1d370a953e652957aaed399affc9c
Reviewed-on: https://gerrit.libreoffice.org/59255
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Eike Rathke <erack@redhat.com>
(cherry picked from commit da0dc858fc05e7f1d6a60ca61f722044e688d4f8)
Reviewed-on: https://gerrit.libreoffice.org/59271
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
... of size 1x1 so all further checks are applicable as for any other array.
Change-Id: I0c8926bc56f5e451ca4847e0f0c76a1be97418f2
Reviewed-on: https://gerrit.libreoffice.org/59317
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Eike Rathke <erack@redhat.com>
(cherry picked from commit 7d785183dda20942459616110bab041f9293a399)
Reviewed-on: https://gerrit.libreoffice.org/59329
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
... so using it in SUMPRODUCT() and other ForceArray context works
as expected.
Change-Id: I60197301edcd2c24f8cb0c5fcf4dc4699d9a6165
Reviewed-on: https://gerrit.libreoffice.org/58118
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
(cherry picked from commit 2008a520e429bc2581001d61b63ff934c2255be0)
Reviewed-on: https://gerrit.libreoffice.org/58175
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
|
|
Obtaining the usual matrix for iterated scalar values doesn't work
here because we don't want the formulas' results but whether there
are formulas at the referenced positions.
Change-Id: I7912f9019d21b803ca327cb022df2014d3cc5c5a
Reviewed-on: https://gerrit.libreoffice.org/58115
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
(cherry picked from commit a44d1b8d47e0ef6645c7c5def1fe5d34d470ae0b)
Reviewed-on: https://gerrit.libreoffice.org/58174
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
|
|
Change-Id: I7a875b172493112b66fca8f70d2061371a05486c
Reviewed-on: https://gerrit.libreoffice.org/57721
Tested-by: Jenkins
Reviewed-by: Eike Rathke <erack@redhat.com>
(cherry picked from commit c69e7266916ac1b8917477fb4eccdb9098da5792)
Reviewed-on: https://gerrit.libreoffice.org/57728
|
|
This is a combination of 4 commits.
Rework FormulaTokenArray ScRecalcMode in preparation for tdf#94925
Strictly order the exclusive bits by priority, let AddRecalcMode()
handle all sets except forced ALWAYS or NORMAL.
Introduce ONLOAD_LENIENT and ONLOAD_MUST splitting ONLOAD to be
able to distinguish later during OOXML import.
Reviewed-on: https://gerrit.libreoffice.org/57402
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
Resolves: tdf#94925 do not unset dirty if formula cell must be recalculated
Reviewed-on: https://gerrit.libreoffice.org/57404
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
Broadcast formula cells marked for recalc, tdf#94925 related
In fact the ScDocument::CalcFormulaTree() call in
WorkbookFragment::recalcFormulaCells() never did anything because
no formula cell was added to the tree. Only visible dirty cells
were recalculated, but not their dependents.
Reviewed-on: https://gerrit.libreoffice.org/57431
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
Remove the check for IsRecalcModeMustAfterImport(), tdf#94925 follow-up
It's now superfluous as we set those cells dirty and broadcast in
ScDocumentImport::broadcastRecalcAfterImport()
Reviewed-on: https://gerrit.libreoffice.org/57439
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Eike Rathke <erack@redhat.com>
f70860b8babf1cce7fda2ae63412659e72dbb4c3
a9dd4ad16c20b23ee8a1d46b69a4702b1ad4c81f
188de2d53a2d54df32d24eeeb148c4f9e87e7cfc
Change-Id: I11217fa19adb766f509d0d6854502112de547c59
Reviewed-on: https://gerrit.libreoffice.org/57438
Tested-by: Jenkins
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
|
|
... as all callers expect, whatever dynamic range creating process
may have created it.
Change-Id: I47b2e174d5bf4d5c23f10685526b48eee07dd6a4
Reviewed-on: https://gerrit.libreoffice.org/57567
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
(cherry picked from commit 6db5e1bdd67531fab14b375d6c624237d38de297)
Reviewed-on: https://gerrit.libreoffice.org/57621
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
|
|
... instead of only top left that is referenced for other
elements.
Change-Id: I718946d7e4327b152e2d9f80712395fd7ab67dee
Reviewed-on: https://gerrit.libreoffice.org/57235
Tested-by: Jenkins
Reviewed-by: Eike Rathke <erack@redhat.com>
(cherry picked from commit 8afccbd129ecda81ff00dd2c6e5e10af254ae0ef)
Reviewed-on: https://gerrit.libreoffice.org/57247
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
|
|
Change-Id: I0381179347960293f5d470ed231d626cb6707b5a
Reviewed-on: https://gerrit.libreoffice.org/57144
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
(cherry picked from commit a5b9bb7be70c7aec2388199e68a0cf86dd220955)
Reviewed-on: https://gerrit.libreoffice.org/57147
|
|
Change-Id: I9b6a2c2504c9ce060906ac3bf156721709fef2f3
Reviewed-on: https://gerrit.libreoffice.org/55490
Tested-by: Jenkins
Reviewed-by: Eike Rathke <erack@redhat.com>
Reviewed-on: https://gerrit.libreoffice.org/56651
Tested-by: Eike Rathke <erack@redhat.com>
|
|
Otherwise fdo#74583-1 asserts with calc's threading.
Change-Id: I2ba46a15d1d5216b279ae21d92ae52353e470df6
Reviewed-on: https://gerrit.libreoffice.org/56479
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
(cherry picked from commit ceabe204a7547988df8851e5d807ec83105e190c)
Reviewed-on: https://gerrit.libreoffice.org/56515
|
|
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>
(cherry picked from commit 4d37e0d5dd22343a3b7942649f460db544ae536c)
Reviewed-on: https://gerrit.libreoffice.org/56516
|
|
There appears to be a lot of caching involved in the code invoked
by ScGetPivotData(). Testcase is e.g. tdf#89186-1 (with minimal
formula size disabled again).
Change-Id: If7e2a972898c358dc8f80cf238f8d5ccf541f16d
Reviewed-on: https://gerrit.libreoffice.org/56525
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
(cherry picked from commit 7e1cabd96526cb7befc5ea5073358093efbe12d0)
Reviewed-on: https://gerrit.libreoffice.org/56565
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
|
|
Otherwise causes problem with ooo#70213-3 (and
mnOpenCLMinimumFormulaGroupSize disabled).
Change-Id: I3acfad34476e74595b55a559df5bfd72945a1869
Reviewed-on: https://gerrit.libreoffice.org/56291
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
(cherry picked from commit 8617c8ed9047e46808c292bd68e5b573aa7af74d)
Reviewed-on: https://gerrit.libreoffice.org/56451
|
|
Use same approach as in Tools > Options... > LibreOffice >
Application Colors.
Change-Id: I5061709222cde2591e2937cdd67bbb5b6ad7f3f8
Reviewed-on: https://gerrit.libreoffice.org/56344
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <tietze.heiko@gmail.com>
Tested-by: Heiko Tietze <tietze.heiko@gmail.com>
(cherry picked from commit 364c828e6ea9e78a145a4ec32a677c7539a913a9)
Reviewed-on: https://gerrit.libreoffice.org/56383
Reviewed-by: Maxim Monastirsky <momonasmon@gmail.com>
|
|
Otherwise GetFormatTable() asserts with fdo#74507-1 (and
mnOpenCLMinimumFormulaGroupSize disabled).
Change-Id: Ic624076bd552a2f8370f942063e8b79ca703d9fc
Reviewed-on: https://gerrit.libreoffice.org/56288
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
Tested-by: Luboš Luňák <l.lunak@collabora.com>
(cherry picked from commit e7792c4bf270d5a98ec5b8d2be2e25c11a8ecf02)
Reviewed-on: https://gerrit.libreoffice.org/56373
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
fdo#35927-1 (with minimal formula size disabled) crashes
in LinkManager::CloseCachedComps(). The whole LinkManager class feels
thread-unsafe, so just blacklist.
Change-Id: Idd7ec6b47f5269c977b600dadfc3a05a5287a86d
Reviewed-on: https://gerrit.libreoffice.org/56241
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
Tested-by: Luboš Luňák <l.lunak@collabora.com>
(cherry picked from commit 0a4a42e98479996b2f3bb19a884c057518fece4f)
Reviewed-on: https://gerrit.libreoffice.org/56372
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Since the code uses ScExternalRefManager, which caches values, so
better just disable it. Can be seen e.g. with fdo#78490-1 (and
mnOpenCLMinimumFormulaGroupSize disabled). The doc actually asserts
in GetFormatTable() called from ScExternalRefManager, but there
seems to be no point in fixing just the assert if the whole class
is possibly problematic.
Change-Id: I4ace488414fd15b4ad0b88da51205b02c561c7a6
Reviewed-on: https://gerrit.libreoffice.org/56377
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
For the first =A1+B1 in B1 with iterations the result could had
been #VALUE! depending on string conversion calculation settings.
Change-Id: I8d7a745d67ba7a20f7a66e8aa143642d08ea5111
Reviewed-on: https://gerrit.libreoffice.org/56173
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
(cherry picked from commit 93dcfa7ee157dd865f5d266d1f877014462eac72)
Reviewed-on: https://gerrit.libreoffice.org/56179
|
|
Change-Id: Ibd4f858abe825652c3df68ce7a21cbf16feea735
Reviewed-on: https://gerrit.libreoffice.org/55824
Tested-by: Jenkins
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Eike Rathke <erack@redhat.com>
(cherry picked from commit b1740fba0d1e6e3d69c3781734509317f42a0e4f)
Reviewed-on: https://gerrit.libreoffice.org/56129
|
|
If a token is not suitable for the generic threading code, it's presumably
not suitable for threading with SwInterpreter either. This is possibly
already handled by checks in CheckToken(), but this can't hurt, just
in case a token is in CheckForThreading() but not in CheckToken().
Change-Id: Ib969a21e9021fc6debc2131dc718419c6b25d363
Reviewed-on: https://gerrit.libreoffice.org/55886
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Luboš Luňák <l.lunak@collabora.com>
(cherry picked from commit 39dc45b23a6aacb6439162cbbb7762f3d0c0b5fb)
Reviewed-on: https://gerrit.libreoffice.org/56140
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
Now there's just one place to decide what is used first,
in InterpretFormulaGroup(). Place in other places now checks both threading
and OpenCL, which should be cheap, but it also allows e.g. falling
back from OpenCL to threading if it doesn't work out for a specific
formula group.
Change-Id: I0cac55197c5278174d303691c20f77b842995c84
Reviewed-on: https://gerrit.libreoffice.org/55885
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Jenkins
(cherry picked from commit e0e21f2747c19dae13332f4e59949c717aa114f3)
Reviewed-on: https://gerrit.libreoffice.org/56139
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
Change-Id: Ife00755586be9a42ac5cf1f9b3debb396db1b45f
Reviewed-on: https://gerrit.libreoffice.org/56055
Tested-by: Jenkins
Reviewed-by: Eike Rathke <erack@redhat.com>
(cherry picked from commit 28f3e44e99283ede636c28c68bffb2b9df0bbcf8)
Reviewed-on: https://gerrit.libreoffice.org/56128
|
|
... instead of hasEmptyData() that considers inherited svEmptyCell
as well.
Effectively a regression from
commit 0e9e3be6f51436c1e5bf1481a434a85e334c09ea
CommitDate: Tue Mar 26 01:41:17 2013 -0400
More on ScCellIterator usage migration.
that started to include mpCurFormula->IsEmpty() in
ScCellIterator::isEmpty() which later was renamed to
ScCellIterator::hasEmptyData() and isEmpty() introduced for real
empty.
Change-Id: Iec97d58080016c28bc9a7e47d056e4d301263928
(cherry picked from commit cfe2e4eb835c06b24adabd60c7a3fddbd3f4dbc9)
Reviewed-on: https://gerrit.libreoffice.org/55803
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
|
|
If sc/qa/unit/data/ods/functions.ods is run with OpenCL disabled
(and the mnOpenCLMinimumFormulaGroupSize check disabled too), then
ScTokenArray::CheckToken() considers the token for OpenCL, and if
the token is ocExternal, it passes all the related OpenCL checks,
and thus ScTokenArray::CheckForThreading() is never called.
However, since OpenCL is disabled, then actually the threaded code
will be executed, since the blacklisting for ocExternal has not been
done.
Change-Id: Ib4d4d63d3925746f6e13da0611ac869e9a094b5b
Reviewed-on: https://gerrit.libreoffice.org/55676
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Tor Lillqvist <tml@collabora.com>
(cherry picked from commit fb4ad5b0c766440e1a47d991c6cbc9cb017ada59)
Reviewed-on: https://gerrit.libreoffice.org/55719
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
Tested-by: Luboš Luňák <l.lunak@collabora.com>
|
|
Opcode ocExternal is used for functions implemented as UNO calls,
which has a number of problems:
- ooo#118213-2 contains GETEOMONTH(), which maps to ocExternal, which
calls AnalysisAddIn::getEomonth() in scaddins, which ends up calling
ScModelObj::getPropertyValue(), which deadlocks on SolarMutex
- it uses ScUnoAddInCollection class, which uses delayed initialization
(even though it's created on-demand), which is not thread-safe; however,
it seems that the initialization is generally done already while loading
a file, so this is possibly in practice safe
- who knows what all kinds of race conditions there are in all the functions
this may call via UNO
Change-Id: I80c4264102b8bc492853852c2c12e5cd2a8ea99e
Reviewed-on: https://gerrit.libreoffice.org/55382
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Jenkins <ci@libreoffice.org>
(cherry picked from commit abb19edc79bd7d96827214d3b49f80e270e1c0b7)
Reviewed-on: https://gerrit.libreoffice.org/55390
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
Tested-by: Luboš Luňák <l.lunak@collabora.com>
|
|
Before commit b366adcf5aca this function didn't do anything for unhandled
opcodes, but the commit made the else branch disable vectorization
for "the rest" of opcodes. That meant that basic opcodes such as ocAdd,
which didn't get thrown out by the SC_OPCODE_START_BIN_OP block (since they
are in the allowed subset), ended up in the else block and vectorization
got disabled.
Change-Id: I9eb408b601f48b8d7b5022ec85225d92729cd778
Reviewed-on: https://gerrit.libreoffice.org/55362
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins <ci@libreoffice.org>
(cherry picked from commit a5bae14bc3ae4fd1d0bd3bf72c5a6151d1ccf762)
Reviewed-on: https://gerrit.libreoffice.org/55367
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
Tested-by: Luboš Luňák <l.lunak@collabora.com>
|
|
Jump opcodes such as ocIf are quite clearly not in the function range,
as can be seen in include/formula/opcode.hxx . This used to be harmless,
since originally ScTokenArray::CheckToken() didn't do anything in the default
case, but commit b366adcf5aca changed it to disable vectorization for
unhandled opcodes.
Change-Id: Ia182f446f1da819e18309075aa00251674640c74
Reviewed-on: https://gerrit.libreoffice.org/55361
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins <ci@libreoffice.org>
(cherry picked from commit 377cb34ac023096af7f1708c3d4ea5293d4cc7ab)
Reviewed-on: https://gerrit.libreoffice.org/55368
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
Tested-by: Luboš Luňák <l.lunak@collabora.com>
|
|
Change-Id: I176884ea5161c4f12419431a74bfb2c6fbed4e0f
Reviewed-on: https://gerrit.libreoffice.org/55317
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins <ci@libreoffice.org>
(cherry picked from commit 5870cf6d9b42094dfda3dbf85817003e021d6559)
Reviewed-on: https://gerrit.libreoffice.org/55324
|
|
Use FormulaError::NestedArray for now to be able to backport
without new string resources. Introduce a more specific error in
another change.
Change-Id: I49bf731f0b17c81dc6a125718bf104e218e508cc
Reviewed-on: https://gerrit.libreoffice.org/55300
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Eike Rathke <erack@redhat.com>
(cherry picked from commit 2d330a5c48fd200db10fba7c40688221185c2dec)
Reviewed-on: https://gerrit.libreoffice.org/55307
Tested-by: Jenkins <ci@libreoffice.org>
|
|
According to 1ecdc7aaf66 it is really needed only for resolving fields,
so if there's no field, simply concatenate the contents, as used to
be the case before that commit. This should be faster and also safer
in the case of Calc's threading enabled.
Change-Id: I23a2e1873deb8538e2a1ae0dd80af7e5356c18a5
Reviewed-on: https://gerrit.libreoffice.org/54986
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-on: https://gerrit.libreoffice.org/55275
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
Tested-by: Luboš Luňák <l.lunak@collabora.com>
|
|
Triggers a number of asserts on hard-recalc (Shift+Ctrl+F9) with ooo#58183-1
that would require passing ScContextInterpreter* to a number of functions,
so just blacklist it.
Change-Id: I0c3666a3423cea7c77f530480b8b63506c4bbad2
Reviewed-on: https://gerrit.libreoffice.org/54933
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-on: https://gerrit.libreoffice.org/55274
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
Tested-by: Luboš Luňák <l.lunak@collabora.com>
|
|
and reduce unnecessary work in ScRangeList
Change-Id: I0ee767fe28571f75f8a2ff980cea27c97c9797dc
Reviewed-on: https://gerrit.libreoffice.org/54705
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
...on indirect dependencies too.
Here a self reference to any formula-group
means if there are any references in a formula
(of the formula-group itself or any of its dependencies)
that points to any element inside the formula-group.
If there are any self-references, then that formula-group
can't be computed in parallel.
For example, with this patch we can detect the following case:-
Suppose the formula-group that we want to check is:
"=(F2+G2-10)*10.0" spanning A2:A100. Let the formula-group
starting at F2 be "=A1*0.1-10". The indirect dependency
formula-group starting at F2, references back the elements of
our original formula-group at A2. This makes the F.G at
A2 unsafe for parallel computation.
Concretly, this patch fixes a recalc crash on tdf#63638/1
Change-Id: I7b999a34571b191d2f70da6a3831f78b24a6b0a7
Reviewed-on: https://gerrit.libreoffice.org/54433
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Jenkins <ci@libreoffice.org>
|
|
Otherwise with Calc's threading enabled and novell#306440-1.xlsx
this function gets called multiple times at the same time and
the SetText() calls operate on the same object.
Change-Id: Ic044132ac98bed46440aadbdad6ad36f3a2e9beb
Reviewed-on: https://gerrit.libreoffice.org/54520
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
|
|
Found with bin/find-unneeded-includes
This one caused lots of fallout, manage it separately
Change-Id: Idf153caa07b1edd85352609806f5b8b74fc6ead8
Reviewed-on: https://gerrit.libreoffice.org/54410
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
|
|
Change-Id: I904067260c15263f8169f095809e642d0738f6bb
Reviewed-on: https://gerrit.libreoffice.org/53957
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|