Age | Commit message (Collapse) | Author |
|
COMPMOD_RESPREFIX=abp was unused ever since initial commit in 2001.
COMPMOD_NAMESPACE was used to set the namespace name qualifier of
the helper in componentmodule.hxx to the extension's namespace name.
I don't see why this is necessary as the helper is always compiled in
a separate extension library.
Change-Id: I287607008db3dc0ebc32731536747a921c91807d
Reviewed-on: https://gerrit.libreoffice.org/39184
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I06145822290ae4b3690a792eb4d2ad79437fd9cc
|
|
Change-Id: I6e96064a001fd511864665fe0ef8b60d45462c12
|
|
Change-Id: I6621e0dda5a5dc3e68c7b1613975c075e2879912
Reviewed-on: https://gerrit.libreoffice.org/39006
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Iecc7d68ad18e90bf84d358af92194c230efc2671
|
|
since commit 03ee996717dcf9e20529a6a3295df69d0d86dcce
"loplugin:unusedfields fix more false +"
Change-Id: Ief935fea8c554707db38b4ede4fab2ec1adca997
|
|
to match our more normal conventions.
Also drop the 'using std' and some other cruft
Change-Id: I02ef81c5427188bc03a20b157a57a900a9d7bf0d
|
|
deal with fields assigned to local variables, and some general cleanup
Change-Id: I894c74a01e9e28935ecd84308c2e92b080afafc6
|
|
in the write-only analysis
Change-Id: Ic570416e855b8ec38d54f6f6f1adef4819ea53ee
|
|
we look for any kind of scalar variable now that deserves to be inlined,
and we check for variables that cannot be inlined because they are being
passed by reference, or modified, or have their address taken
Change-Id: Ia744a180e91d1516140a1555d4514f6fa4de1c0b
Reviewed-on: https://gerrit.libreoffice.org/38966
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
When the field in question is read from inside a constructor
initializer.
In the process, create some needed infrastructure in the plugin classes.
Change-Id: I2f440efa6912801a236727c9fe3180404616958c
Reviewed-on: https://gerrit.libreoffice.org/38960
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
tell the plugin code when we are unit-testing it, so we can suppress all
the warnings except for the plugin we are currently testing
Change-Id: I240c8e37eba90c219e53c29531a3a43bc841a1c8
|
|
...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
|
|
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>
|
|
to ignore assignments when doing writeonly analysis
Change-Id: I9eb6f2594003a610582dbc20acb7ccf14ef72c6c
|
|
(such redundant std::unique_ptr copies could happen when changing parts of the
code base to make use of std::unique_ptr individually)
Change-Id: Ib48a45a212f9426a775c7f379bc5d3c92230218a
|
|
...since 87c9465262680dec09efb869800859aa65ab1d19 "Bin unused function
DbgCheckItemSet"
Change-Id: I109598dc5e087697d77b96a0ba2fb178d47b3aa6
|
|
Not sure why that started to pop up only now, maybe something changed with
recent Clang trunk.
Change-Id: Ib6587b66afbf3e43d92c78432c0bfd61c74ba6c5
|
|
Change-Id: I75ea46f257046bb42b2bfad3a5bd4450868e0d69
|
|
Change-Id: Ie95ab6d588cfe40cc9748ce526b80d06fe825da5
|
|
Change-Id: I3b24327835cd4e1842ee6e9b87ab06efa25a4bbf
|
|
Change-Id: I8884e17c453831e048c43012ee176093c5b2f99e
|
|
Change-Id: I9eb05432732a04e816946fbb13001df100a31f73
Reviewed-on: https://gerrit.libreoffice.org/38395
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
|
|
Change-Id: Ieae9b5c9c7c6d9b8459e5d163f55d8f5024adfae
|
|
Change-Id: I4c24ff5d9d5e74bef2a4040c6308c504282af55d
|
|
Change-Id: Ic3d9e55b2730a3ea01cc6c7c9fbdd80a1e653c7e
|
|
(useful when types involve typedefs)
Change-Id: I93e8962fd4b9c4ef79990e057dfa07538380008c
|
|
Change-Id: I74e4ebda40f95661c5ae344132fcabbbf08ab0a4
|
|
Change-Id: I65f95e7245f08592ea11cc75e1cf34dcbdf16b40
|
|
should not have been committed in the first place, was an accident
Change-Id: Ie38cc77624bae5b3f9cc110085d0fe19b26c75c6
|
|
Change-Id: Ic7fbd750321e4cfde1cfb0e04ffb545bb1f66d9c
Reviewed-on: https://gerrit.libreoffice.org/37921
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
|
|
Change-Id: Ic336b33bd747cd55955231cbe0b5a9d474adf3ab
|
|
Change-Id: I5c39a745b70655f92953ec785d01a3a52d9ec42b
|
|
...since f1bbda1c26dc16642038ea70288eec60b43520b6 "loplugin:cstylecast: deal
with remaining pointer casts"
Change-Id: Idecc702344c674e6f39051e4f8c2114017e317cb
|
|
(r253948 "Use data recursion in RecursiveASTVisitor when traversing Stmt and
Expr nodes")
Change-Id: I393474048ecbe0f6b7f19f00c2f830f495b2b6f0
|
|
Change-Id: Ifc9de898e5c9a084cbfd739625c679185c3a1534
|
|
Arbitrarily chosing to traverse the semantic instead of the syntactic form.
Change-Id: Id1b4e49421a5550bb2fa9f0d7e6f83bf7abb6ebb
|
|
Change-Id: I4e96c55c246cf806f17df31844a00d0e8a5e4f56
|
|
Change-Id: Iac8ccd17d9e46ebb2cb55db7adb06c469bbd4ea0
Reviewed-on: https://gerrit.libreoffice.org/37910
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
add the results files so I can just see the diff in future
Change-Id: Ia20a1aa6418be95ed620719cde340c00b7b053e1
Reviewed-on: https://gerrit.libreoffice.org/37988
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Ib91c6d23a1af3735d9c030eaf9efae817f513c58
Reviewed-on: https://gerrit.libreoffice.org/37982
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
teach it to look for the following sequence in a destructor:
delete m_pfoo;
m_pfoo = nullptr;
Change-Id: Icd6271a63a024e32b53cc9e599f8f59952160380
Reviewed-on: https://gerrit.libreoffice.org/37900
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I438b6719817e0bbb47370ec54561eed2bc402cba
Reviewed-on: https://gerrit.libreoffice.org/37783
Reviewed-by: Chris Sherlock <chris.sherlock79@gmail.com>
Tested-by: Chris Sherlock <chris.sherlock79@gmail.com>
|
|
<http://reviews.llvm.org/D22128> "Make CastExpr::getSubExprAsWritten look
through implicit temporary under CK_ConstructorConversion" was biting me again.
(I had originally developed loplugin:stringcopy against a Clang build that
includes my local fix for that issue. I really need to see to get that resolved
upstream...)
(And while 957874168491f4b030fda85c65dd969aae82a670 "loplugin:stringcopy" was
actually a false positive, it doesn't hurt either, so just keep it.)
Change-Id: I726956adfbe67681005173cfdfed2e4b4cd6253d
|
|
Some versions of Clang apparently have an issue with
CastExpr::getSubExprAsWritten, causing false postivies as in
957874168491f4b030fda85c65dd969aae82a670 "loplugin:stringcopy", where
getSubExprAsWritten in
> CXXFunctionalCastExpr 0x114a333a8 'class rtl::OUString' functional cast to class rtl::OUString <ConstructorConversion>
> `-CXXBindTemporaryExpr 0x114a33388 'class rtl::OUString' (CXXTemporary 0x114a33380)
> `-CXXConstructExpr 0x114a33348 'class rtl::OUString' 'void (class rtl::OUString &&)' elidable
> `-MaterializeTemporaryExpr 0x114a33330 'class rtl::OUString' xvalue
> `-CXXBindTemporaryExpr 0x114a33310 'class rtl::OUString' (CXXTemporary 0x114a33308)
> `-ImplicitCastExpr 0x114a332f0 'class rtl::OUString' <UserDefinedConversion>
> `-CXXMemberCallExpr 0x114a332c8 'class rtl::OUString'
> `-MemberExpr 0x114a33290 '<bound member function type>' .operator OUString 0x1149b3b60
> `-DeclRefExpr 0x114a324b8 'class jfw::CXmlCharPtr' lvalue Var 0x114a31ce0 'sUser' 'class jfw::CXmlCharPtr'
erroneously returns the MaterializeTemporaryExpr instead of looking through all
the way down to the DeclRefExpr. Will need further investigation.
Change-Id: I579cd6047b8bbf8833123ce5ad47ae7e3a33eb12
|
|
Change-Id: Ib04ef019996888166c25ad140b7c718a173a782a
|
|
make it a little smarter in dealing with fields that are smart pointers
Change-Id: I44072105170882dc29fb19558f1065cffc7e5f11
Reviewed-on: https://gerrit.libreoffice.org/37751
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Idc0db273f7ad2d6b11113752ca01a1f2a327e991
|
|
Change-Id: I6ae619edac26fe06d1f86f139b7cf71ce31146d4
|
|
...which would come out garbled. One place is
> bool bRet = SfxItemState::SET == pSet->GetItemState( i, rAttr.Which() != RES_TXTATR_AUTOFMT, &pItem );
in SwAttrHandler::PushAndChg (sw/source/core/text/atrstck.cxx)
Change-Id: I1486313b25850dc59e10edb38b8bd28a30e6aa63
|