summaryrefslogtreecommitdiff
path: root/sc/source/core/data/document.cxx
AgeCommit message (Collapse)AuthorFilesLines
2018-09-03tdf#112454 Also consider last SCTAB in loopMichael Weghorn1-1/+1
Since 'rRange.aEnd.Tab()' is valid, it needs to be included in the loop to get a valid result. Reviewed-on: https://gerrit.libreoffice.org/59798 Tested-by: Jenkins Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de> (cherry picked from commit 03b361673d04f31e0602d2988e4df26eaeb53a34) Conflicts: sc/source/core/data/document.cxx Backported. Change-Id: I7b2447e059dc03444c56e7fc0b113e1b618dd510 Reviewed-on: https://gerrit.libreoffice.org/59878 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins (cherry picked from commit 9858b7004856a632778dde0dc7edddb14b673194)
2018-08-27Null deref in ScDocument::IsClipboardSourceStephan Bergmann1-1/+1
Appears to be a regression introduced with b6b1ded0a0539e7be1b5338de378a3276a6ff445 "sc: replace ScCaptionPtr with std::shared_ptr, tdf#117997, tdf#117228". Reported e.g. as <https://ci.libreoffice.org//job/lo_ubsan/954/console> during CppunitTest_sc_subsequent_export_test and CppunitTest_sc_ucalc: > /sc/source/core/data/document.cxx:2574:28: runtime error: member call on null pointer of type 'ScDocShell' > #0 0x2b9971542d76 in ScDocument::IsClipboardSource() const /sc/source/core/data/document.cxx:2574:28 > #1 0x2b99722b7762 in ScFormulaCell::ScFormulaCell(ScFormulaCell const&, ScDocument&, ScAddress const&, ScCloneFlags) /sc/source/core/data/formulacell.cxx:844:14 > #2 0x2b996fee35b0 in ScCellValue::assign(ScCellValue const&, ScDocument&, ScCloneFlags) /sc/source/core/data/cellvalue.cxx:395:29 > #3 0x2b997312db22 in ScChangeTrack::Clone(ScDocument*) const /sc/source/core/tool/chgtrack.cxx:4565:25 > #4 0x2b99cd1728be in XclExpChangeTrack::CreateTempChangeTrack() /sc/source/filter/xcl97/XclExpChangeTrack.cxx:1561:12 > #5 0x2b99cd169a74 in XclExpChangeTrack::XclExpChangeTrack(XclExpRoot const&) /sc/source/filter/xcl97/XclExpChangeTrack.cxx:1418:39 > #6 0x2b99cab087c0 in ExcDocument::ReadDoc() /sc/source/filter/excel/excdoc.cxx:788:41 > #7 0x2b99cadddc2e in ExportBiff5::Write() /sc/source/filter/excel/expop2.cxx:112:5 > #8 0x2b99cab8ee83 in lcl_ExportExcelBiff(SfxMedium&, ScDocument*, SvStream*, bool, unsigned short) /sc/source/filter/excel/excel.cxx:181:16 > #9 0x2b99cab8d342 in ScFormatFilterPluginImpl::ScExportExcel5(SfxMedium&, ScDocument*, ExportFormatExcel, unsigned short) /sc/source/filter/excel/excel.cxx:219:16 > #10 0x2b99768df9d2 in ScDocShell::ConvertTo(SfxMedium&) /sc/source/ui/docshell/docsh.cxx:2419:30 > #11 0x2b998a7e2550 in SfxObjectShell::SaveTo_Impl(SfxMedium&, SfxItemSet const*) /sfx2/source/doc/objstor.cxx:1513:19 > #12 0x2b998a7fe5e2 in SfxObjectShell::DoSaveAs(SfxMedium&) /sfx2/source/doc/objstor.cxx:1900:17 > #13 0x2b9985a31bb6 in ScBootstrapFixture::saveAndReload(ScDocShell*, rtl::OUString const&, rtl::OUString const&, rtl::OUString const&, SfxFilterFlags) /sc/qa/unit/helper/qahelper.cxx:664:5 > #14 0x2b9985a34593 in ScBootstrapFixture::saveAndReload(ScDocShell*, int) /sc/qa/unit/helper/qahelper.cxx:686:28 > #15 0x2b9956fca835 in ScExportTest::testTrackChangesSimpleXLSX() /sc/qa/unit/subsequent_export-test.cxx:2618:29 > #16 0x2b9957203058 in void std::_Mem_fn_base<void (ScExportTest::*)(), true>::operator()<, void>(ScExportTest*) const /home/tdf/lode/opt_private/lib/gcc/x86_64-unknown-linux-gnu/5.2.0/../../../../include/c++/5.2.0/functional:600:11 > #17 0x2b9957202d63 in void std::_Bind<std::_Mem_fn<void (ScExportTest::*)()> (ScExportTest*)>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) /home/tdf/lode/opt_private/lib/gcc/x86_64-unknown-linux-gnu/5.2.0/../../../../include/c++/5.2.0/functional:1073:11 > #18 0x2b9957202771 in void std::_Bind<std::_Mem_fn<void (ScExportTest::*)()> (ScExportTest*)>::operator()<, void>() /home/tdf/lode/opt_private/lib/gcc/x86_64-unknown-linux-gnu/5.2.0/../../../../include/c++/5.2.0/functional:1131:11 > #19 0x2b9957201149 in std::_Function_handler<void (), std::_Bind<std::_Mem_fn<void (ScExportTest::*)()> (ScExportTest*)> >::_M_invoke(std::_Any_data const&) /home/tdf/lode/opt_private/lib/gcc/x86_64-unknown-linux-gnu/5.2.0/../../../../include/c++/5.2.0/functional:1871:2 > #20 0x2b9957203ad0 in std::function<void ()>::operator()() const /home/tdf/lode/opt_private/lib/gcc/x86_64-unknown-linux-gnu/5.2.0/../../../../include/c++/5.2.0/functional:2271:14 > #21 0x2b99571ff885 in CppUnit::TestCaller<ScExportTest>::runTest() /workdir/UnpackedTarball/cppunit/include/cppunit/TestCaller.h:175:7 > #22 0x2b990c338e7d in CppUnit::TestCaseMethodFunctor::operator()() const /workdir/UnpackedTarball/cppunit/src/cppunit/TestCase.cpp:32:5 > #23 0x2b99294cb4d6 in (anonymous namespace)::Protector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) /test/source/vclbootstrapprotector.cxx:48:14 > #24 0x2b990c2f7947 in CppUnit::ProtectorChain::ProtectFunctor::operator()() const /workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:12 > #25 0x2b991bcad7a6 in (anonymous namespace)::Prot::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) /unotest/source/cpp/unobootstrapprotector/unobootstrapprotector.cxx:89:12 > #26 0x2b990c2f7947 in CppUnit::ProtectorChain::ProtectFunctor::operator()() const /workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:12 > #27 0x2b9917d39e13 in (anonymous namespace)::Prot::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) /unotest/source/cpp/unoexceptionprotector/unoexceptionprotector.cxx:63:16 > #28 0x2b990c2f7947 in CppUnit::ProtectorChain::ProtectFunctor::operator()() const /workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:12 > #29 0x2b990c2732df in CppUnit::DefaultProtector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) /workdir/UnpackedTarball/cppunit/src/cppunit/DefaultProtector.cpp:15:12 > #30 0x2b990c2f7947 in CppUnit::ProtectorChain::ProtectFunctor::operator()() const /workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:12 > #31 0x2b990c2edb70 in CppUnit::ProtectorChain::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) /workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:86:18 > #32 0x2b990c3c2ccb in CppUnit::TestResult::protect(CppUnit::Functor const&, CppUnit::Test*, std::string const&) /workdir/UnpackedTarball/cppunit/src/cppunit/TestResult.cpp:182:10 > #33 0x2b990c335efd in CppUnit::TestCase::run(CppUnit::TestResult*) /workdir/UnpackedTarball/cppunit/src/cppunit/TestCase.cpp:91:5 > #34 0x2b990c33c0b3 in CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) /workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:64:5 > #35 0x2b990c33b01d in CppUnit::TestComposite::run(CppUnit::TestResult*) /workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:23:3 > #36 0x2b990c33c0b3 in CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) /workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:64:5 > #37 0x2b990c33b01d in CppUnit::TestComposite::run(CppUnit::TestResult*) /workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:23:3 > #38 0x2b990c402686 in CppUnit::TestRunner::WrappingSuite::run(CppUnit::TestResult*) /workdir/UnpackedTarball/cppunit/src/cppunit/TestRunner.cpp:47:5 > #39 0x2b990c3c0e19 in CppUnit::TestResult::runTest(CppUnit::Test*) /workdir/UnpackedTarball/cppunit/src/cppunit/TestResult.cpp:149:3 > #40 0x2b990c403b27 in CppUnit::TestRunner::run(CppUnit::TestResult&, std::string const&) /workdir/UnpackedTarball/cppunit/src/cppunit/TestRunner.cpp:96:3 > #41 0x515d6d in (anonymous namespace)::ProtectedFixtureFunctor::run() const /sal/cppunittester/cppunittester.cxx:315:13 > #42 0x51071f in sal_main() /sal/cppunittester/cppunittester.cxx:465:14 > #43 0x50e832 in main /sal/cppunittester/cppunittester.cxx:372:1 > #44 0x2b990e038444 in __libc_start_main (/lib64/libc.so.6+0x22444) > #45 0x433494 in _start (/workdir/LinkTarget/Executable/cppunittester+0x433494) Change-Id: Id6cbc92844c89d48daecf8fad0b8899fcd087eaa Reviewed-on: https://gerrit.libreoffice.org/56513 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Reviewed-on: https://gerrit.libreoffice.org/59629 Reviewed-by: Andras Timar <andras.timar@collabora.com> Tested-by: Andras Timar <andras.timar@collabora.com>
2018-08-27sc: replace ScCaptionPtr with std::shared_ptr, tdf#117997, tdf#117228Henry Castro1-4/+6
Change-Id: I9b6a2c2504c9ce060906ac3bf156721709fef2f3 Reviewed-on: https://gerrit.libreoffice.org/55490 Tested-by: Jenkins Reviewed-by: Eike Rathke <erack@redhat.com> Reviewed-on: https://gerrit.libreoffice.org/59628 Reviewed-by: Andras Timar <andras.timar@collabora.com> Tested-by: Andras Timar <andras.timar@collabora.com>
2018-03-19lokit: add .uno:DocumentRepair commandHenry Castro1-1/+4
Change-Id: I5b13ea6f4785bc91c29111fa63c4a1b0ea9b2660 Reviewed-on: https://gerrit.libreoffice.org/38908 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Henry Castro <hcastro@collabora.com> (cherry picked from commit 6fd6e3c1d36d67002967f56e47255e360f4b08c1)
2017-12-07Prevent out-of-bounds access, tdf#114228 relatedEike Rathke1-1/+1
Such document access should be validated, specifically if it's called from accessibility. Change-Id: I67fa14c7fb1bf3885fc009428b981149f3f448fb Reviewed-on: https://gerrit.libreoffice.org/45978 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Eike Rathke <erack@redhat.com> (cherry picked from commit 7265e75f8b34cc1043b972478e8b499566660f86) Reviewed-on: https://gerrit.libreoffice.org/45979 Tested-by: Jenkins <ci@libreoffice.org>
2017-11-24consistently use sal_uInt32 for number formats in scNoel Grandin1-1/+1
instead of a mix of short/sal_uLong/sal_uInt32 Change-Id: Ie5bd26e1a6f716c0c4e174a6d560827084b3f421 Reviewed-on: https://gerrit.libreoffice.org/45159 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-11-23Document, and simplify the two uses of ScMutationGuard.Michael Meeks1-27/+0
Creates ScMutationDisable - used to ensure that no core data structure is mutated below this guard in any thread. This can also be used to disable access in the same thread now. Change-Id: I7e4e98d8ff986490ccd5064b3b9af56acd877b49 Reviewed-on: https://gerrit.libreoffice.org/45119 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2017-11-23related tdf#108757 small enhancements for speed upSerge Krot1-6/+7
- no strings reallocation - faster for-loops Change-Id: I98a355eb3bcb48219afd6334615c9c092ed1a352 Reviewed-on: https://gerrit.libreoffice.org/45142 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2017-11-23TypedWhichId create custom get methods in ScPatternAttrNoel Grandin1-4/+2
Change-Id: Iaa326332f5806477dd81463e6b6004a962bac934 Reviewed-on: https://gerrit.libreoffice.org/45128 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-11-23TypedWhichId for sc constantsNoel Grandin1-6/+6
Change-Id: I25a07d84ae24fdd3b4fbd303beea755169eb9acb Reviewed-on: https://gerrit.libreoffice.org/45084 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-11-23loplugin:simplifybool for negation of comparison operatorNoel Grandin1-2/+2
Change-Id: Ie56daf560185274754afbc7a09c432b5c2793791 Reviewed-on: https://gerrit.libreoffice.org/45068 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-11-21WaE: C4334: '<<': result of 32-bit shift implicitly converted to 64 bitsTor Lillqvist1-2/+2
Change-Id: I6e30bd1b77f0f7df01571c9f497cbde1380e73be
2017-11-21Avoid unused private field warning in the NDEBUG caseTor Lillqvist1-0/+1
Change-Id: I5e37b9a8325af35a15c01409f9eaa2f92459cc28
2017-11-21Move ScDocument::GetNonThreadedContext() inlineTor Lillqvist1-7/+0
Did not have any impact on performance, though. Change-Id: I7e769b4a74e0ff9e0aabfb7e291fc4b987441954
2017-11-21-Werror,-Wunused-parameterTor Lillqvist1-2/+2
Change-Id: If10c6a58f5b6f196f3644f6c592dd6d1dc0d860c
2017-11-21-Werror,-Wsign-compareTor Lillqvist1-2/+2
Change-Id: Ide03e0ae1fe97e1a09a767908a981a1e803a3474
2017-11-21Introduce ScInterpreterContextTor Lillqvist1-5/+12
Possibly later things that need to be thread-local can be handled through the ScInterpreterContext. Why handle some thread-local things through the ScDocument::maNonThreaded and ScDocument::maThreadSpecific mechanism, and others through this ScInterpreterContext? Good question. Share SvNumberFormatter across worker threads and use mutex to protect SvNumberFormatter::IsNumberFormat() Change-Id: I372e5fbd9a19785f55f0faf4a4bedc5fc1ef3e03
2017-11-21Move nInterpreterTableOpLevel back to ScDocumentTor Lillqvist1-40/+0
Change-Id: I4de0051d9fa5de9147954c6021d47076145a3e59
2017-11-21Move nMacroInterpretLevel back to ScDocumentTor Lillqvist1-26/+0
Change-Id: I48748434c845af963af160f8bbd75e4ab7ce95bd
2017-11-21Move nInterpretLevel back to ScDocumentTor Lillqvist1-26/+0
Move the calls to increment and decrement it out of InterpretTail(), to those call sites that aren't reached during parallelized calculations. Use unique_ptr for pInt in StackCleaner Change-Id: Ie1bd03dd62aea5f6c71c383df21afff29391dade
2017-11-21Re-work how the thread-specific data in ScDocument worksTor Lillqvist1-25/+80
We can use normal thread_local data for it as a thread can only be acting on one ScDocument in parallelized formula group calculation anyway. Use separate data instance for the non-threaded data, and when a thread starts, copy that to the thread-specific data. Change-Id: I3e58320a728d1c5639a8a078748b3d4d7a451b25
2017-11-21Move some of the fields in ScDocument into a thread-local structTor Lillqvist1-0/+66
This is part of the work to enable having several ScInterpreters working on the same object in parallel. Perhaps a more thorugh re-factoring would be better, maybe these fields should not be part of ScDocument at all, but part of ScInterpreter? Without this change the parallelism unit test occasionally fails. Change-Id: I70500b4d2b513e134d22b4b98c84a3ec00dad291
2017-11-21Guard pFormatExchangeList from mutation during threaded calculationTor Lillqvist1-0/+4
Change-Id: I645630fae8a5fcd09d8af4c4ec9aac94edbd2f25
2017-11-21Guard pValidationList from mutationTor Lillqvist1-0/+15
Change-Id: I9bd889523b5e5374776d94534ae2171e7a5a635d
2017-11-21Add "mutation guard" API for ScDocumentTor Lillqvist1-0/+30
USe by adding a ScMutationGuard object to a section of code that shouldn't be run during threaded calculation of a formula group in any of the calculation threads. There are currently several "classes" of mutation as bits of ScMutationGuardFlags, althouh I am not sure whether that will be useful, so far I use just the one same (CORE) in all cases. Currently implemented using mutexes. Possibly a simple bool field in ScDocument would be enough, the multiple flags and mutexes might be over-complicating it? Maybe I misunderstood what I want. Add such mutation guards for some fields of ScDocument. Change-Id: If2a8223c49d36143f2984e0449798271f2b6440d
2017-11-21First steps for Calc parallelismTor Lillqvist1-0/+9
For now, formula group calculations are done in parallel threads when 1) OpenCL is not used, and 2) the environment variable CPU_THREADED_CALCULATION is set. This commit is a surely broken first step and does not actually work that well at all. Change-Id: Ia7e5019703ba89bff0695faef0f7504765061149
2017-10-23loplugin:includeform: scStephan Bergmann1-52/+52
Change-Id: I2ed763e0584a188032c80fde60890de3c6985cbd
2017-10-21coverity#1401307 document checked 'Uncaught exception'Caolán McNamara1-2/+2
markup std::unique_ptr where coverity warns a dtor might throw exceptions which won't throw in practice, or where std::terminate is an acceptable response if they do Change-Id: Icc99cdecf8d8b011e599574f0a05b59efd1c65c2 Reviewed-on: https://gerrit.libreoffice.org/41561 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2017-10-09prevent crash in the new dataprovider UI when adding a new columnMarkus Mohrhard1-1/+1
Change-Id: I3f87d2dac75662ab1da6049579d33d6b39e1da0c Reviewed-on: https://gerrit.libreoffice.org/43257 Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com> Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
2017-09-14simplify calls to IsStreamValid/SetStreamValidNoel Grandin1-1/+1
just add a short-circuit check inside SetStreamValid, and we can simplify all of the call sites Change-Id: Ib3d19455c60fe9569faf548b1fefbc274d03574c Reviewed-on: https://gerrit.libreoffice.org/42267 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-09-14convert ScAttrArray to use std::vectorNoel Grandin1-7/+7
instead of re-implementing it ourselves. Which lead to some changes in Xf::AttrList since the import process wants to donate it's array to ScAttrArray. Change-Id: I176148131fb5f163e25691ad690f63398ba1a556 Reviewed-on: https://gerrit.libreoffice.org/42205 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-09-13rename ScAttrEntry.nRow to nEndRowNoel Grandin1-2/+2
since it's the last row that the pattern applies to Change-Id: I80d6d5787768b1e98e958d7adc4c13c37c560ccd Reviewed-on: https://gerrit.libreoffice.org/42211 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-09-12Prefix one more member of ScDocument: pDrawLayerTor Lillqvist1-13/+13
Change-Id: I8b2fdca8a58db6c6633d7708ed42ca218799c53b
2017-09-12clang-tidy modernize-use-emplace in scNoel Grandin1-2/+2
Change-Id: Ifc38e1fc188fe957a0c717aec19cdd6637e4c658 Reviewed-on: https://gerrit.libreoffice.org/42183 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-09-05Prefix one more member of ScDocument: pShellTor Lillqvist1-14/+14
Change-Id: I72f2556f54e1ea4b397f9b21b1d767ae597e6e43
2017-09-05Prefix one more member of ScDocument: xPoolHelperTor Lillqvist1-14/+14
Change-Id: Id1a216e909d5c0a6bafa80d1e40613fb38ceb1ef
2017-09-04loplugin:unnecessaryparen include c++ castsNoel Grandin1-7/+7
Change-Id: I132d3c66f0562e2c37a02eaf4c168d06c2b473eb Reviewed-on: https://gerrit.libreoffice.org/41874 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-09-02dynamic column container: fix some more for loopsNoel Grandin1-1/+1
and add reverse-iterator functionality Change-Id: Ide7ee9d2152871d414246303d76c91da36557524 Reviewed-on: https://gerrit.libreoffice.org/41727 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-08-31make the ScColumnsRange iterator return SCCOLNoel Grandin1-5/+4
since we don't want to expose internal details like the ScColumn to most of the code, make the ScColumnsRange iterators return SCCOL instead of ScColumn* Change-Id: I67a58df90959170105255d18e7dd38ef0d6e3c11 Reviewed-on: https://gerrit.libreoffice.org/41719 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Eike Rathke <erack@redhat.com>
2017-08-25dynamic column container: more efficient loops over all colsNoel Grandin1-2/+15
Create an ScColumnsRange class that returns a pair of (start,end) iterators to go through the list of currently allocated columns. This is a fairly thing wrapper around the underlying std::vector, so it should be fairly efficient (two pointers, and pointer increment for iteration). If this style of iteration is acceptable, I'll go through the rest of the code that does: for (SCCOL nCol=0; nCol<MAXCOLCOUNT; nCol++) type stuff, and change it to use ScColumnsRange. Change-Id: I81501c69b7f5566c6204dde0d87a6fe0deb9743c Reviewed-on: https://gerrit.libreoffice.org/41413 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-08-22loplugin:constparam in sc part1Noel Grandin1-4/+4
Change-Id: I82fba7ebb3b4f018721642c96bbfa615c6a382c3 Reviewed-on: https://gerrit.libreoffice.org/41419 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-08-17remove UL/L suffixes from integer constants on the RHS of expressionsNoel Grandin1-2/+2
Change-Id: I899a8126c9d971601fea6c77eca165718aea0ac5 Reviewed-on: https://gerrit.libreoffice.org/41237 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-08-15Change HardRecalcState to enum classTor Lillqvist1-1/+1
Change-Id: I8b20ce6b58915c37e6d4caa11d2f4c724864a257
2017-08-07oovbaapi: screenUpdating, do not adjust heightTamas Bunth1-0/+7
Do not adjust row height if screenUpdating false, because it consumes significant time. Also change IsAdjustHeightEnabled boolean to a counter so it can be used several times in an overlapping manner too. Change-Id: Ie5c894481f3c1b4e07175164aac8303e504779ce Reviewed-on: https://gerrit.libreoffice.org/40443 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tamás Bunth <btomi96@gmail.com>
2017-08-01Resolves: tdf#109856 undo 'insert multiple tabs after' doesn't workCaolán McNamara1-1/+1
Change-Id: I534536358b2a949667c1c258bf27e13763c0de57 Reviewed-on: https://gerrit.libreoffice.org/40620 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2017-07-22avoid unnecessary calls of AdjustRowHeightTamas Bunth1-3/+4
Change-Id: I2d164f69a7313d69f3fe5cabe1e3cc39aeba4d32 Reviewed-on: https://gerrit.libreoffice.org/40272 Reviewed-by: Tamás Bunth <btomi96@gmail.com> Tested-by: Tamás Bunth <btomi96@gmail.com>
2017-07-20Another attempt to blind fix tdf#108612Eike Rathke1-0/+3
Oddly in that scenario on Windows there are two clipboard documents alive when destroying one, so the destroyed one erroneously is said to be a clipboard source and then detachs the comments' caption information. There's no legit case where a clipboard document could actually be the real original source of another clipboard document, so bail out if the caller already is one. Change-Id: I0f8d240d8ec13bf91b77176dc6439a541cf14eaa
2017-07-20Avoid unnecessary calls of AdjustRowHeightTamas Bunth1-2/+2
Check if attribute changed during ApplyAttributes. If it did not change, it is unnecessary to recalculate cell size, repaint etc. Change-Id: Ic3a3fa24efa9ad3619b8979a67e972a7635311cc Reviewed-on: https://gerrit.libreoffice.org/40198 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tamás Bunth <btomi96@gmail.com>
2017-07-14use more OUString::operator== in scNoel Grandin1-1/+1
Change-Id: I1a7691fe59e5e93c15bd812f03366da814f9f3db Reviewed-on: https://gerrit.libreoffice.org/39900 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-13loplugin:oncevar: empty strings: scStephan Bergmann1-6/+3
Change-Id: I8eca50560d9ce0a3be5ffe6a4a88cb0de5d5d451