Age | Commit message (Collapse) | Author |
|
Change-Id: I300d14d580d450ec338129918955651b9d40d5d2
Reviewed-on: https://gerrit.libreoffice.org/78059
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I94d0e85c731801b8b0ec844ae2a8f268b2f1022e
Reviewed-on: https://gerrit.libreoffice.org/77256
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
|
|
Revert "tdf#94677 Calc is slow opening large CSV, avoid reset SetUpdateMode"
This reverts commit c47d0174f2c6c3ebcb3b33276d0277e7aceac330.
Change-Id: I38e065d44dfb9d08498176b8231aff14ff51d91c
Reviewed-on: https://gerrit.libreoffice.org/77109
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Avoid resetting SetUpdateMode in CreateFieldEditEngine while calculating
row height.
This takes the time from 1m25 to 49s for me.
Change-Id: If406eac1a8b031f1734d9c2376c413dfa22d89f8
Reviewed-on: https://gerrit.libreoffice.org/74630
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I050b4bdff4eaa645316538725c69e83bee4a90c5
Reviewed-on: https://gerrit.libreoffice.org/74526
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Again, unless given a hint, mdds always starts a search from the beginning
of the container, so iterating over a column becomes quadratic.
Shows when selecting (the title of) a large column with different value types,
e.g. in tdf#120558, which triggers setting the selection from
VclQt5Clipboard::setContents(), which calls this.
Change-Id: Ida009c5ddf18ccdc8dff88c15530cc7e33ce80e7
Reviewed-on: https://gerrit.libreoffice.org/72366
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
If an object is anchored to a cell, then it is expected that
this object belongs to this cell and it's survive after a
deletion of the cell makes no sense. So the anchored object
will be deleted together with the cell. Objects anchored to
the page are not affected.
Change-Id: I91f24bf92ab5329aba1d053b3cf5fba77bf16e4f
Reviewed-on: https://gerrit.libreoffice.org/69390
Tested-by: Jenkins
Reviewed-by: Eike Rathke <erack@redhat.com>
|
|
Change-Id: I7b4d2e5e611935284e2902b0089950768dfb7717
Reviewed-on: https://gerrit.libreoffice.org/72036
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Iafbdd3b7e872cd15718879e5c7f1256069156d5f
Reviewed-on: https://gerrit.libreoffice.org/71343
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
This takes the loading time from 14s to 13s
Use a o3tl::sorted_vector to reduce searching time
Change-Id: I947a3e5001fe1058cf9bffc9509d026af4122ef4
Reviewed-on: https://gerrit.libreoffice.org/71035
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
This takes the loading time from 15s to 14s.
Reduce unnecessary allocation/copying by passing down ownership of the
newly created ScPatternAttr to the item pool
Change-Id: Iec38bbff572d10ff8d86f5e65fbe9a96b6a5a706
Reviewed-on: https://gerrit.libreoffice.org/71010
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
since
commit 7282014e362a1529a36c88eb308df8ed359c2cfa
Date: Fri Feb 1 15:15:16 2019 +0100
tdf#50916 Makes numbers of columns dynamic
Change-Id: I858e61b3a1158bf47b5855e56d63c77cc87aa09b
Reviewed-on: https://gerrit.libreoffice.org/70902
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
since
commit 7282014e362a1529a36c88eb308df8ed359c2cfa
Date: Fri Feb 1 15:15:16 2019 +0100
tdf#50916 Makes numbers of columns dynamic
Change-Id: Ib8dc06b80beed81a2543f343483599c425e87369
Reviewed-on: https://gerrit.libreoffice.org/70901
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Ie90e53583484ee4f378ec92634adf3be7cd9ecbb
Reviewed-on: https://gerrit.libreoffice.org/70650
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
With this commit we are making numbers of columns
dynamic, but the number of maximum supported
columns will be the same (1024).
Such approach will allow us to check issues
(eg. performance, LO format etc.), and improve it.
Increasing number of maximum columns, will be done
in separate commit.
Change-Id: Ibac4101e9ffc05e3548eca1c198f6319ac7ff9aa
Reviewed-on: https://gerrit.libreoffice.org/44802
Tested-by: Jenkins
Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
|
|
ScDocument dtor calls ClearLookupCaches(), which calls GetNonThreadedContext().
But ScDocument instances used for copy&paste GetFormatTable() fails
on null mxPoolHelper, because ScDocument ctor doesn't set it in such a case.
So set up the pointer in ScInterpreterContext on demand only if actually
needed.
Change-Id: If3811da5bb00a2d7d404c089ee1bf46037a2cddb
Reviewed-on: https://gerrit.libreoffice.org/68350
Tested-by: Jenkins
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
|
|
of the visible sheet of an embedded spreadsheet,
instead of showing always the first column and row.
Change-Id: I7b712d97f152da3cecf8371e21cf0a82ef21f199
Reviewed-on: https://gerrit.libreoffice.org/67867
Tested-by: Jenkins
Reviewed-by: László Németh <nemeth@numbertext.org>
|
|
IFS/SWITCH if the call did not originate from
ScDocShell::DoRecalc()/ScDocShell::DoHardRecalc()
Change-Id: Ifdb3a496276dc841fc42a1bad1876cfb1057baf6
Reviewed-on: https://gerrit.libreoffice.org/67414
Tested-by: Jenkins
Reviewed-by: Dennis Francis <dennis.francis@collabora.com>
|
|
Includes unit tests for correctness of the new functionality.
Change-Id: I35f7449006d973de006a756664ae468b9a0dcb31
Reviewed-on: https://gerrit.libreoffice.org/66841
Tested-by: Jenkins
Reviewed-by: Dennis Francis <dennis.francis@collabora.com>
|
|
Change-Id: If15ac08d8334a386312870d3ebebb385cf55e5f6
Reviewed-on: https://gerrit.libreoffice.org/67050
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Ie211eea01eaceb718f701d3fdbb6253700d14e5e
Reviewed-on: https://gerrit.libreoffice.org/66831
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I99c1f0a5d5c760663f5150b477a936d2f45b874c
Reviewed-on: https://gerrit.libreoffice.org/66322
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
The testcase from tdf#102364 is actually a rather pathological case,
the document having a full 1M cells column with the same formula, and doing
undo in this case essentially pastes the column over itself (I think
a column is first deleted, which moves this column, and then ScUndoInsertCells
will trigger ScMoveUndo::UndoRef(), which will paste the column in that place
again. And since this is done cell by cell, removing old cell first splits
the large formula group and then adding a new cell with the same formula
rejoins the formula group, and setting these formula group changes for all
the cells over and over actually takes a long time.
Avoid that by delaying the formula grouping operation and do it just once
at the end. I'm not sure if this is that good way of handling this, given
the testcase is very specific, but I can imagine something similar happening
in other possible cases (manual copy&paste of a large column over itself
or moving it slightly up or down).
Change-Id: Ie4241197103a039c232150333250f78175b1c2c7
Reviewed-on: https://gerrit.libreoffice.org/64782
Tested-by: Jenkins
Reviewed-by: Kohei Yoshida <libreoffice@kohei.us>
Reviewed-by: Eike Rathke <erack@redhat.com>
|
|
Change-Id: I98b2d90c8345f07010f6defd82557188d5cd35c7
Reviewed-on: https://gerrit.libreoffice.org/64808
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
and trim all ranges to match this actual data area. Don't do
this optimization for COUNTIFS where there is no main-range.
This optimization is also turned off if any of the parameter
ranges are not double-refs.
Benefits in cases like -
=SUMIFS(A:A, B:B, ">=20", C:C, "<=10") and the is data only
in say A1:A10000 and rest are empty. Range trimming in this
case saves lot of execution time and memory (for vConditions
and vRefArrayConditions).
Change-Id: I6b4ad91e23f89dc48603b98000bcef4dbdb03112
Reviewed-on: https://gerrit.libreoffice.org/64657
Tested-by: Jenkins
Reviewed-by: Eike Rathke <erack@redhat.com>
|
|
Test::testFormulaRefUpdateRange could trigger this, leading to recursion
that wasn't handled properly by the code, since it wasn't expected
to happen at late time (ScDependantsCalculator should have already
caught it). This is all caused by the fact that FetchVectorRefArray()
fetches also all rows before the given rows (to make the caching simpler
I suppose). But that fetching could lead to Interpret() calls.
Therefore, make ScDependantsCalculator in OpenCL mode check also all
rows above.
Change-Id: Iaecc105663df21b01443759287cec605470d34a5
Reviewed-on: https://gerrit.libreoffice.org/64236
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
Found with bin/find-unneeded-includes
Only removal proposals are dealt with here.
Change-Id: Iabe571aa8f00492902c499094bea8365a3e17fca
Reviewed-on: https://gerrit.libreoffice.org/63623
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
|
|
Change-Id: I3cdce43e0ba9b17f9bf993ebcad5f64f0834ceaf
Reviewed-on: https://gerrit.libreoffice.org/63421
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
used in ScInterpreter::IterateParameterIfs(). Store this
cache as a member of ScInterpreterContext (maConditions).
Create a static pool of ScInterpreterContext's so that
the embedded maConditions is reused everytime a formula-group/
formula-cell is calculated. There needs to be two separate
static pools - one for threading, one for non-threaded
computation of formula-cells. With this, we can have better
performance of the cached maConditions as well as
mScLookupCache. In threaded case there is no recursive
computation of cells as dependencies are all pre-computed.
The thread-indexed lookup cache array in ScDocument is
removed as now the lookup caches on context lives as long
in the static context pools.
This cached vConditions array can take advantage
when there are lots of SUMIFS/COUNTIFS with arguments of
similar dimensions in the document. Otherwise it will be
allocated from scratch for every COUNTIFS/SUMIFS formula-cell.
Change-Id: I654b05e55035ce6efcf07d32d36623c9d76b0ff6
Reviewed-on: https://gerrit.libreoffice.org/63066
Tested-by: Jenkins
Reviewed-by: Dennis Francis <dennis.francis@collabora.com>
|
|
E.g. ScModelObj::GetFormatter() can be rather deep in the call chain
and it just doesn't make sense to pass ScInterpreterContext* to
all the relevant places (and it's a question if it makes sense
to pass it around at all, googling shows that thread_local is not
really _that_ slow).
Change-Id: I9114ef8a10d82a10968391718099edccde7a2663
Reviewed-on: https://gerrit.libreoffice.org/63184
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
...instead of removing an arbitrary ScLookupCache with a matching ScRange from
the first ScLookupCacheMap that happens to contain one.
79449d73900d7a9bf061244d76f5f8eecc441198 "make VLOOKUP in Calc thread-safe"
introduced per-thread ScLookupCacheMaps, so that multiple ScLookupCacheMaps can
contain ScLookupCaches with identical ScRanges. For example, UITest_calc_tests6
adds ScLookupCaches for ScRange 1!R2C18:R97C18 to different threads'
ScLookupCacheMaps. That causes confusion so that calling
ScDocument::RemoveLookupCacheHelper to remove an ScLookupCache from a
mismatching ScLookupCacheMap accesses a different
ScLookupCache* pCache = (*it).second.release();
that may already have been destroyed; see failing ASan/UBSan builds like
<https://ci.libreoffice.org//job/lo_ubsan/1067/>.
Change-Id: I70c33b236dc502b8a98e0e313d422424eec5dbca
Reviewed-on: https://gerrit.libreoffice.org/62194
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Change-Id: If326175d571d15752efd1b63df45b2bc785f7541
Reviewed-on: https://gerrit.libreoffice.org/61653
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
There is mutex protection needed for accessing the same SvtBroadcaster
when calling StartListeningArea(). Also some of the memory management
and caching needed fixing.
Change-Id: Ia57ed85286cf195521719cfd3b320f73a6342bb1
Reviewed-on: https://gerrit.libreoffice.org/61187
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
Since ScInterpreter::IterateParameters() iterates over just one range,
there's no point to to set flags for that range and then generically
walk over that range, just directly use the range.
Change-Id: I13003eb09bd98f145e9ead5e485596168d9399cb
Reviewed-on: https://gerrit.libreoffice.org/60866
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
the ScInterpreterTableOpParams are allocated and deleted in the same
method, so the vector in ScDocument doesn't actually need to own them
Change-Id: Icd5a33c891e608abc0843c144d7a53f44c3ac02f
Reviewed-on: https://gerrit.libreoffice.org/60354
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
and simplify
Change-Id: Ic5ec97680349a1ea837891b2300dff05cd00026f
Reviewed-on: https://gerrit.libreoffice.org/59431
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I5b5ffe9f421b63951b05d9d6f58af346b8fdf0d1
Reviewed-on: https://gerrit.libreoffice.org/59029
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
mostly this seems to be fallout from
commit 089a4f245325a5be5cd5951d85305d791b4d9cb6
Date: Mon Aug 6 14:55:04 2018 +0200
remove Calc's software interpreter
Change-Id: Ib48696e724969a28a7d41155ba1573fd9cd58be6
Reviewed-on: https://gerrit.libreoffice.org/58869
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Icbf8eb814e7d3bd57e78d2d1a97eb44bbfd2a432
Reviewed-on: https://gerrit.libreoffice.org/57874
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I112260f1ea02c2173be56dde1d78497fc8339cec
Reviewed-on: https://gerrit.libreoffice.org/57543
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
- Add setting to embed used fonts only
- Add setting for filtering of Latin, Asian, Complex script fonts
Change-Id: I8d093ed05fdcef3715616c008f6eeaa8cfbcc850
Reviewed-on: https://gerrit.libreoffice.org/57167
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
Change-Id: Ic817fbd7953afe9007f9ec6071f53c8beca6dd18
Reviewed-on: https://gerrit.libreoffice.org/56949
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
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>
|
|
Found with bin/find-unneeded-includes
These were quite a bit entangled with each other
thus a lot of fallout management was necessary.
Also try harder to use fw declarations in files already checked
Change-Id: Ia69c3a0d66ec2763ac03094aaa1b646a290d3cfa
Reviewed-on: https://gerrit.libreoffice.org/56361
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
|
|
Change-Id: I117424b6d28d4cc6cc6d7146f9df861a8075a791
Reviewed-on: https://gerrit.libreoffice.org/56320
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
software interpreter like in CPU threading.
This patch also reworks the cycle detection
to make it more robust.
Since the dependency computation also does
cycle detection, there is no need to disable
group-calc(threaded/OpenCL/SW Interpreter)
for non-leaf nodes in recursive interpret.
The rework of cycle detection ensures that
it fixes tdf#95748 correctly.
Change-Id: I460addb768eedc0914491a3d24ae7220c3afbb20
Reviewed-on: https://gerrit.libreoffice.org/55665
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Jenkins
|
|
FormulaGroupContext is actually a cache of cell results for OpenCL,
but the cached values are not always properly discarded. Happens e.g.
with testFormulaDepTracking in sc_ucalc fails if OpenCL is forced for
it (i.e. with mnOpenCLMinimumFormulaGroupSize disabled), because
a SetString() call for a cell doesn't invalidate the cache.
This obviously reduces the cache hit rate a bit, but according to my
tests it's not that bad (in fact the cache doesn't seem to get used
that often, so I even wonder if it's worth it).
Change-Id: Ia7ef2214956861d26ca3a42b84f9fecbff8316d0
Reviewed-on: https://gerrit.libreoffice.org/56087
Tested-by: Jenkins
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
|
|
As it modifies ScAttrArray, which is not thread-safe (has std::vector
per each column, so multiple threads may try resize it etc.). So if
threaded calculation is done, delay the calls to the main thread.
Change-Id: I3d87665c0dd0d40f0c2efbcf8958240ee5580233
Reviewed-on: https://gerrit.libreoffice.org/55602
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Jenkins
|
|
Some code, such as statics in ScGlobal, cannot(?) easily access ScDocument.
Moreover whether Calc is currently performing threaded calculations
is not really a state of a document but of Calc itself. Still keep
the state accessible via ScDocument for the pipe-dream future where it
possibly really will be a state of the document.
Change-Id: I2b112221e7fa1b2b4469cfd289fc201025585a5f
Reviewed-on: https://gerrit.libreoffice.org/54796
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Michael Meeks <michael.meeks@collabora.com>
|
|
Found with bin/find-unneeded-includes
Simple removal proposals are dealt with here
and a bit of fallout management
Change-Id: Ia6f8d4ca46d7b218f5827052ced5641367bd4478
Reviewed-on: https://gerrit.libreoffice.org/54683
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
|