summaryrefslogtreecommitdiff
path: root/basic
AgeCommit message (Collapse)Author
2016-09-23perf: eliminate SfxSimpleHint and move to SfxHint, tdf#87101 relatedEike Rathke
There were over 150 places in *::Notify() functions that did some dynamic_cast<SfxSimpleHint*> of which ~98% were unnecessary because the base class SfxHint passed was an SfxSimpleHint anyway. dynamic_cast operations come with quite some cost, so avoid if possible. Specifically for ScFormulaCell::Notify() that created a bottleneck in scenarios where cells were notified that already handled a previous notification. In mass operations doing the dynamic_cast before it could be decided whether having to act on it or not this made 2/3 of all time spent in the Notify() call. To get rid of that rename/move SfxSimpleHint to SfxHint and let classes derive from SfxHint instead of SfxSimpleHint. This comes only with a slight cost that an additional sal_uInt32 is transported in such hints, initialized to 0, but this is neglectable compared to the huge gain. For the rare cases where a Notify() actually expects both, an SfxHint (formerly SfxSimpleHint) and a derived hint, this changed order of the dynamic_cast involved so the simple SfxHint::GetId() is handled last. Modules using such combinations can further optimize by treating the simple SfxHint::GetId() first once verified that none of the other derived hints use an ID not equal to zero respectively none of the ID values the simple hint uses. Change-Id: I9fcf723e3a4487ceb92336189d23a62c344cf0ce Reviewed-on: https://gerrit.libreoffice.org/29205 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Eike Rathke <erack@redhat.com>
2016-09-20Related cid#1371289: Improve code to not depend on missing move assignmentStephan Bergmann
Change-Id: Id254fa76cafe33a36646d517d224ba6a05406c09
2016-09-16loplugin:singlevalfields in basic..idlNoel Grandin
Also fix obvious bug in the initialisation of the connectivity::odbc::OConnection::m_bClosed field. Probably closes some kind of connection leak there. Change-Id: I04579cf91bcd6d6c51c697d83971da4142743a82 Reviewed-on: https://gerrit.libreoffice.org/28932 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2016-09-15replace sal_Size with std::size_t (or sal_uInt64 for SvStream pos)Michael Stahl
... except in include/rtl, include/sal, include/uno, where sal_Size is retained for compatibility, and where callers of rtl functions pass in pointers that are incompatible on MSVC. Change-Id: I8344453780689f5120ba0870e44965b6d292450c
2016-09-14loplugin:constantparamNoel Grandin
clean up the plugin a little, and try to catch params which are default constructed, which doesn't seem to be working yet Change-Id: Ife45f18502a45cd26306424b7432c55fcbb0fd12 Reviewed-on: https://gerrit.libreoffice.org/28861 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2016-09-14loplugin:constantparam in accessibility to basicNoel Grandin
Change-Id: Id77cbcaefebf310a5d99c6ac12d154e182fd0a1c Reviewed-on: https://gerrit.libreoffice.org/28860 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2016-09-14tdf#88205 use list ctor for uno::Sequence a11y to canvasJochen Nitschke
Change-Id: Ib719c94c0488b8a48fdb013bc8fbd1a988595d18 Reviewed-on: https://gerrit.libreoffice.org/28866 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2016-09-13loplugin:dllprivateStephan Bergmann
Change-Id: I1fe70a39c50aba8b84c117653185fc37dbbfeab0
2016-09-13loplugin:override: No more need for the "MSVC dtor override" workaroundStephan Bergmann
The issue of 362d4f0cd4e50111edfae9d30c90602c37ed65a2 "Explicitly mark overriding destructors as 'virtual'" appears to no longer be a problem with MSVC 2013. (The little change in the rewriting code of compilerplugins/clang/override.cxx was necessary to prevent an endless loop when adding "override" to OOO_DLLPUBLIC_CHARTTOOLS virtual ~CloseableLifeTimeManager(); in chart2/source/inc/LifeTime.hxx, getting stuck in the leading OOO_DLLPUBLIC_CHARTTOOLS macro. Can't remember what that isAtEndOfImmediateMacroExpansion thing was originally necessary for, anyway.) Change-Id: I534c634504d7216b9bb632c2775c04eaf27e927e
2016-09-02boost::intrusive_ptr->tools::SvRefCaolán McNamara
Change-Id: I4c913dc62efe3f3747e78670f4efb0216d95c4ad Reviewed-on: https://gerrit.libreoffice.org/28585 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2016-08-31cppcheck:assertWithSideEffectJochen Nitschke
Change-Id: Ib3d2bb85c925a4208a9e2f0032857a11258c3bb2 Reviewed-on: https://gerrit.libreoffice.org/28540 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Jochen Nitschke <j.nitschke+logerrit@ok.de>
2016-08-30loplugin:stringconstant: adapt to improved OUStringLiteral1 (basic)Stephan Bergmann
Change-Id: I7e9ceb5513b34115bb1f41e627af06bbffc6ecf1
2016-08-29BASIC : Remove useless SbxBase::GetCreatorArnaud Versini
Change-Id: I3d9aa358ffaefc11b7d2427f2b567c360be2c667 Reviewed-on: https://gerrit.libreoffice.org/28434 Reviewed-by: Noel Grandin <noelgrandin@gmail.com> Tested-by: Noel Grandin <noelgrandin@gmail.com>
2016-08-28BASIC: Devirtualize SbiExprNode::~SbiExprNode and make SbiExprNode finalArnaud Versini
Change-Id: I95581265e2cc7befc00e67d42b6516d49c794680 Reviewed-on: https://gerrit.libreoffice.org/28438 Reviewed-by: Arnaud Versini <arnaud.versini@libreoffice.org> Tested-by: Arnaud Versini <arnaud.versini@libreoffice.org>
2016-08-27put StreamMode masks in scope of enum classJochen Nitschke
Change-Id: I77682f7e289a59b986bb84edf014029a20266470 Reviewed-on: https://gerrit.libreoffice.org/28420 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com> Tested-by: Noel Grandin <noelgrandin@gmail.com>
2016-08-25new loplugin: countusersofdefaultparamsNoel Grandin
Change-Id: I79e2c690f3e664c14af12cf763dd5a8ac20d6b04 Reviewed-on: https://gerrit.libreoffice.org/28353 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-08-24tdf#96505 get rid of "long" integer literals 'L'Asela Dasanayaka
Remove L from integer literals in module basic all 0L, 1L, 2L and 3L Change-Id: Ia46ce3d206020e16fc17e95731244a557941528c Reviewed-on: https://gerrit.libreoffice.org/27816 Reviewed-by: Tor Lillqvist <tml@collabora.com> Tested-by: Tor Lillqvist <tml@collabora.com>
2016-08-22Avoid OUString::operator[] out-of-bounds assertion when line ends with "&"Stephan Bergmann
Change-Id: I430e1df81a378243b139c654869589f1a75f5897
2016-08-19Resolves: tdf#88953 byref args incorrectly passed in basic->c++Caolán McNamara
partial revert of commit 22b094f5d8e1e82375b135abd3a6f99a9a555244 Date: Tue Jul 14 14:50:07 2015 +0200 loplugin:unusedmethods basic and partial revert of... commit e2080e70fe8b085f18e868e46340454720fa94ca Date: Wed Jun 18 12:14:29 2014 +0200 new compilerplugin returnbyref and revert of... commit 536051f8862203e0e115a5394a6379acd83cc8fe Date: Wed Jul 15 14:04:01 2015 +0200 fix Windows build after commit 22b094f5d8e1e82375b135abd3a6f99a9a555244 "loplugin:unusedmethods basic" Change-Id: I612937334fdb75365080c98a9d4da5ed7ae647e3
2016-08-19Some clang-tidy misc-move-constructor-initStephan Bergmann
...by turning the relevant ctor parameters into "const &". Change-Id: Ia8d0aba5da10ad6b25f8689e2281e45b3d71c1fc
2016-08-16basic: Simplify SbxArrayArnaud Versini
Change-Id: Idcc1e35d0a1d80591e2cebdae37a70cf029b022e Reviewed-on: https://gerrit.libreoffice.org/28147 Reviewed-by: Noel Grandin <noelgrandin@gmail.com> Tested-by: Noel Grandin <noelgrandin@gmail.com>
2016-08-15basic: SbxBase should be abstractArnaud Versini
Change-Id: Ief4297e5c64cfb29645463aca3cc677dc06fc95a Reviewed-on: https://gerrit.libreoffice.org/28112 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-08-13BASIC: Use more often std::unique_ptrArnaud Versini
Change-Id: I37f3b35afcf3b4dba30a6ba841a59e0d851f1ebb Reviewed-on: https://gerrit.libreoffice.org/27930 Reviewed-by: Noel Grandin <noelgrandin@gmail.com> Tested-by: Noel Grandin <noelgrandin@gmail.com>
2016-08-09BASIC: Use rtl/character.hxx in basic/source/sbx/sbxscan.cxxArnaud Versini
Change-Id: I018bc2881bca1973ef5e5133f3954252d5cea65e Reviewed-on: https://gerrit.libreoffice.org/27993 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-08-08BASIC: Remove useless BasicManagerImpl streams.Arnaud Versini
Change-Id: Iac5683afd20d8a2b7bc43474580bd1d05ace562b Reviewed-on: https://gerrit.libreoffice.org/27934 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-08-08BASIC: Move SbiParser's destructor to cpp file.Arnaud Versini
Change-Id: Id920a83693969ab2d93047524a9affa267a231dc Reviewed-on: https://gerrit.libreoffice.org/27931 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-08-04tdf#100726: Improve readability of OUString concatenationnadith
all most all of the places in the basic basctl modules this bug fixed Change-Id: I1a4a03e207c1b520449c31a05265585120da07f6 Reviewed-on: https://gerrit.libreoffice.org/27662 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-08-04loplugin:countusersofdefaultparams in basctl..basicNoel Grandin
Change-Id: I16fac3317ebf55581cb9aaef676a9759de51d695 Reviewed-on: https://gerrit.libreoffice.org/27793 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-07-31BASIC: Remove completly useless osl/thread includeArnaud Versini
Change-Id: I60c0b5d273344cb23c1226d7f2da81b6ee55892b Reviewed-on: https://gerrit.libreoffice.org/27753 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2016-07-27improve passstuffbyref return analysisNoel Grandin
Change-Id: I4258bcc97273d8bb7a8c4879fac02a427f76e18c Reviewed-on: https://gerrit.libreoffice.org/27317 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-07-26masses of MessBoxes not being disposed promptlyCaolán McNamara
since... commit ba81e5c6bd420b41a84ade6ccd774011a8089f7f Date: Thu May 28 21:35:43 2015 +0100 tdf#91702 - fix stack-based MessBox allocation. There is no special ScopedVclPtr<X>::Create or ScopedVclPtrInstance<X>::Create just VclPtr<X>::Create and a raw VclPtr<X>::Create()->foo doesn't call dispose on the owned X Change-Id: Ifacc8d5e742820701307c3c37b9b86487667d84f
2016-07-22basic: fix loplugin:cppunitassertequals warningsMiklos Vajna
Change-Id: I80c773f3127ebbce4b9b2a122a91a2e2ca4f505b Reviewed-on: https://gerrit.libreoffice.org/27424 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
2016-07-20Resolves: tdf#98778 fix parsing of exponentsCaolán McNamara
regression from... commit 9e9f39d171cafa035d7b8e74187e25c3581cb89d Date: Tue Mar 19 23:23:16 2013 +0100 resolved rhbz#919020 Basic CDbl() and CSng() scan localized number Change-Id: I96535fd9bc9ec59d6e07739a3118c96eb2d8bd05 Reviewed-on: https://gerrit.libreoffice.org/27342 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Eike Rathke <erack@redhat.com>
2016-07-18BASIC: Remove useless overridesArnaud Versini
Change-Id: I49eb680bb0945a65a98978e98750fd62669fd820 Reviewed-on: https://gerrit.libreoffice.org/27255 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-07-15tdf#100726: Improve readability of OUString concatenation in basic modulenadith
Change-Id: I96c3215cf9f8932127e681aaaaee649774cac2e4 Reviewed-on: https://gerrit.libreoffice.org/27229 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-07-13tdf#84635 - Slow layout of large tablesNoel Grandin
Based on suggestion from Aron Budea. And do something similar to most other places keeping vectors of weak references where the code looks like it will hold more than a few entries. Measurements: the 26 page file file takes 51s without my path 15s with this patch the 69 page file file takes 5m28 without my path 51s with this patch the 84 page file file takes 8m28 without my path 58s with this patch Change-Id: I8da94c525fc73ebd969e0343c6f074be4f0063b1 Reviewed-on: https://gerrit.libreoffice.org/27093 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-07-11BASIC : Remove useless 16bits Remove function from SbxArrayArnaud Versini
Change-Id: I050a034437d3370a28c9e5ab47abee369e634f7d Reviewed-on: https://gerrit.libreoffice.org/27089 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-07-08Resolves: tdf#100452 class Date full (BCE,CE) proleptic Gregorian calendarEike Rathke
... implementing signed years with year 0 gap. Date(31,12,-1) last day BCE Date(1,1,1) first day CE New class Date member functions: * AddYears(sal_Int16) to be used instead of aDate.SetYear(aDate.GetYear()+sal_Int16) to handle year 0 gap. * convenience GetNextYear() to be used insted of GetYear()+1 * convenience GetPrevYear() to be used insted of GetYear()-1 * AddMonths(sal_Int32) * operator=(const css::util::Date&) New class DateTime member functions: * operator=(const css::util::DateTime&) Made some conversion ctors explicit, specifically Date(sal_Int32) Adapted hopefully all places that used a sal_uInt16 year to use sal_Int16 where appropriate. Eliminated some quirks in date handling found on the fly. Added era handling to i18npool icu calendar setting interface, which missing was responsible for 0001-01-01 entered in Calc being set as -0001-01-01, hence subtracting one day resulted in -0002-12-31. Change-Id: I77b39fba9599ebd5067d7864f6c9ebe01f6f578f Reviewed-on: https://gerrit.libreoffice.org/27049 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins <ci@libreoffice.org>
2016-07-08loplugin:redundantcast: redundant static_casts in basicStephan Bergmann
Change-Id: I6504cb70518f8770a0d44b1fb4d8ad91e43dc2b6
2016-07-07loplugin:passstuffbyref also for {css::uno,rtl}::ReferenceStephan Bergmann
Change-Id: I614d91e7e4a686613dc0cbe1b9f4fabb978ffc77
2016-07-03Improve readability of OUString concatanation in LibPageMuhammet Kara
, ScriptDocument , PropBrw , VBATest , SbUnoClass , SbModule , and SbiSymPool It is more readable and more efficient as a bonus. See: https://goo.gl/jsVAwy: Change-Id: I73926989345193b133e538d5aeca36f12723162c Reviewed-on: https://gerrit.libreoffice.org/26853 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
2016-06-27tdf#96505 Get rid of cargo cult long integer literalsapurvapriyadarshi
Cleanup in basic/source/runtime/runtime.cxx Change-Id: I1176251af9c4ca56c29dfafab20caccd7a28d60f Reviewed-on: https://gerrit.libreoffice.org/26627 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-06-27loplugin:singlevalfields in basic and fix leakNoel Grandin
And fix leak in BasicManagerImpl where it would never have freed the streams. Change-Id: I1e99c2c6a70a8cac27dd5c86a7042efc3de7a578 Reviewed-on: https://gerrit.libreoffice.org/26632 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-06-24compilerplugins: add OWeakObject::release() override checkMichael Stahl
Change-Id: I767857545d7c91615cf162790c04f0016de9fdf6 Reviewed-on: https://gerrit.libreoffice.org/26555 Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Tested-by: Stephan Bergmann <sbergman@redhat.com>
2016-06-23tdf#99589 - tolower / toupper - dangerous to Turks ...Gökhan Gurbetoğlu
Change-Id: I8b0fe9354232a7b60f3605fa6f90f6741f7bf683 Reviewed-on: https://gerrit.libreoffice.org/26537 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: jan iversen <jani@documentfoundation.org>
2016-06-21prefer OUStringBuffer to concatenating OUString in a loopMuhammet Kara
And improve OUString readability and efficiency. See: https://goo.gl/jsVAwy: Change-Id: I8d847b1ca3cde7cb8733d6f8a649612745cf6aae Reviewed-on: https://gerrit.libreoffice.org/26511 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-06-14Resolves: tdf#59222 Crash in Basic with an array of values...Caolán McNamara
from a range address trying to make all SbxVariables reference count their parents is ludiciously hard, so just reference count this one known crashing case Change-Id: Ie1fa6624e8184146dd00d766cdbacef674153ef6 Reviewed-on: https://gerrit.libreoffice.org/26272 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2016-06-14drop dramatic distracting commentCaolán McNamara
Change-Id: Ic4b5537075e7ea9a713409982bb21e12f6b53e3f Reviewed-on: https://gerrit.libreoffice.org/26271 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2016-06-14Clean up uses of Any::getValue() in basicStephan Bergmann
Change-Id: Ice269eae6b0278d5e089d973aae72b3f871c1272
2016-06-12convert more DBG_ASSERT(false to SAL_WARNNoel Grandin
Change-Id: Ie52f28f28c67a91c4d3d4517d5c6a466890c7a55 Reviewed-on: https://gerrit.libreoffice.org/26195 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>