Age | Commit message (Collapse) | Author |
|
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>
|
|
+ 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>
|
|
... 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
|
|
... 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
|
|
... 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
|
|
Change-Id: I042b8dcadbf7581de325c161763fe35aecde5ca2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133694
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
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>
|
|
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>
|
|
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>
|
|
Change-Id: I61f90680f907ee567f1af45801be3e939849d4ff
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124246
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
|
|
... 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
|
|
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>
|
|
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
|
|
Change-Id: I818a5dda788fd15a718914fb05f23e5225dce1c5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117588
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
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>
|
|
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>
|
|
Change-Id: Ia6c0361cd793bb62905b0690f7e2ca554019e935
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105388
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
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>
|
|
... 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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
Change-Id: I0fe5a7ef4a79d0832802945ce1b9da4752f1d5fc
Reviewed-on: https://gerrit.libreoffice.org/81598
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I78c4fb4acf21756f91582caee5e30e3ad1fc2ae4
Reviewed-on: https://gerrit.libreoffice.org/79543
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
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
|
|
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
|
|
Change-Id: I611554b1c4cbc506dbfc32748e9f14c9e8eb5156
Reviewed-on: https://gerrit.libreoffice.org/66022
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
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>
|
|
Change-Id: I593ccc2fb43321caf3ff64d0c348b1bac742ad18
Reviewed-on: https://gerrit.libreoffice.org/63025
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>
|
|
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>
|
|
Change-Id: I0308ddd467ab6e283c0503f98885a248eb28290c
Reviewed-on: https://gerrit.libreoffice.org/58738
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|