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 ::Put methods at SfxItemSet had an extra WhichID
parameter that was not really documented, but I would
guess often asked why it exists: An extra WhichID, just
called 'nWhich' (which makes things NOT clearer). That
is 'strange' since the Item given to be put already
internally has a WhichID, so why a 2nd one?
If you were really interested and read all that code
(no, no comments on that anywhere) you might know
that this a kind of 'Target-WhichID' under which
the Item shall be put to the ItemSet. Since this
is unclear for most people it is even dangerous and
explains why so many code places just hand over the
WhichID requsted from the Item that already gets
handed over.
To make it short: I removed that. For the 19 places
where this was really needed I added a new method
besides ::Put called ::PutAsTargetWhich that takes that
extra WhichID (now called TargetWhich) and takes the
needed actions. These are quite some because that may
be combined with the bPassingOwnership flag, see new
SfxItemSet::PutImplAsTargetWhich method.
This makes usage of ItemSets/Items less dangerous. It
also simplifies and thus makes safer the central helpers
implCreateItemEntry/implCleanupItemEntry which have some
less cases to handle.
Debugged the failing UnitTests showed that there is
an incarnate Item != SfxVoidItem that causes problems.
I checked for errors in the change, but no luck.
Afterr some time I found out that a ::Clone
implementation caused the problem: These need to
also copy the WichID of the original, but the
SfxFrameItem failed to do so. This did not cause
problems in the former version because
implCreateItemEntry was designed to set a missing/
different WhichID.
I corrected that in SfxFrameItem, also removed not
needed costructor that caused that. Also added a
SAL_WARN and a correction in implCreateItemEntry.
I could have added an assert (did so for running
local UnitTests), but should be enough.
NOTE: When hunting for Items except SfxVoidItem
that get crerated using a WhichID '0' i learned
that this indeed happens: There are some (5) calls
to SfxRequest::SetReturnValue that incarnate an
SfxBoolItem with WhichID '0' (ZERO). This is not
good and I think about how to change that...
Change-Id: I9854a14cdc42d1cc19c7b9df65ce74147d680825
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162124
Tested-by: Jenkins
Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
|
|
commit 817dfb74d9ec9f46ba32be6d5066d534f81072a5
Date: Tue Jul 17 09:45:37 2001 +0000
#89783#: NULL-Ptr possible
probably intended
pViewFrame = SfxViewFrame::GetFirst()
but at this distance in time, just accept the current state
of things
Change-Id: I8779fef1041843e9f2e6c879cfb475d8ac8251fd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144401
Tested-by: Caolán McNamara <caolanm@redhat.com>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: I7984f0b52809091511dc01005fdbfeafd521b4bf
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137048
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
SfxFrame class members
Signed-off-by: Henry Castro <hcastro@collabora.com>
Change-Id: I1fd272a113763f6330f15ee34095e9e34ce5dd34
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136753
Tested-by: Jenkins
|
|
Class SfxFrame
Signed-off-by: Henry Castro <hcastro@collabora.com>
Change-Id: Iad58908e76f3d9891816a9c8dad3d37aa6630722
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136684
Tested-by: Jenkins
|
|
Apparently it happens when loading a 0-byte file that the
SfxObjectShell is still in IsLoading() stage when close() is called.
This then causes the SfxEventHintId::LoadFinished event to be emitted
during close(), which is not a situation the assert was intended for.
Change-Id: I60a260ca1c1e6cbf9502832ba6622de2628763e7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134610
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
|
|
This reverts commit 3add3e5b70ad991c8351a54b0da62d05e977458f to try
and alternative approach
Change-Id: Ieb36b78246586cc7f1977c67eab130d2ae025988
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124605
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: I4c0002e72703eded435bfe4985f5b0121bf8524b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122843
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
used
git grep -lw namespace
| xargs perl -i -p0e 's/(\w+)\s*.\{.\s*namespace\s*(\w+)/\1::\2/smg;'
to do the initial replace, then compiled and fixed.
Change-Id: If69904d75940c851aeffab0e78c4ba02cc968d44
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98526
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Ia8192e03feda9e8ae70e29d8dc98d995f015f9ce
Reviewed-on: https://gerrit.libreoffice.org/85135
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
and can then remove some casting
Change-Id: Id821c32ca2cbcdb7f57ef7a5fa1960042e630ffc
Reviewed-on: https://gerrit.libreoffice.org/85022
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: I77330d53adb5c6ec66750e57fdc539353b4c9725
Reviewed-on: https://gerrit.libreoffice.org/81657
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Found with bin/find-unneeded-includes
Only removal proposals are dealt with here.
Change-Id: I6e97c7ed6c0211dfafee83b9bdbea672e415fc49
Reviewed-on: https://gerrit.libreoffice.org/69715
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
|
|
Change-Id: I9a41a2b53669bebfca573fef8d0d755e4621ce37
Reviewed-on: https://gerrit.libreoffice.org/58333
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
option leaves just-saved document modified; changes are not saved
Change-Id: Icad48fe1edcfb4c10c40f297326c23110144df53
Reviewed-on: https://gerrit.libreoffice.org/57211
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
and fix the fallout
Change-Id: I5d0c2040f57a3ac354a7e277592da31d09a5f359
Reviewed-on: https://gerrit.libreoffice.org/52894
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Jochen Nitschke <j.nitschke+logerrit@ok.de>
|
|
Change-Id: I3ce653c0d9e517229dbbe32cc8d3ec3c206e364d
Reviewed-on: https://gerrit.libreoffice.org/51273
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
and rename SfxUsrAnyItem class to SfxUnoAnyItem, the choice being made
by leaving the most popular one behind
Change-Id: If3818ee0966a50e3036d7e2db951910b6282c91f
Reviewed-on: https://gerrit.libreoffice.org/47313
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
this is the only flag we are setting in the "type" field, so simplify
Change-Id: I6079750b915f55486bf815a27d48f673af59bdb0
Reviewed-on: https://gerrit.libreoffice.org/46214
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
had to change the structure of the plugin considerably, was too messy to
structure it to do the calculations on a per-function basis
Change-Id: I4edee7735f726101105c607368124a08dba21086
Reviewed-on: https://gerrit.libreoffice.org/40516
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I6629926df06f71ff86e9fb23ae4fc1ae73bc9406
Reviewed-on: https://gerrit.libreoffice.org/40360
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Id982c8fb5654433e9db10e2da6a86a6c8d90b9b4
Reviewed-on: https://gerrit.libreoffice.org/40261
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Ia28e35ae5af4f601e9a586a3deffbcd61702b0ca
Reviewed-on: https://gerrit.libreoffice.org/36896
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Chris Sherlock <chris.sherlock79@gmail.com>
|
|
Mostly generated using
make check COMPILER_EXTERNAL_TOOL=1 CCACHE_PREFIX=clang-rename-wrapper RENAME_ARGS="-qualified-name=Rectangle -new-name=tools::Rectangle"
Except some modules have their own foo::tools namespace, so there have
to use ::tools::Rectangle. This commit just moves the class from the
global namespace, it does not update pre/postwin.h yet.
Change-Id: I42b2de3c6f769fcf28cfe086f98eb31e42a305f2
Reviewed-on: https://gerrit.libreoffice.org/35923
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
|
|
Change-Id: Ie52f63382a9fb36f9a472801be012b140bfb51f6
Reviewed-on: https://gerrit.libreoffice.org/35722
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I8b5e3ebbfb715d0b6aec2c4137f0ff524b63227e
Reviewed-on: https://gerrit.libreoffice.org/31065
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
not randomly scattered through the code
found with something like:
git ls-files *.cpp | xargs grep -Pzl "(?s){.*#include"
Change-Id: I9c242fa4ef99e8677f2800d7ec9f16d16e488351
Reviewed-on: https://gerrit.libreoffice.org/30952
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Checked a couple of them:
StandardCheckVisisbilityRedirector is unused since
commit b1f8cf37828d5f37527e54774aa4935610aa6325
Author: Noel Grandin <noel.grandin@collabora.co.uk>
Date: Wed Nov 2 10:57:21 2016 +0200
loplugin:singlevalfields
SfxQueryStatus is unused since
commit 64a708cba9b954afe3331f63c58218eb53b3d0ce
Author: Caolán McNamara <caolanm@redhat.com>
Date: Sat Nov 5 20:28:27 2016 +0000
Revert "Reverts a commit series that cripple windows ci."
Change-Id: If1c9fe26c3ebc573d8c53c8f060b05c27f2711e5
Reviewed-on: https://gerrit.libreoffice.org/30840
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Found by the singlevalfields loplugin.
Dead as least as far back as
commit 93a7b558588be1f12e137329548b706daccc07df
Author: Frank Schoenheit [fs] <frank.schoenheit@sun.com>
Date: Fri Nov 27 21:16:24 2009 +0100
[CWS autorecovery] merged SfxTopFrame into SfxFrame
SfxTopFrame was the only class deriving from the abstract class SfxFrame, so both
can effectively be treated as one class.
Arguably when that commit was done, SfxFrame should also have been renamed
to SfxTopFrame, since that it was it now seems to be.
Expanding the nullptr value off that field means that:
SfxFrame::GetTopFrame
always return this
SfxFrame::IsParent
always returns false
SfxViewFrame::GetTopFrame
is now the same as SfxViewFrame::GetFrame
SfxViewFrame::GetParentViewFrame
now returns null
Change-Id: Iac088fa485c3d7299d1553845ced2f5ced3c85f2
Reviewed-on: https://gerrit.libreoffice.org/30485
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I1ec3ae33a71d154276e213a68c735476daa606b9
|
|
Change-Id: Ifb6045885049733415895f58cdd911256f48323c
Reviewed-on: https://gerrit.libreoffice.org/29187
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I34256941b366e0a3d7c78818b6e8576f4a5669a2
Reviewed-on: https://gerrit.libreoffice.org/25309
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
|
|
Change-Id: Ibbae76b45da924e44fb91dcb3548106e8b908fbf
Reviewed-on: https://gerrit.libreoffice.org/25160
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
|
|
Change-Id: Idd0e764765bd76e1f6a2d8ec6e18ebac27b91ec6
|
|
replace the old declare and don't implement pattern
with C++11 delete keyword
no need to hide this design choice behind access restrictions
Change-Id: I7e8430a07189aa48514a4613c3a8c2950b230f49
Reviewed-on: https://gerrit.libreoffice.org/24495
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
|
|
Change-Id: I8c9d6e972f74ee04c8befda3b4cabb6e9b6b2054
|
|
Sequence.h(xx), Any.h(xx) and Type.h(xx)
and remove unused using-declarations from these files.
Add a few missing includes provided by them.
Change-Id: I6b91b6d1fdf9d0496dd546c0aab9bdcc6831a5d4
Reviewed-on: https://gerrit.libreoffice.org/23805
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
|
|
Change-Id: I53e690ab8d50fb3ce43ba633fc018e7b66e591cd
Reviewed-on: https://gerrit.libreoffice.org/23321
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
|
|
Change-Id: I270e068b3c83e966e741b0a072fecce9d92d53f5
|
|
Change-Id: I37afde801a6468c79259fe51acbdea0614c2c8c5
|
|
A ridiculously fast way of doing this is:
for i in $(pcregrep -l -M -r --include='.*[hc]xx$' \
--exclude-dir=workdir --exclude-dir=instdir '^
{3,}' .)
do
perl -0777 -i -pe 's/^
{3,}/
/gm' $i
done
Change-Id: Iebb93eccbee9e4fc5c4380474ba595858a27ac2c
Reviewed-on: https://gerrit.libreoffice.org/22224
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Chris Sherlock <chris.sherlock79@gmail.com>
|
|
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: I7213b49b09ddcb00841aa5f63343baeab0e65fa4
|
|
Change-Id: Id69e293fda98ee6cf2cc3d3296a0cd2e06bd847e
Reviewed-on: https://gerrit.libreoffice.org/19527
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
|
|
Change-Id: I2ea407acd763ef2d7dae2d3b8f32525523ac8274
|
|
more useful to make it explicit.
Specifically, otherwise my defaultvalue clang plugin would want to
remove lots of places that contains #define constants which, while
technically the same as the default value, convey semantic
information which is quite useful.
Change-Id: I918ad5b0e73ba279fa1b1489b62d900339ff71eb
|
|
Change-Id: Ibab48696036d0e7d23c87f11e1e800782dddb366
|
|
Change-Id: I82223b72ddb6a9df1ee52a300b083002234602dc
Reviewed-on: https://gerrit.libreoffice.org/17075
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
|
|
Change-Id: I98c455d89f76fbcacf74929a4e8775b4da697f62
Reviewed-on: https://gerrit.libreoffice.org/17069
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
Tested-by: Noel Grandin <noelgrandin@gmail.com>
|