summaryrefslogtreecommitdiff
path: root/sc/source/core/tool/scmatrix.cxx
AgeCommit message (Collapse)AuthorFilesLines
2024-03-23Related: tdf#160056 do calc NumberFormatting via ScInterpreterContextCaolán McNamara1-17/+17
and for the duration of Threaded calculation where there will be no new formats required we can drive number formatting with the unlocked RO policy. Change-Id: Ic0e449acdcf834bc569d13b4a984f13c55316801 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165160 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-03-01tdf#126573 Add Excel2021 array function FILTER to CalcBalazs Varga1-0/+35
https://issues.oasis-open.org/browse/OFFICE-4156 TODO: add dynamic arrays would be useful: Older array formulas, known as legacy array formulas, always return a fixed-size result - they always spill into the same number of cells. The spilling behavior described in this topic does not apply to legacy array formulas. More info about it: https://support.microsoft.com/en-gb/office/dynamic-array-formulas-and-spilled-array-behavior-205c6b06-03ba-4151-89a1-87a7eb36e531 Related Bug: https://bugs.documentfoundation.org/show_bug.cgi?id=127808 Change-Id: I1c3769ef33fa0207f55e1c96083717c2d90402e5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163955 Tested-by: Jenkins Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de>
2023-12-09cid#1556778 COPY_INSTEAD_OF_MOVECaolán McNamara1-3/+3
and cid#1546474 COPY_INSTEAD_OF_MOVE cid#1546473 COPY_INSTEAD_OF_MOVE cid#1546469 COPY_INSTEAD_OF_MOVE cid#1546467 COPY_INSTEAD_OF_MOVE cid#1546458 COPY_INSTEAD_OF_MOVE cid#1546448 COPY_INSTEAD_OF_MOVE cid#1546446 COPY_INSTEAD_OF_MOVE cid#1546441 COPY_INSTEAD_OF_MOVE cid#1546424 COPY_INSTEAD_OF_MOVE cid#1546377 COPY_INSTEAD_OF_MOVE cid#1546374 COPY_INSTEAD_OF_MOVE cid#1546352 COPY_INSTEAD_OF_MOVE cid#1546334 COPY_INSTEAD_OF_MOVE cid#1546328 COPY_INSTEAD_OF_MOVE cid#1546310 COPY_INSTEAD_OF_MOVE cid#1546303 COPY_INSTEAD_OF_MOVE Change-Id: I8a43fdd574857ba1d3ec416f23c8269a9a08e12f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160515 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-08-02Silence some bogus -Werror=array-bounds etc. with GCC 12 and -std=c++20Stephan Bergmann1-0/+7
...as witnessed with patch set 1 of <https://gerrit.libreoffice.org/c/core/+/155121/1> "Bump baseline to C++20", > In file included from /opt/rh/gcc-toolset-12/root/usr/include/c++/12/bits/char_traits.h:46, > from /opt/rh/gcc-toolset-12/root/usr/include/c++/12/ios:40, > from /opt/rh/gcc-toolset-12/root/usr/include/c++/12/ostream:38, > from /home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_gcc_release_64/include/rtl/ustring.hxx:34, > from /home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_gcc_release_64/include/svl/gridprinter.hxx:13, > from /home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_gcc_release_64/svl/source/misc/gridprinter.cxx:10: > In function ‘constexpr decltype (::new(void*(0)) _Tp) std::construct_at(_Tp*, _Args&& ...) [with _Tp = long unsigned int; _Args = {const long unsigned int&}]’, > inlined from ‘static constexpr void std::allocator_traits<std::allocator<_CharT> >::construct(allocator_type&, _Up*, _Args&& ...) [with _Up = long unsigned int; _Args = {const long unsigned int&}; _Tp = long unsigned int]’ at /opt/rh/gcc-toolset-12/root/usr/include/c++/12/bits/alloc_traits.h:518:21, > inlined from ‘constexpr void std::vector<_Tp, _Alloc>::_M_realloc_insert(iterator, _Args&& ...) [with _Args = {const long unsigned int&}; _Tp = long unsigned int; _Alloc = std::allocator<long unsigned int>]’ at /opt/rh/gcc-toolset-12/root/usr/include/c++/12/bits/vector.tcc:462:28, > inlined from ‘constexpr void std::vector<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = long unsigned int; _Alloc = std::allocator<long unsigned int>]’ at /opt/rh/gcc-toolset-12/root/usr/include/c++/12/bits/stl_vector.h:1287:21, > inlined from ‘mdds::mtv::soa::multi_type_vector<Traits>::iterator mdds::mtv::soa::multi_type_vector<Traits>::set_cell_to_empty_block(size_type, size_type, const T&) [with T = rtl::OUString; Traits = mdds::multi_type_matrix<svl::{anonymous}::matrix_traits>::mtv_trait]’ at /home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_gcc_release_64/workdir/UnpackedTarball/mdds/include/mdds/./multi_type_vector/soa/main_def.inl:2995:50, > inlined from ‘mdds::mtv::soa::multi_type_vector<Traits>::iterator mdds::mtv::soa::multi_type_vector<Traits>::set_impl(size_type, size_type, const T&) [with T = rtl::OUString; Traits = mdds::multi_type_matrix<svl::{anonymous}::matrix_traits>::mtv_trait]’ at /home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_gcc_release_64/workdir/UnpackedTarball/mdds/include/mdds/./multi_type_vector/soa/main_def.inl:1240:72, > inlined from ‘mdds::mtv::soa::multi_type_vector<Traits>::iterator mdds::mtv::soa::multi_type_vector<Traits>::set(size_type, const T&) [with T = rtl::OUString; Traits = mdds::multi_type_matrix<svl::{anonymous}::matrix_traits>::mtv_trait]’ at /home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_gcc_release_64/workdir/UnpackedTarball/mdds/include/mdds/./multi_type_vector/soa/main_def.inl:696:14, > inlined from ‘void mdds::multi_type_matrix<Traits>::set(size_type, size_type, const string_type&) [with Traits = svl::{anonymous}::matrix_traits]’ at /home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_gcc_release_64/workdir/UnpackedTarball/mdds/include/mdds/multi_type_matrix_def.inl:356:5, > inlined from ‘void svl::GridPrinter::set(size_t, size_t, const rtl::OUString&)’ at /home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_gcc_release_64/svl/source/misc/gridprinter.cxx:68:25: > /opt/rh/gcc-toolset-12/root/usr/include/c++/12/bits/stl_construct.h:97:14: error: array subscript 0 is outside array bounds of ‘long unsigned int [0]’ [-Werror=array-bounds] > 97 | { return ::new((void*)__location) _Tp(std::forward<_Args>(__args)...); } > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (<https://ci.libreoffice.org/job/gerrit_linux_gcc_release/148699/>), etc. (The curly braces in sw/source/core/doc/doc.cxx had to be added to avoid an ensuing bogus > sw/source/core/doc/doc.cxx: In static member function ‘static void SwDoc::CalculatePagePairsForProspectPrinting(const SwRootFrame&, SwRenderData&, const SwPrintUIOptions&, sal_Int32)’: > sw/source/core/doc/doc.cxx:1000:5: error: ‘else’ without a previous ‘if’ > 1000 | else > | ^~~~ ) Change-Id: I902f6d74d897b9bf281dc9c821aff30e7e72582a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155215 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-05-01Related: tdf#119659 Use ValidColRowOrReplicated() for matrix dimension checkEike Rathke1-7/+21
... instead of only ValidColRowReplicated(), and check the return value. With this, the abort wouldn't had happened but an empty string returned for this case (which would had been wrong as well, but the caller has to check dimensions). Change-Id: I75218c479896893146b0e73d3c82215fe61cdf6a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151235 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2023-01-30fix data-race in ScMatrixNoel Grandin1-22/+23
when doing threaded load of spreadsheets, we touch these fields from multiple threads Change-Id: Ia9d4dba79cfe7870a3a252a35a23acf71a3971e7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146346 Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> Tested-by: Jenkins
2023-01-26Upgrade mdds and orcus to 2.1.0 and 0.18.0, respectivelyKohei Yoshida1-8/+5
Change-Id: I288b5b54bd07d951bcc68afda7514bde730193dc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146107 Tested-by: Jenkins Reviewed-by: Kohei Yoshida <kohei@libreoffice.org>
2023-01-04use sal_uInt8 for maMatFlagNoel Grandin1-14/+20
which is way more cache-dense than double Change-Id: I04503eb3a4054cce5312a7a0048c9b6679a8fd16 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145018 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-12-30optimise SUMPRODUCT(IF..) a littleNoel Grandin1-16/+215
Move the AddSub calculation inside ScMatrix so we can use an iterator to walk the matrix and avoid lookup cost for each element. Shaves 50% off the time spent here in my test sheet. Change-Id: I171d7dd4ae86419a563342a4120d14106e8d71db Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144826 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-08-07clang-tidy modernize-pass-by-value in scNoel Grandin1-14/+15
Change-Id: Ia7ff651d1cbc119b36a9f8052594d03650988f59 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137848 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-07-25loplugin:moveitNoel Grandin1-2/+2
make the plugin more conservative, so we see less false+ (although we also miss some possibilities in the process) Change-Id: I91b1806271e7f802d7459834ab7bcc569047da3a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137342 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-06-21cid#1506304 Uncaught exceptionCaolán McNamara1-1/+1
Change-Id: Iaf2563edd5ec038d50c10cd5207eb40339bbb260 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136206 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-06-18cid#1506304 Uncaught exceptionCaolán McNamara1-3/+3
Change-Id: Ib4bc9b08982b1fe2f5130ef4e56489f366c01081 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136078 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-02-14Recheck modules s[a-c]* with IWYUGabor Kelemen1-1/+1
See tdf#42949 for motivation Change-Id: I867e1f7a2c44210de3281b36e22708a5d32ddb7f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129476 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2021-08-20New loplugin:unusedcapturedefaultStephan Bergmann1-1/+1
In sc/qa/unit/ucalc_formula.cxx, dropping the capture-default from the lExpectedinF lambda revealed that MSVC in C++17 mode (i.e., when building without --with-latest-c++) requires ROW_RANGE (a local const int variable from the enclosing TestFormula::testTdf97369) to be captured, even though all uses of that variable within the lambda body are constant expressions. That is still true at least for the latest Visual Studio 2019 version 16.11.1. (This is not an issue for the lExpectedinH and lExpectedinI lambdas a few lines further down, as they, in addition to using that ROW_RANGE, also use the local const double variables SHIFT1 and SHIFT2, whose uses are not constant expressions, so they are implicitly captured and loplugin:unusedcapturedefault does not suggest dropping those lambdas' capture-defaults in the first place.) Change-Id: Iee7efb485187cbe8eba6a2d470afca4993eb1816 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120693 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-08-13split SvNumberFormatter into it's own headerNoel Grandin1-0/+1
so I can make changes without running into cyclic dependencies between header files Change-Id: I98a91c7cc66002ba745cdb8239e5cc267922a45c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120412 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-06-04loplugin:unusedmethodsNoel Grandin1-5/+0
Change-Id: I79bd2f0eaa7287f0568366ee5627e11a65d2aec2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116717 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-05-15Use less memory for ScMatrix::Collectdante1-52/+30
The old definition would have unused mnCount s. The template has been modified to expand functionality. Redefined operator for sum and sum square. Memory usage change explanation: The old code would use an array of IterateResultMultiple. Then use them to iterate. The count is stored in a last IterateResultMultiple. So if we are inputed N operators we are: Wasting N counters. Wasting 1 accumulator. Solution: We move the array to the accumulator place (inside the structure). Then we use only N accumulators. The structure with the array has only 1 counter. Change-Id: I76de74214d9bcb245f009e1226020bfe4dce40d8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115542 Tested-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-05-13Use double to iterate products in scmatrix.dante1-17/+17
Change-Id: If094c33d396dc5aba31b37a3042add72076f344f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115468 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-04-28tdf#137679 Use Kahan summation for scmatrix operationsdante1-33/+15
May also want implement Kahan sum in there: sc/source/core/tool/arraysumSSE2.cxx sc/source/core/inc/arraysumfunctor.hxx Under some conditions the sum of a pointer type vector may be perforemed by arraysumfunctor on NumericCellAccumulator. arraysumSSE2 implements part of it. This code has been left unmodified. Why the test has been modified: The error was: 238.89000000000001 != 238.89 | 17 th digit IEEE 754 double-precision has 53 log10(2) ≈ 15.955 digits. So it's just noise. Change-Id: I6f84826bf3875be4f444f5eb61854bc1f95769bb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114627 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Jenkins
2021-04-25loplugin:unusedfieldsNoel Grandin1-3/+1
Change-Id: I52af3509afde02dae494747527ab800590682fa3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114591 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-03-29expand COp to its only useCaolán McNamara1-31/+2
Change-Id: Ic353adf44c7aa60cedc2c61e3814d3135e0d55ac Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113310 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-03-29TEmptyRes is always doubleCaolán McNamara1-7/+5
Change-Id: Ie1d2ce048aecb98f16a407bd2e708b64db46aadd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113309 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-03-29TRet is always doubleCaolán McNamara1-4/+4
Change-Id: Id1cb4cb9f0a7725a2990efb174a4e9e66bac2435 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113308 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-03-26drop unused argumentCaolán McNamara1-5/+4
Change-Id: I4df204cd26046e7b767adf5b5e9ab568a4f8501c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113159 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-03-22cid#1474296 experiment to see if this makes a differenceCaolán McNamara1-1/+2
Change-Id: Ie7704bea9b042d5d8be5b1784cd7cffa3469b125 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112919 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-02-08Remove unneeded breaksAndrea Gelmini1-4/+0
Extending this: https://gerrit.libreoffice.org/c/core/+/110512 Change-Id: I90d15fa6992a566e89c76dfab5fc863b33e0078a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110523 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2020-11-27tdf#42949 Fix new IWYU warnings in directory sc/Gabor Kelemen1-6/+0
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>
2020-09-03Make ImpSvNumberformatScan::GetColor constMike Kaganski1-1/+1
Change-Id: Idbcce18029944ab884cdde03e21190cbb574a00f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102005 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Jenkins
2020-08-20Follow-up: tdf#132105 COUNTBLANK() count empty strings also in array/matrixEike Rathke1-7/+23
For Excel interoperability this somewhat is a *visual* blank, unlike ISBLANK() empty strings are counted as blanks. An empty string in a matrix can be either a formula result transformed to matrix, or literal input in an inline array. There's no way to differentiate the origin. Change-Id: Ib799e95517d95e1a7c28fc4335bd0040f3629ad1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/101083 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2020-07-22fix unused ScMatrixRefNoel Grandin1-2/+4
from the surrounding code, these look like they should be returned since these look like bad code checks, add asserts. Change-Id: Idb1a2eb80b3357654e91bf2ad52b547421552003 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99226 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-07-08Resolves: tdf#124454 exec the matrix operator on values converted from stringsEike Rathke1-1/+1
Effectively a fallout from the matrix operations rework started for tdf#89387 that did not convert strings at all and subsequent work converted the string according to settings but did not apply the current operator on the result. Change-Id: I90c8963021396fd9a46b063f6aee96283f89271a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98385 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2020-03-12tdf#130977 replace `rtl::math::isFinite` with `std::isfinite`.Yukio Siraichi1-15/+15
- make all calls look like `std::isfinite`. - change the comments referring `rtl::math::isFinite`. Change-Id: I0cde9ceb9f20150467b454cddde5e62003cfde1a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90234 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2020-03-12Revert "loplugin:constfields in sc"Noel Grandin1-3/+3
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-08Resolves: tdf#129681 Handle array/matrix in AGGREGATE() with ignore errorsEike Rathke1-32/+56
This also changes AGGREGATE() 3rd and subsequent parameters' classification from ReferenceOrRefArray to ReferenceOrForceArray to force the expected array mode on inline calculations. Change-Id: I53a5591e46bfbabbfa6a273f5b9590a69fad87a0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86388 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2019-11-27Remove unused return_type templateStephan Bergmann1-26/+0
unused since 1c2405ba44c5a146188c19e235f857ab18ea05f0 "tdf#89387 General functor and basic operations" (found by upcoming loplugin:unusedmember, which identified each of the two explicit specializations' sole member as unused) Change-Id: I275137cc70cbe4e58a728779e7e7593c5e11224b Reviewed-on: https://gerrit.libreoffice.org/83836 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-11-22Extend loplugin:external to warn about classesStephan Bergmann1-4/+20
...following up on 314f15bff08b76bf96acf99141776ef64d2f1355 "Extend loplugin:external to warn about enums". Cases where free functions were moved into an unnamed namespace along with a class, to not break ADL, are in: filter/source/svg/svgexport.cxx sc/source/filter/excel/xelink.cxx sc/source/filter/excel/xilink.cxx svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx All other free functions mentioning moved classes appear to be harmless and not give rise to (silent, even) ADL breakage. (One remaining TODO in compilerplugins/clang/external.cxx is that derived classes are not covered by computeAffectedTypes, even though they could also be affected by ADL-breakage--- but don't seem to be in any acutal case across the code base.) For friend declarations using elaborate type specifiers, like class C1 {}; class C2 { friend class C1; }; * If C2 (but not C1) is moved into an unnamed namespace, the friend declaration must be changed to not use an elaborate type specifier (i.e., "friend C1;"; see C++17 [namespace.memdef]/3: "If the name in a friend declaration is neither qualified nor a template-id and the declaration is a function or an elaborated-type-specifier, the lookup to determine whether the entity has been previously declared shall not consider any scopes outside the innermost enclosing namespace.") * If C1 (but not C2) is moved into an unnamed namespace, the friend declaration must be changed too, see <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71882> "elaborated-type-specifier friend not looked up in unnamed namespace". Apart from that, to keep changes simple and mostly mechanical (which should help avoid regressions), out-of-line definitions of class members have been left in the enclosing (named) namespace. But explicit specializations of class templates had to be moved into the unnamed namespace to appease <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92598> "explicit specialization of template from unnamed namespace using unqualified-id in enclosing namespace". Also, accompanying declarations (of e.g. typedefs or static variables) that could arguably be moved into the unnamed namespace too have been left alone. And in some cases, mention of affected types in blacklists in other loplugins needed to be adapted. And sc/qa/unit/mark_test.cxx uses a hack of including other .cxx, one of which is sc/source/core/data/segmenttree.cxx where e.g. ScFlatUInt16SegmentsImpl is not moved into an unnamed namespace (because it is declared in sc/inc/segmenttree.hxx), but its base ScFlatSegmentsImpl is. GCC warns about such combinations with enabled-by-default -Wsubobject-linkage, but "The compiler doesn’t give this warning for types defined in the main .C file, as those are unlikely to have multiple definitions." (<https://gcc.gnu.org/onlinedocs/gcc-9.2.0/gcc/Warning-Options.html>) The warned-about classes also don't have multiple definitions in the given test, so disable the warning when including the .cxx. Change-Id: Ib694094c0d8168be68f8fe90dfd0acbb66a3f1e4 Reviewed-on: https://gerrit.libreoffice.org/83239 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-09-01Fix '..'Andrea Gelmini1-1/+1
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-08-23Mark move ctors/assignments noexceptMike Kaganski1-8/+8
This should enable using move semantics where possible e.g. in standard containers. According to https://en.cppreference.com/w/cpp/language/move_constructor: To make strong exception guarantee possible, user-defined move constructors should not throw exceptions. For example, std::vector relies on std::move_if_noexcept to choose between move and copy when the elements need to be relocated. Change-Id: I6e1e1cdd5cd430b139ffa2fa7031fb0bb625decb Reviewed-on: https://gerrit.libreoffice.org/77957 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-08-15Switch mdds to 1.5.0 and liborcus to 0.15.0.Kohei Yoshida1-4/+4
Change-Id: Ibff9a5e0f0771e4cf12b4dc3985661a01195e265 Reviewed-on: https://gerrit.libreoffice.org/77482 Tested-by: Jenkins Reviewed-by: Kohei Yoshida <kohei@libreoffice.org>
2019-08-12Fix typosAndrea Gelmini1-1/+1
Change-Id: I11aeaafb0e158eb8da5b8a36dbef10d7b5bb08ff Reviewed-on: https://gerrit.libreoffice.org/77298 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2019-04-10clang-tidy: Silence warnings from WIP unhandled-self-assignment checkTamás Zolnai1-7/+1
Where it can be done by removing useless / duplicate code. For XFListStyle I removed the copy operator entirely, because it was bugous and it seems not to be used anyway. Change-Id: Iba0eb0d5c45b42f0e78be466c617acdc1216eb22 Reviewed-on: https://gerrit.libreoffice.org/70482 Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com> Tested-by: Tamás Zolnai <tamas.zolnai@collabora.com>
2019-03-08new loplugin constvarsNoel Grandin1-1/+1
detect static variables that can be made const. Thanks to mike kaganski for suggesting this. Here I introduce a new plugin feature - using markers in nearby comments to disable the plugin for specific vars. Some of this stuff was old debugging code. I removed the stuff that was older than 5 years. Change-Id: I6ec7742a7fdadf28fd128b592fcdf6da8257585c Reviewed-on: https://gerrit.libreoffice.org/68807 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-01-24loplugin:constparams in scNoel Grandin1-9/+9
Change-Id: Ie211eea01eaceb718f701d3fdbb6253700d14e5e Reviewed-on: https://gerrit.libreoffice.org/66831 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-01-11Related: tdf#44076 use sc::power() in ScMatrix::PowOp()Eike Rathke1-2/+2
Change-Id: I13a47419bd57d71482793d5f9a8429101793aad7 Reviewed-on: https://gerrit.libreoffice.org/66092 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2018-12-18no need to allocate sc::op::Op on the heap hereNoel Grandin1-10/+10
Change-Id: I6a048a51eacaa7063318cdc27d5bc25cc96d557b Reviewed-on: https://gerrit.libreoffice.org/65304 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-12-08Remove obsolete SAL_FALLTHROUGH completelyStephan Bergmann1-1/+1
...after 7ffdd830d5fb52f2ca25aa80277d22ea6d89970b "HAVE_CPP_ATTRIBUTE_FALLTHROUGH is always true now" Change-Id: I54e5ff4e036a6bb3e5774d1c0524158aae18e937 Reviewed-on: https://gerrit.libreoffice.org/64800 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-11-23enum ScMatrix::Op is unnecessaryNoel Grandin1-15/+6
Change-Id: If4ae97b43f012f1770213d99407ffaadac05f9de Reviewed-on: https://gerrit.libreoffice.org/63756 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-11-19tdf#42949 Fix IWYU warnings in include/vcl/[ab]*Gabor Kelemen1-0/+1
Found with bin/find-unneeded-includes Only removal proposals are dealt with here. Change-Id: If18c80fc64e55d797953e24e40e5d5e62bd9c625 Reviewed-on: https://gerrit.libreoffice.org/63453 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2018-11-01clang-tidy: (WIP) bugprone-too-small-loop-variable findingsTamás Zolnai1-4/+4
Change-Id: Iaa255b39928ac45dec1ed37e368c149d6027f561 Reviewed-on: https://gerrit.libreoffice.org/62701 Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com> Tested-by: Tamás Zolnai <tamas.zolnai@collabora.com>