Age | Commit message (Collapse) | Author |
|
ItemType is useful and faster than RTTI. Until now it was
implemented by a 16-bit member in the base class, plus
(potentially) all constructors having to hand a value
in at item construction type (of type SfxItemType) to
get that member set correctly.
This works, but there is no reliable way to guarantee
coverage, and there have already been cases with missing
SfxItemType - these fallback to '0' and thus all Items
with ItemType() == 0 are assumed equal and might be
static_cast'ed to the wrong classes. Note that I
identified *35* Items that had no correct ItemType
set/implemented actually. It also uses 16-bit per
incarnated Item at runtime.
I thought and realized now a more systematic approach
to do that with a pure virtual function at the Item
itself. That can also be secured by a clang compiler
plugin in the future to keep it working. It uses one
virtual function per derived class, no longer space
in incarnated Items. Also the constructors will get
more simple again.
But the main aspect is security - we cannot afford
Items potentially being held as equal if they are not.
Unfortunately C++ does not offer something like a
'strict pure virtual function' that would force to
be overloaded in every derivation, but the used
methotology and adding a clang test is reasonably
safe.
Have now done the cleanup of previous method.
Change-Id: I04768285f1e9b73d64b0bb87df401944b5d35678
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180017
Tested-by: Jenkins
Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
|
|
The SfxPoolItem has a new member SfxItemType m_eItemType to
compare types based on enums instead of typeinfo() which
consumes a lot of time e.g. while AutoFormat is running
Change-Id: I033ce67bc9a28ee4790f162380314de85fb4154e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166452
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
|
|
since it extends SfxInt32Item
been this way since
commit 5f51e579fc2e3207166b053382ca14b95082728c
Date: Wed Apr 11 18:28:13 2007 +0000
INTEGRATION: CWS hedaburemove01 (1.1.2); FILE ADDED
2007/02/09 16:12:44 vg 1.1.2.1: #72503# get rid of hedabu procedure:
Moving headers to svtools/inc/svtools and correspondent necessary
changes
Change-Id: Id23909c5cb842b858baf2f6918298607a79adcec
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129402
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Ic63d3c0ebd1e58d7bab5b0fd6313cabddc16eb98
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104517
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
SfxPoolItem has a copy constructor and its copy assignment
operator is deleted. Derived classes have a implicit defined
copy constructor too, if all members are copy constructible.
This patch removes default able copy constructors on such items.
Note: clang-tidy only finds functions defined in source, inlined
functions in headers are picked manualy.
Change-Id: I7e642a2ecf139420c53f6fcb39208918dd1a8d52
Reviewed-on: https://gerrit.libreoffice.org/43003
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Iaaf9092ec4d6189492906648b84494d087fed81f
Reviewed-on: https://gerrit.libreoffice.org/41539
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Ie96dda7194c83ba88693f8c91899c732d704a4bd
Reviewed-on: https://gerrit.libreoffice.org/33515
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Idb022a4a6fb950f1b259abbba57daed9401732d9
Reviewed-on: https://gerrit.libreoffice.org/31038
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
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
|
|
Change-Id: I759fe8769daccea07c2157bfb5912df8ba285534
|
|
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>
|
|
Change-Id: I2ea407acd763ef2d7dae2d3b8f32525523ac8274
|
|
It appears that the C++ standard allows overriding destructors to be marked
"override," but at least some MSVC versions complain about it, so at least make
sure such destructors are explicitly marked "virtual."
Change-Id: I0e1cafa7584fd16ebdce61f569eae2373a71b0a1
|
|
Change-Id: Ib0a4bd4f3d056c39156bfcfb0bd28c62f2f530b2
|
|
...mostly done with a rewriting Clang plugin, with just some manual tweaking
necessary to fix poor macro usage.
Change-Id: I71fa20213e86be10de332ece0aa273239df7b61a
|
|
...where the latter contains SAL_OVERRIDE annotations
Change-Id: Id64794b388d83dfe7026440e8b20a5b5efd412d1
|
|
Conflicts:
include/framework/preventduplicateinteraction.hxx
include/sfx2/sfxbasecontroller.hxx
include/sfx2/sfxbasemodel.hxx
include/toolkit/awt/vclxtabpagemodel.hxx
include/vcl/field.hxx
include/vcl/settings.hxx
Change-Id: Ibccf9f88c68267a3d7e656012b51eaf644c418c2
Reviewed-on: https://gerrit.libreoffice.org/8272
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: I8b28f3c6df5d11112aff732159c913b4ffb1cc6f
|
|
Change-Id: I57fcfd442d2b5815e7c07a9cbd660f3698168dee
|
|
see https://gerrit.libreoffice.org/#/c/3367/
and Change-Id: I00c96fa77d04b33a6f8c8cd3490dfcd9bdc9e84a for details
Change-Id: I199a75bc4042af20817265d5ef85b1134a96ff5a
|