Age | Commit message (Collapse) | Author | Files | Lines |
|
Change-Id: I560a5ff4caf204cc46d6cfb5f7680328295020fd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113949
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
See tdf#42949 for motivation
Change-Id: Ifc253bf800bb1468b5774663a93f4fb30bec81d3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113657
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
|
|
Change-Id: Ieaee9a3e3ef4aa9bc390ddb198ee1718f635bcbf
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111391
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Page calculation counted the hidden columns, resulted
printing blank pages by accident.
Extend GetPrintArea() and GetTableArea() to count pages
without the hidden columns, too.
Co-authored-by: Tibor Nagy (NISZ)
Change-Id: I4817965a675e059cdc8f81ca3bb6e128af874f2f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110028
Tested-by: László Németh <nemeth@numbertext.org>
Reviewed-by: László Németh <nemeth@numbertext.org>
|
|
Change-Id: I6823486a45311f81f0ed789dedff6c02b8fb3893
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109056
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
The thread-specific RecursionHelper object is reused between runs,
so it should not be freed after a threaded calculation finishes.
But since threads may be left around longer by the thread pool,
the object may be destroyed at an unknown later time. Which could
possibly cause problems if it refers to data that's been destroyed
meanwhile (I think all the pointers in RecursionHelper are not
owning, so this should not be a problem in practice, but still).
So at least clear the contents, they shouldn't be reused anyway.
Change-Id: I8934441c754d20bd20d7e19a8510d9323c0db894
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106758
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
Tasks that are being worked on but are not yet finished are removed
from maTasks, so maTasks.empty() does not mean "idle". I fixed one
case already in 2ad4e77a0f266ae6e6fccaebb1d080d2880bdac3, this one
fixes joinAll() which has a similar problem and triggers
https://gerrit.libreoffice.org/c/core/+/69473/3/sc/source/core/data/documen2.cxx#312
Also rename joinAll() to joinThreadsIfIdle(), as that's what it really is.
Change-Id: I8129cfadb81be968575ea8718de9ae997b877a4e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106701
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: I217817e2e4a42b096f5a7fb6344568c10d69aab2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106078
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
|
|
Change-Id: If88c71351fb157b8eab242fceb65422f05eec3d7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103645
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Ie06fef80990b539d5b6cc87c80d9bbd3e851766c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103299
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
and similar, allowing a few redundant null checks to be dropped
Change-Id: Ice0d6d57df112a09d3e1af3d34126b3519529daf
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103278
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
and so some nullptr checks can be removed
Change-Id: I7dedc2c6d054d9749db9766eaa3a5681842b2b69
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103239
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
can be shown by readjusting ScXMLChangeTrackingImportHelper
members to explicitly pass the target ScDocument around and
identify there is no null case path possible
Change-Id: I15a4eadfe4bfadf97365f9a15c6ec5572d77d578
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102869
Tested-by: Caolán McNamara <caolanm@redhat.com>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: I183fd26df45ddd4e7432833c5c77b07b64e03609
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102842
Tested-by: Caolán McNamara <caolanm@redhat.com>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: Ie2639fc10f1bf6a5c046e4e075337b117a8f6144
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102837
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: I68b1fb4cda82a8a334e60b43216cfa74534e4a28
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102836
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: I0c88a9383e52a7406b466a82cda8f54a0a7722c8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102585
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: Ib09a5331dfd57a99852555348c46730368d8d61d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100531
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Iee5f4bfcd8ad90d37e787d225928a5ae7b269f2d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100048
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I9ffe58d68172c6fe9c76000c01c0c67a03967146
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99699
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
In the testcase ScColumn::StartListeningUnshared() gets called
repeatedly with almost the same cells range (just extending),
so this gets quadratic. Delaying and doing it once on the whole
range at the end avoids this.
Change-Id: I3e92817d434cf7e4be0ea658f9adc0a24ceda260
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95531
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
Especially with the testcases given in the bugreport the undo history
would keep many unused shared strings.
Change-Id: I57fcad73532fdcbad0a1298fbd06cb35c058bf96
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95045
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
instead of MAXROW, MAXCOL. In preparation for more conversion work that
needs to be done to make jumbo sheets work.
Change-Id: I4698b8fe111e060ae2a965afc7276b7e7bfb482a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95153
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
pLocalData and pCharClass static veriables on ScGlobal are always
set from SvtSysLocale on init, probably for "faster" access.
This can just be made simpler with access through a getter,
so this introduces a getter for ScGlobal::getCharClassPtr and
ScGlobal::getLocaleDataPtr, where the access is made directly to
SvtSysLocale instance.
In addition all the usages needed to be fixed, which is all over
the calc module.
Change-Id: Ie047b158094e25bbaa2aba15074d7998d9541787
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89249
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
"Find explicit casts from signed to unsigned integer in comparison against
unsigned integer, where the cast is presumably used to avoid warnings about
signed vs. unsigned comparisons, and could thus be replaced with
o3tl::make_unsigned for clairty." (compilerplugins/clang/unsignedcompare.cxx)
o3tl::make_unsigned requires its argument to be non-negative, and there is a
chance that some original code like
static_cast<sal_uInt32>(n) >= c
used the explicit cast to actually force a (potentially negative) value of
sal_Int32 to be interpreted as an unsigned sal_uInt32, rather than using the
cast to avoid a false "signed vs. unsigned comparison" warning in a case where
n is known to be non-negative. It appears that restricting this plugin to non-
equality comparisons (<, >, <=, >=) and excluding equality comparisons (==, !=)
is a useful heuristic to avoid such false positives. The only remainging false
positive I found was 0288c8ffecff4956a52b9147d441979941e8b87f "Rephrase cast
from sal_Int32 to sal_uInt32".
But which of course does not mean that there were no further false positivies
that I missed. So this commit may accidentally introduce some false hits of the
assert in o3tl::make_unsigned. At least, it passed a full (Linux ASan+UBSan
--enable-dbgutil) `make check && make screenshot`.
It is by design that o3tl::make_unsigned only accepts signed integer parameter
types (and is not defined as a nop for unsigned ones), to avoid unnecessary uses
which would in general be suspicious. But the STATIC_ARRAY_SELECT macro in
include/oox/helper/helper.hxx is used with both signed and unsigned types, so
needs a little oox::detail::make_unsigned helper function for now. (The
ultimate fix being to get rid of the macro in the first place.)
Change-Id: Ia4adc9f44c70ad1dfd608784cac39ee922c32175
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87556
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Change-Id: Ie287b5c11a1276c56f416f17ea69cddd5992b4a2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87326
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
with this patch I can finally load a 3201 column document
Change-Id: I880d485b3f628836e7aed92c276e660466a3b19c
Reviewed-on: https://gerrit.libreoffice.org/85139
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
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>
|
|
Change-Id: I9e50c38f38acdf5a275b125e9e421a6c6af6d590
Reviewed-on: https://gerrit.libreoffice.org/83661
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I9b706c9bcc2925f72cc024142ffe72af5ddea82a
Reviewed-on: https://gerrit.libreoffice.org/82419
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I101ff537181058500d240c44114bfefedc03aee4
Reviewed-on: https://gerrit.libreoffice.org/81429
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
For now, hard coded to MAXCOL, MAXROW while we re-factor.
Change-Id: I5e1aafc91ba1434a9a248d33bf0da4f4a2dc3a1b
Reviewed-on: https://gerrit.libreoffice.org/80434
Tested-by: Jenkins
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Reviewed-by: Eike Rathke <erack@redhat.com>
|
|
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>
|
|
doing an emplace_hint when the iterator points to end(), doesn't really
help, so rather attempt to insert a fake value
Change-Id: I44b89858284c6bebaa0e36daf0a4094fe06493c4
Reviewed-on: https://gerrit.libreoffice.org/72419
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
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>
|
|
Change-Id: I2bcfb87f687355a66a8a855b2858220cf1fefd39
Reviewed-on: https://gerrit.libreoffice.org/72043
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
to ScDocument lifetime if possible. This helps to avoid lots
of thread setup-cost while doing recalcs especially if there are
many formula-groups in the document and most of them are fairly
light-weight.
Change-Id: Idd57e1ebd0d4e492f99e31237d4a55ec9c95a121
Reviewed-on: https://gerrit.libreoffice.org/69473
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>
|
|
largely based on the relevant portion of the unusedfields loplugin, but
adapted for local vars
Change-Id: Ic522a941573940e8f75c88f90ba5f37508ca49b1
Reviewed-on: https://gerrit.libreoffice.org/66835
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
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>
|
|
Use range-based loop or replace with STL functions
Change-Id: Ifb3c6a2fdcd32122a6fd371191b058117015c3ed
Reviewed-on: https://gerrit.libreoffice.org/67588
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Since it is now possible to use C++14, it's time to replace
the temporary solution with the standard one
Change-Id: Ib69a4a2a08b1edbc0f40beac00f7f68075b479a1
Reviewed-on: https://gerrit.libreoffice.org/66967
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Found with bin/find-unneeded-includes
Only removal proposals are dealt with here.
Change-Id: I98f49765c6b74808dcbd692e0f375dd2848fcfd4
Reviewed-on: https://gerrit.libreoffice.org/65614
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
|
|
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>
|
|
Found with bin/find-unneeded-includes
Only removal proposals are dealt with here.
Change-Id: I3e3bf3160fe3627cd105d8b69ff165c0577d8c9b
Reviewed-on: https://gerrit.libreoffice.org/62807
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
|
|
...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>
|
|
so I can change the signature of this method safely
Change-Id: I91574cc1660c14408f2dcd9dbd18c0faa1a1e5c5
Reviewed-on: https://gerrit.libreoffice.org/61864
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
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>
|