summaryrefslogtreecommitdiff
path: root/include/svl/itemset.hxx
AgeCommit message (Collapse)Author
2017-12-10Bin two comments that say the same as the names of the functions they are forTor Lillqvist
Change-Id: I385e0ae6502eeab9e5cb536c34c64b7fa48442d0 Reviewed-on: https://gerrit.libreoffice.org/46138 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tor Lillqvist <tml@collabora.com>
2017-11-28loplugin:countusersofdefaultparams in sfx2..svtoolsNoel Grandin
Change-Id: I65ae5305f9cec14069fd7aef6613e981dbbed846 Reviewed-on: https://gerrit.libreoffice.org/45382 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-11-16use implict conversion operator in TypedWhichIdNoel Grandin
instead of spreading calls to Which() everywhere. Change-Id: Ie32d106e44f5cb583908eeebe254ab8b8168ae61 Reviewed-on: https://gerrit.libreoffice.org/44760 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-11-15TypedWhichIdNoel Grandin
use a strong-typedef template to give which IDs a type, which we can carry around to do a (a) little bit more convenience when Get()'ing them and (b) a little bit of enforcement of which PoolItem subclass each ID uses Fix a bug in casting EE_PARA_BULLETSTATE to the wrong subclass in AccessibleEditableTextPara::_correctValues Change-Id: I015ce8b3b0f6d21308af182afa3caf122c877a5b Reviewed-on: https://gerrit.libreoffice.org/44587 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-08-16Removing unused serialisation codeVarun Dhall
Change-Id: Id31c8de69043d393f005f83d5c7eba878af5119c Reviewed-on: https://gerrit.libreoffice.org/41149 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Stahl <mstahl@redhat.com>
2017-07-27Ditch use of EditTextObject::Store() in ScGlobal::EETextObjEqual()Eike Rathke
This was the last incarnation of SfxItem binary stream serialization that is to be eliminated after clipboard use is gone. The "full" EditTextObject::operator==() in EditTextObjectImpl::operator==(), and via ContentInfo::operator==() in SfxItemSet::operator==(), also compare the SfxItemPool pointers which gets in the way here (not stored to stream hence didn't matter and maybe the reason for not having switched EETextObjEqual() to use operator==() back in the days). Introduce *::Equals() functions that do not compare pool pointers and let SfxItemSet::Equals() in that case not assume it would be operating on one pool only. Change-Id: Ifff939a92101c7f74695b676a45a7fdbb4f1d7f6 Reviewed-on: https://gerrit.libreoffice.org/40492 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins <ci@libreoffice.org>
2017-06-19Make SfxItemSet ranges correct by construction: Fix static casesStephan Bergmann
...with the aid of an extended compilerplugins/clang/store/sfxitemsetrewrite.cxx (which in turn needed a small addition to compilerplugins/clang/check.hxx). Enable svl::detail::validGap check for the static case, but keep it disabled for now for the dynamic case. Change-Id: I4846ba8e99aff94a86518e2cb5044e575093386e
2017-06-16Make SfxItemSet ranges correct by constructionStephan Bergmann
This is a follow-up to 45a7f5b62d0b1b21763c1c94255ef2309ea4280b "Keep WID ranges sorted, and join adjacent ones". While SfxItemSet::MergeRange relies on the m_pWhichRanges being sorted (and, under DBG_UTIL, asserts if they are not), the various SfxItemSet constructors curiously only check (via assert or DBG_ASSERT) that each individual range has an upper bound not smaller than its lower bound. Arguably, all SfxItemSet instances should fulfill the stronger guarantees required and checked by MergeRange. And in many cases the ranges are statically known, so that the checking can happen at compile time. Therefore, replace the two SfxItemSet ctors taking explicit ranges with two other ctors that actually do proper checking. The (templated) overload taking an svl::Items struct should be used in all cases where the range values are statically known at compile time, while the overload taking a std::initializer_list<Pair> is for the remaining cases (that can only do runtime checking via assert). Most of those latter cases are simple cases with a single range covering a single item, but a few are more complex. (At least some of the uses of the existing SfxItemSet overload taking a const sal_uInt16* pWhichPairTable can probably also be strengthened, but that is left for another day.) This commit is the first in a series of two. Apart from the manual changes to compilerplugins/clang/store/sfxitemsetrewrite.cxx, include/svl/itemset.hxx, and svl/source/items/itemset.cxx, it only consists of automatic rewriting of the relevant SfxItemSet ctor calls (plus a few required manual fixes, see next). But it does not yet check that the individual ranges are properly sorted (see the TODO in svl::detail::validGap). That check will be enabled, and the ensuing manual fixes will be made in a follow-up commit, to reduce the likelyhood of accidents. There were three cases of necessary manual intervention: * sw/source/core/unocore/unostyle.cxx uses eAtr of enum type RES_FRMATR in braced-init-list syntax now, so needs explicit narrowing conversion to sal_uInt16. * In sw/source/uibase/uiview/formatclipboard.cxx, the trailiing comma in the definition of macro FORMAT_PAINTBRUSH_FRAME_IDS needed to be removed manually. * In svx/source/svdraw/svdoashp.cxx, svx/source/svdraw/svdotext.cxx, sw/source/uibase/app/docstyle.cxx, sw/source/uibase/shells/frmsh.cxx, sw/source/uibase/shells/grfsh.cxx, and sw/source/uibase/shells/textsh1.cxx, some comments had to be put back (see "TODO: the replaced range can contain relevant comments" in compilerplugins/clang/store/sfxitemsetrewrite.cxx). A few uses of the variadic form erroneously used nullptr instead of 0 for termination. But this should have been harmless even if promoted std::nullptr_t is larger than promoted sal_uInt16, assuming that the part of the nullptr value that was interpreted as sal_uInt16/promoted int was all-zero bits. Similarly, some uses made the harmless error of using 0L instead of 0. Change-Id: I2afea97282803cb311b9321a99bb627520ef5e35 Reviewed-on: https://gerrit.libreoffice.org/38861 Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Tested-by: Stephan Bergmann <sbergman@redhat.com>
2017-06-08DbgCheckItemSet is goneStephan Bergmann
...since 87c9465262680dec09efb869800859aa65ab1d19 "Bin unused function DbgCheckItemSet" Change-Id: I109598dc5e087697d77b96a0ba2fb178d47b3aa6
2017-01-23Revert "used std::map in SfxItemSet"Noel Grandin
This reverts commit 2757ee9fe610e253e4ccc37423fa420004d0f388. Besides causing a performance regression, I now notice that there is code in SW that relies on iterating over two different SfxItemSet's in parallel, and assumes that missing items are returned as nullptr, which is not the case for my std::map based change. Change-Id: I2b1110350fe4c4b74e5508558e9661ef1e1a103e
2017-01-19make SfxItemSet with SAL_WARN_UNUSEDNoel Grandin
Change-Id: Ia74ca329d8438f614169031acfbe0406faf7c281 Reviewed-on: https://gerrit.libreoffice.org/33268 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-01-17used std::map in SfxItemSetNoel Grandin
instead of naked array SfxItemIter ended up needing to take copies of stuff because various code likes to iterate over the items and delete items inside the loop. The gdb pretty printer is no longer quite as pretty as it was before, but it still prints useful info. Change-Id: I59b07ea42f6b1c74798a15402970b9dbd8233dbe
2016-11-03Revert "remove unnecessary casts"Noel Grandin
This reverts commit fa80dae9a79a7414af8adcb91bc04dfff13bbb63. because current Clang master complains with /home/noel/libo3/svl/source/items/itemset.cxx:189:26: error: passing an object that undergoes default argument promotion to 'va_start' has undefined behavior [-Werror,-Wvarargs] va_start( pArgs, nNull ); ^ /home/noel/libo3/svl/source/items/itemset.cxx:176:89: note: parameter of type 'sal_uInt16' (aka 'unsigned short') is declared here SfxItemSet::SfxItemSet(SfxItemPool& rPool, sal_uInt16 nWh1, sal_uInt16 nWh2, sal_uInt16 nNull, ...)
2016-11-03remove unnecessary castsJochen Nitschke
Which IDs are always sal_uInt16 and likely passed from defines Change-Id: I134358289ccd338ef1ff6ba963e25a524e790f4e Reviewed-on: https://gerrit.libreoffice.org/30498 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2016-09-25remove unused parameterJochen Nitschke
bTotalRanges is never used. SFX_ITEMSET_NO_DEFAULT_CTOR is no where else used. Change-Id: Ia35ea875f16a8ca04c2173b01074113f1825f565 Reviewed-on: https://gerrit.libreoffice.org/29248 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2016-05-27tdf#34465 remove calls to SfxItemSet::Put(const SfxPoolItem&, sal_uInt16)Noel Grandin
and put an assert in SfxPoolItem::SetWhich() so nothing new creeps in. Change-Id: I6497650fa61ffb2b6941ffff2d471c8f117be1df Reviewed-on: https://gerrit.libreoffice.org/24324 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-03-07loplugin:unuseddefaultparam in variousNoel Grandin
Change-Id: I03d7381aad055cbe9bd905e4082586073f4112e0 Reviewed-on: https://gerrit.libreoffice.org/22900 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-03-01loplugin:unuseddefaultparam in svlNoel Grandin
Change-Id: Ifc82563c8930332d460df4d97935ba6e9946689f
2016-01-20loplugin:unusedmethodsNoel Grandin
Change-Id: Ib2dc804f55d1a96ae01f2cf31b7d55956040a72e Reviewed-on: https://gerrit.libreoffice.org/21603 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-01-13loplugin:unusedmethods unused return value in include/svlNoel Grandin
Change-Id: I759fe8769daccea07c2157bfb5912df8ba285534
2015-11-30loplugin:unusedfieldsNoel Grandin
Change-Id: Icac4ac1a2614e72bc9ff070819533e09eeb1a864
2015-11-115th step to remove tools/rtti.hxxOliver Specht
tools/rtti.hxx removed completed the interface of some Sdr.* Items and removed pseudo items Change-Id: I0cdcd01494be35b97a27d5985aa908affa96048a Reviewed-on: https://gerrit.libreoffice.org/19837 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Oliver Specht <oliver.specht@cib.de>
2015-11-10loplugin:nullptr (automatic rewrite)Stephan Bergmann
Change-Id: I0f2f81dae91f62639e79799b1bed1b2df1fd79ab
2015-10-20sfx items: No need to confuse with 'USHORT_ARG' that is an 'int'.Jan Holesovsky
Change-Id: I61326bc52a5da527930810ff4516c707c31d1fde
2015-10-19sfx items: Get rid of the TypeId check, nobody uses that any more.Jan Holesovsky
And introduce the appropriate assert() in the templatized version instead. Change-Id: I3e5b01e5e5ee49049fa6f35e3d05ef65a1890dc1
2015-10-19sfx items: Kill the SFX_ITEMSET_GET macro.Jan Holesovsky
Change-Id: I110a4f25646eb3f0fa93673c84dc67cf64a3b7a0
2015-10-16sfx items: Kill the unreadable & misplaced SFX_ITEMSET_ARG too.Jan Holesovsky
Change-Id: I1e0f96dce2b9cf9da32f4f577cf76e1d8824d37a
2015-10-16sfx items: Introduce a templatized version of SfxItemSet::GetItem().Jan Holesovsky
Change-Id: I821622fc1f8415f2ddd14744f33b46fa76f00039
2015-10-12Replace "SAL_OVERRIDE" with "override" in LIBO_INTERNAL_ONLY codeStephan Bergmann
Change-Id: I2ea407acd763ef2d7dae2d3b8f32525523ac8274
2015-10-12Replace "SAL_DELETED_FUNCTION" with "= delete" in LIBO_INTERNAL_ONLY codeStephan Bergmann
Change-Id: I328ac7a95ccc87732efae48b567a0556865928f3
2015-04-28SfxItemSet::PutDirect return value is unusedStephan Bergmann
Change-Id: Icf3e09318677655897f4a5308f066829982b9520
2015-04-08svl: prefix members of SfxItemSetMichael Stahl
Change-Id: I801aaa8ad9a4ff08dedd2f92b09d98c870c725b8
2015-02-08Extract SfxItemSet::dumpAsXml() from swMiklos Vajna
Change-Id: I30cb1a3c99ad5116cc2d014a7bbb1048fe8cb9f8
2015-02-07loplugin:deletedspecialStephan Bergmann
Change-Id: Id4f2e6cd7d689ac0b4688d92780b48d51427307a
2015-01-26followup code removal after changing virtual methods to non-virtualNoel Grandin
This cleanups up indentation and removes dead classes. This is a followup patch to commit 272b1dd55797aacf511fb4342b0054e3697243f6 "new loplugin: change virtual methods to non-virtual" Change-Id: I1c2139589cf8cb23bb9808defe22c51039d38de1
2015-01-26new loplugin: change virtual methods to non-virtualNoel Grandin
Where we can prove that the virtual method is never overriden. In the case of pure-virtual methods, we remove the method entirely. Sometimes this leads to entire methods and fields being eliminated. Change-Id: I138ef81c95f115dbd8c023a83cfc7e9d5d6d14ae
2014-11-12Fix common typos. No automatic tools. Handmade…Andrea Gelmini
Change-Id: I1ab4e23b0539f8d39974787f226e57a21f96e959 Reviewed-on: https://gerrit.libreoffice.org/12164 Reviewed-by: Noel Grandin <noelgrandin@gmail.com> Tested-by: Noel Grandin <noelgrandin@gmail.com>
2014-10-03loplugin: cstylecastNoel Grandin
Change-Id: I011a0eae37d01606d28c00f8ab3839f20bf309ce
2014-10-02fix buildNoel Grandin
after commit 039b887c54fd7e8cd8a4964d1633fdfc300e938e "loplugin: cstylecast" Change-Id: If567653833a1f164a72bd9a5a6c0fcf651e9d3c0
2014-10-02loplugin: cstylecastNoel Grandin
Change-Id: I4a230f45e91773fca7d537e91c9e9fb54773cf10
2014-09-12Turn SfxItemState into a C++11 scoped enumerationStephan Bergmann
...to gain further confidence in the claim "that none of the existing code tries to uses combinations of these enum values" (d92602c5b13d0a60439d86c5a033d124178726ca "more fixes for SfxItemState") Change-Id: I987922d945e8738e38adfde83b869adf3ff35b13 Reviewed-on: https://gerrit.libreoffice.org/11384 Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Tested-by: Stephan Bergmann <sbergman@redhat.com>
2014-09-09fdo#39468: Translatet some german commentsDaniel Sikeler
Change-Id: I893adbd54916c337fa23aaccb2865f56d076cdb8 Reviewed-on: https://gerrit.libreoffice.org/11347 Reviewed-by: Thomas Arnhold <thomas@arnhold.org> Tested-by: Thomas Arnhold <thomas@arnhold.org>
2014-07-24svl: remove some odd and obsolete debugging code related to MI_HATS_REPARIERTMichael Stahl
This was apparently disabled before the MI_HATS_REPARIERT check was removed in f03a3edf2523c208948059861e0df48567834d0d, and then yesterday something in the header inclusions changed to enable the DBG macros that still used the removed stuff, but _only_ on Windows... now clean this up. Change-Id: I4222db252f4a886b3497ca0c22dbec26eaa6c994
2014-06-11Bin crack, _SFXITEMS_HXX is not defined anywhere anywayTor Lillqvist
Change-Id: I9143e7fffef6e99d25a0fd87712ed26d2d42116e
2014-06-09de-virtualize these stringify methods, nothing overrides themCaolán McNamara
Change-Id: Id523ae3f50147fd778a1576c2851d01e1ea8c3ae
2014-04-03svl: sal_Bool->boolNoel Grandin
Change-Id: I6938314a08d061d2b07d9129742d74a989bd1385
2014-03-26First batch of adding SAL_OVERRRIDE to overriding function declarationsStephan Bergmann
...mostly done with a rewriting Clang plugin, with just some manual tweaking necessary to fix poor macro usage. Change-Id: I71fa20213e86be10de332ece0aa273239df7b61a
2014-02-20svl: sal_Bool -> boolStephan Bergmann
Change-Id: Ic31455a1f5ffffa35d4fdde901dd70734207b6f4
2014-02-18Stick to a single O[U]String hash functionStephan Bergmann
8f8bc0dcf3bc253ae49159d52db049767f476ced "Move string hash function into String class" had introduced a new getHash64 that, besides returning sal_uInt64 instead of just sal_Int32, didn't do sampling of only a handful of characters, but always computed the hash over all characters (as the usage in SfxItemSet and SdPage appears to require for either performance or approximated correctness). However, it would be advantageous to keep the stable URE interface as small as possible. Now, O(1) sampling was apparently considered state of the art when the rtl string classes were first created, closely copying java.lang.String, which at that time demanded sampling for hashCode(), too---but never sampling more than 15 characters, with the obvious (in hindsight, at least) performance catastrophes, so they changed it to O(n) somewhere along the way. Based on that, this commit changes the existing hash functions to not do sampling any more, and removes the newly introduced -64 variants again. (Where the extended value range of sal_uInt64 compared to sal_Int32 was hopefully not vital to the existing uses.) The old implementation used sampling only for strings of length >= 256, so I did a "make check" build with an instrumented hash function that flagged all uses with inputs of length >= 256, and grepped workdir/{Cppunit,Junit,Python}Test for hits. Of the 2849 hits encountered, 2845 where in the range from 256 to 295 characters, and only the remaining four where of 2472 characters. Those four were from CppunitTest_sc_subsequent_filters_test, importing long text into a cell, causing ScDocumentImport::setStringCell to call svl::SharedStringPool::intern, which internally uses an unordered_set. These results appear to justify the change. Change-Id: I78fcc3b0f07389bdf36a21701b95a1ff0a0d970f
2014-02-13n#757432: Styles (rename &) copy to different decks.Muthu Subramanian
While copying slides to different slide decks, styles were not being copied if there is already one with the same name. This patch renames and copies those to keep the formatting intact. Change-Id: I66f71493f1fd658eed43e39aa7ae7ee7b5463b34