summaryrefslogtreecommitdiff
path: root/sc/inc
AgeCommit message (Collapse)Author
2021-12-20tdf#146019 Remove confirmation dialog about applying images EXIF rotationGabor Kelemen
Change-Id: I53553f91eeb5bd56bbad19b80421177a84625d96 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126616 Tested-by: Jenkins Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org> Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127151
2021-12-14make sure text operations are not queried by (numeric) valueLuboš Luňák
E.g. SC_CONTAINS is, according to isPartialTextMatchOp(), a text-only operation, so query it as such and not as a numeric value. This fixes/allows e.g. substring queries on dates. Change-Id: I6c612d9934193828b7a7eabed92f2bfeb385e5a0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126767 Tested-by: Jenkins Reviewed-by: Eike Rathke <erack@redhat.com> (cherry picked from commit 0d1971a8dc1f7ce24f67abcab4d6af9cf2b7b823) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126816
2021-12-13tdf#92010 sc autoFormula: prefer MRU formulasJustin Luth
Prior to 4.3, only MRU formulas were auto-completed. Then it changed to suggest all formulas - alphabetically for the most part. That 4.3 commit 5b0b7553241bb5150b12bbf7625b4b0b36970272 completely removed all reference to MRU. But it makes sense to prefer an MRU over a strictly alphabetical match. This patch depends on LO 7.4 patch "new ScTypedStrData: typically missed argument in CTOR" Change-Id: Id5d860d1401693f43833719977d1c1e4c386385c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126499 Tested-by: Jenkins Reviewed-by: Justin Luth <jluth@mail.com> Reviewed-by: Eike Rathke <erack@redhat.com> (cherry picked from commit b93a6964e0466c1b67d2c233040357a8f6c75214) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126749
2021-12-09tdf#145671 Don't open URL twice in cell edit modeSamuel Mehrbrodt
Change-Id: I8a324d6a037c8a5c0efc0b2825657513c2f9841c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126159 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de> (cherry picked from commit b9362e87a3646a6693b81fb0d40e28ce7813a251) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126441 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2021-12-06process broadcasts for adjacent cells together (tdf#119083)Luboš Luňák
The problem in tdf#119083 is that it sets up listening for the range of cells used by VLOOKUP, and when adding a new column changes all those cells, it results in repeated SfxHintId::ScDataChanged broadcasts to the cells with the VLOOKUP formula. This commit makes ScHint include a row count, making it possible to group adjacent rows for SfxHintId::ScDataChanged together and send notifications just once for the range. Change-Id: Ib3439de58a2b1e5e8f01b037a62608e38b8e9125 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126395 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126448
2021-12-06make it clearer that ScHint is modifiedLuboš Luňák
It's somewhat confusing that an accessor is provided to give a reference to internal data and then the object is modified indirectly using the reference. It appears to be only for performance reasons, so I thought that inlining the ctor and ctor could help the compiler to optimize this, but apparently it can't move this outside of the loop, so at least make it clearer. Change-Id: I72cf15d1446daa559ac4079b9478e53694d7d198 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126394 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126447
2021-12-05fix caching of ScQueryItem values for multiple entries (tdf#146037)Luboš Luňák
The code assumed that there would be only one ScQueryEntry. Change-Id: Idf4cc6bdbbf1edad7d13eb9a9643bb67e199dd01 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126368 Tested-by: Luboš Luňák <l.lunak@collabora.com> Reviewed-by: Luboš Luňák <l.lunak@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126300 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2021-12-05move entire ScTable::ValidQuery() into (Sc)QueryEvaluatorLuboš Luňák
This reduces the number of arguments passed around, removed the need for ValidQueryCache (as the data can be now cached in the class itself), it'll allow even more optimizations, and it also makes the by now rather large (almost 1000 lines) helper class a proper class instead of tons of inline code. Change-Id: I585cf580b3e7b2d4512aa535176e97c0abfd547a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126367 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126299 Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2021-11-29tdf#133996 speed up opening of ODS with autofilter + conditional formattingNoel Grandin
inline some hot methods, and use OUStringLiteral to avoid repeated construction of an OUString, saves about 3% Change-Id: I6d09ade4e08a94ed5dd49a8882e26bb5786409d5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125873 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> (cherry picked from commit bf74eb1d1623a51805f91a973bc9f726d14dd7a8) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125998
2021-11-25sort, cache and binary search query items if they're many (tdf#136838)Luboš Luňák
This makes autofilter even with tdf#136838 almost instanteous. Change-Id: I94b4b6d6ab6f8e73312d88c8b88c0f393707f117 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125795 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-11-24Rename o3tl::underlyingEnumValue to o3tl::to_underlying to match C++23Mike Kaganski
Change-Id: I1597a8e77199445bf377dbe54adc3134bb04fd51 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125748 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-11-22cache error strings for ScTable::validQuery() (tdf#133835)Luboš Luňák
Avoid calling SharedStringPool::intern() on values that are repeatedly the same. Change-Id: I094f2e777a4ca24536e0c25e6a1c6358ccf49f61 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125660 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-11-22Revert "cache FormulaError::NoRef error string (tdf#144249)"Luboš Luňák
A more generic fix coming. This reverts commit b4c1bb2f91e9ae47820c289e2c08f640a958cf05. Change-Id: Ia7821f1c8585506556708f1bf8526e7f509aafd1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125659 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-11-17sc: Drop 'typedef std::vector<ScMarkArray> MapType'Michael Weghorn
Its only use is in the next line, and it's not even a map anymore, but a vector. Change-Id: Ib7920c420f5e3e18658f3530244097a4b1633951 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125411 Tested-by: Michael Weghorn <m.weghorn@posteo.de> Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2021-11-17SCSTR_FILTER_TEXT_COLOR is used in two different contextsCaolán McNamara
in the autofilter popup and the standard filter combobox. In the autofilter we want title case to match the other entries there, for the standard filter we need the same text as appears in the combobox list Change-Id: I693d3fa8a9fa1bac0803971be593f107d5817e74 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125371 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-11-17use title case for "No Fill" like "Not Empty"Caolán McNamara
Change-Id: If044b8de9a5400b6db61537519afcf5f18dd1cb2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125321 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-11-12Use more o3tl::convert in scMike Kaganski
Change-Id: I624b6c570eff8b6cdc83ffcb2d0dbadf848715b0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120330 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-11-11Drop ScGlobal::GetEmptyOUString() and EMPTY_OUSTRINGMike Kaganski
OUString default ctor already uses a static instance (through rtl_uString_new), no need to have another module-specific static. Commit d8037ae18a297229d1b79f8f76331abfd548350d had removed its sw counterpart some time ago. Change-Id: I140fe13bc1f6b0cbe188e83e602fdebe995e467a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125061 Tested-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-11-08tdf#139205: Keep hierarchical structure of localized default styles in CalcKevin Suo
The default cell styles (when creating a new Calc document), as returned by orcus parsing, are built-in English names, as defined in sc/res/xml/styles.xml. These names can be localized. On non-English UI, all these (localized) styles names will be forced to use the localized "Default" as their parent because there is no such non-localized parents in the localized style tree on UI. In this patch, I added SC_DLLPUBLIC to ScStyleNameConversion::ProgrammaticToDisplayName, then used this function to convert the parent style name to the (localized) UI name. Change-Id: I3689211a10c60a5e7b2b273b6c15a4da92f0d633 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124556 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-by: Eike Rathke <erack@redhat.com>
2021-11-08optimize VLOOKUP by returning SharedString if possible (tdf#139444)Luboš Luňák
Profiling shows that the slowness mostly comes from converting the cell's SharedString to OUString and then the comparison converts it back. To improve performance, return the SharedString if possible and ignore the OUString. Change-Id: Idb190bd0354cea3185e5ff9ebaf92cab63f23f70 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124880 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-11-08make a number of Calc functions return value by actually returning itLuboš Luňák
All these returned their value using a reference argument, for apprently no good reason. Change-Id: I6a33417e7df2aac67427c16e5003dfaaa1a814d7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124872 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-11-08tdf#48622 Adapt sidebar line styles to new defaultsSamuel Mehrbrodt
Change-Id: I81287d90c2250838391fa79d2f6455219ea822c8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124680 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>
2021-11-05use more DECL_DLLPRIVATE_LINKNoel Grandin
to avoid unnecessarily exporting symbols Change-Id: I6855894d0166c300ced169e36861f38811baa48d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124730 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-11-05Blind fix for ubusan errorKohei Yoshida
from https://ci.libreoffice.org/job/lo_ubsan/2189/ [_RUN_____] Test::testCellBroadcaster [...] ==24129==ERROR: AddressSanitizer: heap-use-after-free on address 0x61700006c470 at pc 0x2ab6e05145e4 bp 0x7ffecaa28d70 sp 0x7ffecaa28d68 READ of size 8 at 0x61700006c470 thread T0 #0 0x2ab6e05145e3 in sc::CellStoreEvent::element_block_released(mdds::mtv::base_element_block const*) /sc/source/core/data/mtvelements.cxx:47:13 #1 0x2ab6de749427 in mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell> >, sc::CellStoreTrait>::delete_element_block(unsigned long) /workdir/UnpackedTarball/mdds/include/mdds/multi_type_vector/soa/main_def.inl:403:17 #2 0x2ab6de74921b in mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell> >, sc::CellStoreTrait>::delete_element_blocks(unsigned long, unsigned long) /workdir/UnpackedTarball/mdds/include/mdds/multi_type_vector/soa/main_def.inl:412:9 #3 0x2ab6de733225 in mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell> >, sc::CellStoreTrait>::clear() /workdir/UnpackedTarball/mdds/include/mdds/multi_type_vector/soa/main_def.inl:1088:5 #4 0x2ab6df024987 in ScColumn::FreeAll() /sc/source/core/data/column3.cxx:161:13 #5 0x2ab6decff134 in ScColumn::~ScColumn() /sc/source/core/data/column.cxx:97:5 #6 0x2ab6decf708a in o3tl::default_delete<ScColumn>::operator()(ScColumn*) /include/o3tl/deleter.hxx:55:38 #7 0x2ab6decf5999 in std::unique_ptr<ScColumn, o3tl::default_delete<ScColumn> >::reset(ScColumn*) /home/tdf/lode/opt_private/gcc-7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0/bits/unique_ptr.h:376:4 #8 0x2ab6decf4c8e in ScColContainer::Clear() /sc/source/core/data/colcontainer.cxx:42:21 #9 0x2ab6decf4a84 in ScColContainer::~ScColContainer() /sc/source/core/data/colcontainer.cxx:33:5 #10 0x2ab6e070e3c6 in ScTable::~ScTable() /sc/source/core/data/table1.cxx:344:1 #11 0x2ab6df50abba in o3tl::default_delete<ScTable>::operator()(ScTable*) /include/o3tl/deleter.hxx:55:38 #12 0x2ab6df4c3483 in std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >::~unique_ptr() /home/tdf/lode/opt_private/gcc-7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0/bits/unique_ptr.h:268:4 #13 0x2ab6df4dc87c in void std::_Destroy<std::unique_ptr<ScTable, o3tl::default_delete<ScTable> > >(std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >*) /home/tdf/lode/opt_private/gcc-7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0/bits/stl_construct.h:98:19 #14 0x2ab6df4dc7c6 in void std::_Destroy_aux<false>::__destroy<std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >*>(std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >*, std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >*) /home/tdf/lode/opt_private/gcc-7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0/bits/stl_construct.h:108:6 #15 0x2ab6df4dc744 in void std::_Destroy<std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >*>(std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >*, std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >*) /home/tdf/lode/opt_private/gcc-7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0/bits/stl_construct.h:136:7 #16 0x2ab6df4dc488 in void std::_Destroy<std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >*, std::unique_ptr<ScTable, o3tl::default_delete<ScTable> > >(std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >*, std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >*, std::allocator<std::unique_ptr<ScTable, o3tl::default_delete<ScTable> > >&) /home/tdf/lode/opt_private/gcc-7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0/bits/stl_construct.h:206:7 #17 0x2ab6df50df73 in std::__cxx1998::vector<std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >, std::allocator<std::unique_ptr<ScTable, o3tl::default_delete<ScTable> > > >::_M_erase_at_end(std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >*) /home/tdf/lode/opt_private/gcc-7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0/bits/stl_vector.h:1513:2 #18 0x2ab6df70f5b0 in std::__cxx1998::vector<std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >, std::allocator<std::unique_ptr<ScTable, o3tl::default_delete<ScTable> > > >::clear() /home/tdf/lode/opt_private/gcc-7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0/bits/stl_vector.h:1248:9 #19 0x2ab6df70b5d4 in std::__debug::vector<std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >, std::allocator<std::unique_ptr<ScTable, o3tl::default_delete<ScTable> > > >::clear() /home/tdf/lode/opt_private/gcc-7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0/debug/vector:699:9 #20 0x2ab6df704cb2 in ScDocument::Clear(bool) /sc/source/core/data/documen9.cxx:506:12 #21 0x2ab6df490652 in ScDocument::~ScDocument() /sc/source/core/data/documen2.cxx:363:5 #22 0x2ab6e363315d in ScDocShell::~ScDocShell() /sc/source/ui/docshell/docsh.cxx:2925:1 #23 0x2ab6e363333b in ScDocShell::~ScDocShell() /sc/source/ui/docshell/docsh.cxx:2894:1 #24 0x2ab6e3633514 in ScDocShell::~ScDocShell() /sc/source/ui/docshell/docsh.cxx:2894:1 #25 0x2ab6de4f105d in SvRefBase::ReleaseRef() /include/tools/ref.hxx:163:29 #26 0x2ab6de4a6259 in tools::SvRef<ScDocShell>::clear() /include/tools/ref.hxx:64:22 #27 0x2ab6de2b1aaa in Test::closeDocShell(tools::SvRef<ScDocShell>&) /sc/qa/unit/ucalc.cxx:365:18 #28 0x2ab6de2b2102 in Test::tearDown() /sc/qa/unit/ucalc.cxx:380:5 #29 0x2ab6de543787 in CppUnit::TestCaller<Test>::tearDown() /workdir/UnpackedTarball/cppunit/include/cppunit/TestCaller.h:185:15 #30 0x2ab69335765a in CppUnit::TestCaseMethodFunctor::operator()() const /workdir/UnpackedTarball/cppunit/src/cppunit/TestCase.cpp:32:5 #31 0x2ab6ae4f3957 in (anonymous namespace)::Protector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) /test/source/vclbootstrapprotector.cxx:46:14 #32 0x2ab693328cd7 in CppUnit::ProtectorChain::ProtectFunctor::operator()() const /workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 #33 0x2ab6a2974ff7 in (anonymous namespace)::Prot::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) /unotest/source/cpp/unobootstrapprotector/unobootstrapprotector.cxx:78:12 #34 0x2ab693328cd7 in CppUnit::ProtectorChain::ProtectFunctor::operator()() const /workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 #35 0x2ab69f4479c2 in (anonymous namespace)::Prot::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) /unotest/source/cpp/unoexceptionprotector/unoexceptionprotector.cxx:62:16 #36 0x2ab693328cd7 in CppUnit::ProtectorChain::ProtectFunctor::operator()() const /workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 #37 0x2ab6932bfff4 in CppUnit::DefaultProtector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) /workdir/UnpackedTarball/cppunit/src/cppunit/DefaultProtector.cpp:15:12 #38 0x2ab693328cd7 in CppUnit::ProtectorChain::ProtectFunctor::operator()() const /workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 #39 0x2ab69332272c in CppUnit::ProtectorChain::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) /workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:86:18 #40 0x2ab6933c1b39 in CppUnit::TestResult::protect(CppUnit::Functor const&, CppUnit::Test*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /workdir/UnpackedTarball/cppunit/src/cppunit/TestResult.cpp:182:28 #41 0x2ab693356092 in CppUnit::TestCase::run(CppUnit::TestResult*) /workdir/UnpackedTarball/cppunit/src/cppunit/TestCase.cpp:95:11 #42 0x2ab693359af2 in CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) /workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:64:30 #43 0x2ab693358cea in CppUnit::TestComposite::run(CppUnit::TestResult*) /workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:23:3 #44 0x2ab693359af2 in CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) /workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:64:30 #45 0x2ab693358cea in CppUnit::TestComposite::run(CppUnit::TestResult*) /workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:23:3 #46 0x2ab6933ef6ce in CppUnit::TestRunner::WrappingSuite::run(CppUnit::TestResult*) /workdir/UnpackedTarball/cppunit/src/cppunit/TestRunner.cpp:47:27 #47 0x2ab6933c059e in CppUnit::TestResult::runTest(CppUnit::Test*) /workdir/UnpackedTarball/cppunit/src/cppunit/TestResult.cpp:149:9 #48 0x2ab6933f062b in CppUnit::TestRunner::run(CppUnit::TestResult&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /workdir/UnpackedTarball/cppunit/src/cppunit/TestRunner.cpp:96:14 #49 0x4ff1d5 in (anonymous namespace)::ProtectedFixtureFunctor::run() const /sal/cppunittester/cppunittester.cxx:329:20 #50 0x4fbbc5 in main2() /sal/cppunittester/cppunittester.cxx:478:16 #51 0x4fa052 in sal_main() /sal/cppunittester/cppunittester.cxx:614:14 #52 0x4f9e9e in main /sal/cppunittester/cppunittester.cxx:609:1 #53 0x2ab69517d554 in __libc_start_main (/lib64/libc.so.6+0x22554) #54 0x425894 in _start (/workdir/LinkTarget/Executable/cppunittester+0x425894) 0x61700006c470 is located 752 bytes inside of 768-byte region [0x61700006c180,0x61700006c480) freed by thread T0 here: #0 0x4f7548 in operator delete(void*, unsigned long) /home/tdf/lode/packages/llvm-llvmorg-9.0.1.src/compiler-rt/lib/asan/asan_new_delete.cc:172 #1 0x2ab6decf709b in o3tl::default_delete<ScColumn>::operator()(ScColumn*) /include/o3tl/deleter.hxx:55:38 #2 0x2ab6decf5999 in std::unique_ptr<ScColumn, o3tl::default_delete<ScColumn> >::reset(ScColumn*) /home/tdf/lode/opt_private/gcc-7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0/bits/unique_ptr.h:376:4 #3 0x2ab6decf4c8e in ScColContainer::Clear() /sc/source/core/data/colcontainer.cxx:42:21 #4 0x2ab6decf4a84 in ScColContainer::~ScColContainer() /sc/source/core/data/colcontainer.cxx:33:5 #5 0x2ab6e070e3c6 in ScTable::~ScTable() /sc/source/core/data/table1.cxx:344:1 #6 0x2ab6df50abba in o3tl::default_delete<ScTable>::operator()(ScTable*) /include/o3tl/deleter.hxx:55:38 #7 0x2ab6df4c3483 in std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >::~unique_ptr() /home/tdf/lode/opt_private/gcc-7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0/bits/unique_ptr.h:268:4 #8 0x2ab6df4dc87c in void std::_Destroy<std::unique_ptr<ScTable, o3tl::default_delete<ScTable> > >(std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >*) /home/tdf/lode/opt_private/gcc-7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0/bits/stl_construct.h:98:19 #9 0x2ab6df4dc7c6 in void std::_Destroy_aux<false>::__destroy<std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >*>(std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >*, std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >*) /home/tdf/lode/opt_private/gcc-7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0/bits/stl_construct.h:108:6 #10 0x2ab6df4dc744 in void std::_Destroy<std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >*>(std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >*, std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >*) /home/tdf/lode/opt_private/gcc-7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0/bits/stl_construct.h:136:7 #11 0x2ab6df4dc488 in void std::_Destroy<std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >*, std::unique_ptr<ScTable, o3tl::default_delete<ScTable> > >(std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >*, std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >*, std::allocator<std::unique_ptr<ScTable, o3tl::default_delete<ScTable> > >&) /home/tdf/lode/opt_private/gcc-7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0/bits/stl_construct.h:206:7 #12 0x2ab6df50df73 in std::__cxx1998::vector<std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >, std::allocator<std::unique_ptr<ScTable, o3tl::default_delete<ScTable> > > >::_M_erase_at_end(std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >*) /home/tdf/lode/opt_private/gcc-7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0/bits/stl_vector.h:1513:2 #13 0x2ab6df70f5b0 in std::__cxx1998::vector<std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >, std::allocator<std::unique_ptr<ScTable, o3tl::default_delete<ScTable> > > >::clear() /home/tdf/lode/opt_private/gcc-7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0/bits/stl_vector.h:1248:9 #14 0x2ab6df70b5d4 in std::__debug::vector<std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >, std::allocator<std::unique_ptr<ScTable, o3tl::default_delete<ScTable> > > >::clear() /home/tdf/lode/opt_private/gcc-7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0/debug/vector:699:9 #15 0x2ab6df704cb2 in ScDocument::Clear(bool) /sc/source/core/data/documen9.cxx:506:12 #16 0x2ab6df490652 in ScDocument::~ScDocument() /sc/source/core/data/documen2.cxx:363:5 #17 0x2ab6e363315d in ScDocShell::~ScDocShell() /sc/source/ui/docshell/docsh.cxx:2925:1 #18 0x2ab6e363333b in ScDocShell::~ScDocShell() /sc/source/ui/docshell/docsh.cxx:2894:1 #19 0x2ab6e3633514 in ScDocShell::~ScDocShell() /sc/source/ui/docshell/docsh.cxx:2894:1 #20 0x2ab6de4f105d in SvRefBase::ReleaseRef() /include/tools/ref.hxx:163:29 #21 0x2ab6de4a6259 in tools::SvRef<ScDocShell>::clear() /include/tools/ref.hxx:64:22 #22 0x2ab6de2b1aaa in Test::closeDocShell(tools::SvRef<ScDocShell>&) /sc/qa/unit/ucalc.cxx:365:18 #23 0x2ab6de2b2102 in Test::tearDown() /sc/qa/unit/ucalc.cxx:380:5 #24 0x2ab6de543787 in CppUnit::TestCaller<Test>::tearDown() /workdir/UnpackedTarball/cppunit/include/cppunit/TestCaller.h:185:15 #25 0x2ab69335765a in CppUnit::TestCaseMethodFunctor::operator()() const /workdir/UnpackedTarball/cppunit/src/cppunit/TestCase.cpp:32:5 #26 0x2ab6ae4f3957 in (anonymous namespace)::Protector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) /test/source/vclbootstrapprotector.cxx:46:14 #27 0x2ab693328cd7 in CppUnit::ProtectorChain::ProtectFunctor::operator()() const /workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 #28 0x2ab6a2974ff7 in (anonymous namespace)::Prot::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) /unotest/source/cpp/unobootstrapprotector/unobootstrapprotector.cxx:78:12 #29 0x2ab693328cd7 in CppUnit::ProtectorChain::ProtectFunctor::operator()() const /workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 during CppunitTest_sc_ucalc Change-Id: I778984beb9d1e355d3b8f9617b193424f332a32e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124709 Tested-by: Jenkins Reviewed-by: Kohei Yoshida <kohei@libreoffice.org>
2021-11-04Move these SC_STYLE_PROG_* and SC_PIVOT_STYLE_PROG_* constexpr to headerKevin Suo
so that they can be reused in other parts of the code base. Need to change them to inline to avoid "defined but not used" compiling error. Change-Id: I44de7c2ebbc9ae57c229f89faf69a788013d7816 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124643 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-11-03Upgrade mdds and liborcus to 2.0.0 and 0.17.0, respectively.Kohei Yoshida
Change-Id: I9e856fc2d61f1789a6f1702514837860539a0f49 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124573 Tested-by: Jenkins Tested-by: René Engelhard <rene@debian.org> Reviewed-by: Kohei Yoshida <kohei@libreoffice.org>
2021-11-03tdf#97667 Add XML Dump methods for Calc Pool ItemsFelipe Lema
Continuation of https://gerrit.libreoffice.org/c/core/+/88475 Change-Id: Ic41ae7df362a796c56e95b38ccb534bbe045ead7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113497 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2021-10-27fix AVX512 detectionLuboš Luňák
The value wasn't in config_host.mk.in, so it's never been used. And also fix Calc Kahan CPU-specific code yet again :( . Change-Id: Iacfd500e5a662b2b4b96a009d129a012d278a3ad Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124248 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-10-27Typo: pDataIgoreCase->pDataIgoreCase in scJulien Nabet
Change-Id: I61f90680f907ee567f1af45801be3e939849d4ff Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124246 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2021-10-26tdf#142010 XLS import: fix bad calculation after editingLászló Németh
Inserting a column messed up formulas in the test document of tdf#142010. This was a regression resulted by the tdf#89281 fix for a performance regression in XLS import related to shared formulas. Revert of commit ba686b9bd2596811141e4028947334f10799c356 "tdf#89281 fix performance regression of XLS import - cleanup" and commit b18b5b7edf3d14ef5f0efe53e367f88a423088c4 "tdf#89281 fix performance regression of XLS import". Change-Id: I96636fb1d84939385efbe7054a4271ff10b88907 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124151 Tested-by: László Németh <nemeth@numbertext.org> Reviewed-by: László Németh <nemeth@numbertext.org>
2021-10-22no need to allocate RangeIndexMapPtr separatelyNoel Grandin
Change-Id: I0e2aae923530667877bfb111b006b214ca51a730 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124057 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-10-14use std::vector::insert instead of push_backNoel Grandin
because it will pre-allocate space and often is optimised to memcpy Change-Id: I03ed7915f2762d3d27e378638052a47a28bbf096 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123588 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-10-12loplugin:unusedmethodsNoel Grandin
Change-Id: Ifd3a1ccef68ebc4cd4e7785357e6a476f6669eb8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123456 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-10-12Resolves: tdf#145077 Use position for jumping to named relative referencesEike Rathke
For named ranges with relative references construct the resulting cell range reference to be selected according to the current cell cursor position, same as in Manage Names and as they would result if used in a formula expression on that position. Change-Id: I8362c3e38086337ad90aa84cc7c13f284b41d9fc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123450 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2021-10-11loplugin:moveparam in scNoel Grandin
Change-Id: I4b9d45a6b0231841a5fe00d0193a8530b9e05559 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123389 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-10-11In O[U]StringBuffer, make string_view params replacements for OUString onesStephan Bergmann
...for LIBO_INTERNAL_ONLY, instead of having them as additional overloads. That way, loplugin:bufferadd and loplugin:stringviewparam found many further opportunities for simplification (all addressed here). Some notes: * There is no longer an implicit conversion from O[U]String to O[U]StringBuffer (as that goes via user-defined conversions through string_view now), which was most noticeable in copy initializations like OStringBuffer buf = someStr; that had to be changed to direct initialization, OStringBuffer buf(someStr); But then again, it wasn't too many places that were affected and I think we can live with that. * I made the O[U]StringBuffer ctors taking string_view non-explicit, mainly to get them in line with their counterparts taking O[U]String. * I added an OUStringBuffer::lastIndexOf string_view overload that was missing (relative to OUStringBuffer::indexOf). * loplugin:stringconstant needed some addition to keep the compilerplugins/clang/test/stringconstant.cxx checks related to OStringBuffer::append and OStringBuffer::insert working. * loplugin:stringviewparam no longer needs the special O[U]StringBuffer-related code that had been introduced in 1250aecd71fabde4dba990bfceb61bbe8e06b8ea "loplugin:stringviewparam extend to new.." Change-Id: Ib1bb8c4632d99b744e742605a9fef6eae959fd72 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122904 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-10-11add coverity[uninit_member] to explanationCaolán McNamara
Change-Id: I3aefd74b9fb940b9c7485a1c1b989a43912fdb60 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123368 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-10-07Blind fix crash in ScDBData::UpdateReference(), tdf#126926 follow-upEike Rathke
Crash reports at https://crashreport.libreoffice.org/stats/signature/ScDBData::UpdateReference(ScDocument%20const%20*,UpdateRefMode,short,long,short,short,long,short,short,long,short) No reproducer yet, for a possible reproducer see https://bugs.documentfoundation.org/show_bug.cgi?id=126926#c12 but creating such a scenario with 8 AutoFilters / sheets wasn't sufficient. However, ScDBCollection::NamedDBs (maNamedDBs) uses a std::set so after erase(iterator++) iterator is still valid, but ScDBCollection::AnonDBs maAnonDBs uses a std::vector for which after erase(iterator++) iterator may be invalid if vector was shrunk and reallocated. So use the iterator returning erase() instead to have a valid following iterator, and for consistency do that for both. A reproducer may need a bunch of sheets / anonymous AutoFilter for a vector to shrink and be reallocated, and it may depend on the plattform/compiler's implementation. Change-Id: Ib57294d8af9f486b734f4294d8d310ce0fa20551 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123224 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2021-10-05Fix crash if conditional format triggers recursion with iterations enabledEike Rathke
Could occur if a conditional format is evaluated (for example if row height is to be obtained) while a formula cell it references is still running and iterations are enabled so the conditional format's temporary formula cell is added to the iteration recursion list but iterations are not triggered if there are no circular references. In that case the temporary formula cell's pointer remained in the recursion list and it's dangling instance was accessed in the next round. Mark such formula cell as free-flying and remove from recursion list if it was added. Observed at https://ask.libreoffice.org/t/lo-calc-crashes-when-calling-a-macro/68800 with the original attached file that now got replaced with another version that doesn't have iterations enabled so wouldn't trigger the bug (and apparently even doesn't if enabling iterations). Change-Id: I23a023356f920b8413874cab14acdc8b25580052 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123115 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2021-09-28Resolves: tdf#144740 Fix broken compareByValue() query, tdf#142910 tdf#144253Eike Rathke
Fix regression of a series of commits that, intended for filter queries, unconditionally round numeric values as shown under ScTable::ValidQuery() and compareByValue() without having taken into account that the same query and compare functions are used by the interpreter for all functions that use query criteria, possibly delivering completely wrong results including in backports to 7.2.0.0 commit f6b143a57d9bd8f5d7b29febcb4e01ee1eb2ff1d CommitDate: Wed Jul 7 17:44:46 2021 +0200 tdf#142910 sc filter: fix "greater than" or "smaller than" etc commit 51375b48378915b6e95c1ac26b2ccf8e39880f7e CommitDate: Tue Sep 21 11:06:35 2021 +0200 tdf#144253 tdf#144324 sc filter: use formatted values in filters Several related and intertwined commits in filter context make assumptions about these queries always being executed rounded, so the only clean solution is to make that depend on the ScQueryEntry::Item being passed. Its mbRoundForFilter value is set to true for all items of all queries executed via ScTable::Query() and ScTable::GetFilteredFilterEntries(). It might be not all are necessary (or some even still harmful?) and unnecessarily obtaining number formats and calling RoundValueAsShown() is still a bottle neck for those, but that should be addressed and reworked independently. The important part is calculations work as before. Also, moved obtaining number formats for calling RoundValueAsShown() into logic that calls them only if necessary. Note the TODO in compareByValue() about suspicious rounding of rItem.mfVal in filter context that is to be addressed. Change-Id: Ieb178ad1ea15a635caeb1ba698c2f4b7ad676d57 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122729 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2021-09-24no need to allocate this SfxItemSet on the heapNoel Grandin
Change-Id: I4982d075f21f74b3d0db1c61a499dceb92e50c87 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122575 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-24no need to allocate this SfxItemSet on the heapNoel Grandin
Change-Id: If398e3725b691491e51e49eadeb37a7fdaad63db Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122554 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-22Extend loplugin:stringviewparam to starts/endsWith: scStephan Bergmann
Change-Id: Ibda7acf66bd8382de25fae9b4385d655be6ab409 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122490 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-09-17rather return ref from GetLocaleNoel Grandin
since we never return a nullptr. Change-Id: I459acd6a25b133da5fc8516aa5e1a982df80ae8e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122242 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-17rather return ref from GetTransliterationNoel Grandin
since we never return a nullptr. Also add a new utility method to simplify the call sites that need to pick the right collator Change-Id: I0ecf3ad32a0bf22d9e760620524f41bc18b54fff Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122238 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-17rather return ref from GetCollatorNoel Grandin
since we never return a nullptr. Also add a new utility method to simplify the call sites that need to pick the right collator Change-Id: I5deb009cb5144fd182bbc6470ae30ea05e6979c9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122237 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-17rather return ref from GetCalendarNoel Grandin
since we never return a nullptr Change-Id: I4cb4af99752818e323472a372330d1bc2a3df4f7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122236 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-17rather return ref from getLocaleDataPtrNoel Grandin
since we never return a nullptr, and rename to reflect that Change-Id: I694b5198f663842d1362504d60e7191e450a08ca Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122224 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-17use optional for some fields in ScGlobalNoel Grandin
Change-Id: I715b771a9c09b7bcc536ce114080e27d75c2e91c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122230 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-17rather return ref from getCharClassPtrNoel Grandin
since we never return a nullptr, and rename to reflect that Change-Id: I5b8f0aba6ce387bb0fe1ce6088ba2685d2ade7f5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122209 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>