Commit Graph
523 Commits
Author SHA1 Message Date
Caolán McNamara de74d98c58 OUStringLiteral/OStringLiteral coverity PARSE_ERROR workaround
do more like

commit 121771e37f
Date:   Mon Sep 21 09:17:54 2020 +0200

    Make some OUStringLiteral vars constexpr

cause coverity can live with that

Change-Id: I9efd7f848289c4865997a44c6780373068422227
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103147
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-09-22 12:58:14 +02:00
Stephan Bergmann 33ecd0d5c4 Change OUStringLiteral from char[] to char16_t[]
This is a prerequisite for making conversion from OUStringLiteral to OUString
more efficient at least for C++20 (by replacing its internals with a constexpr-
generated sal_uString-compatible layout with a SAL_STRING_STATIC_FLAG refCount,
conditionally for C++20 for now).

For a configure-wise bare-bones build on Linux, size reported by `du -bs
instdir` grew by 118792 bytes from 1155636636 to 1155755428.

In most places just a u"..." string literal prefix had to be added.  In some
places

  char const a[] = "...";

variables have been changed to char16_t, and a few places required even further
changes to code (which prompted the addition of include/o3tl/string_view.hxx
helper function o3tl::equalsIgnoreAsciiCase and the additional
OUString::createFromAscii overload).

For all uses of macros expanding to string literals, the relevant uses have been
rewritten as

  u"" MACRO

instead of changing the macro definitions.  It should be possible to change at
least some of those macro definitions (and drop the u"" from their call sites)
in follow-up commits.

Change-Id: Iec4ef1a057d412d22443312d40c6a8a290dc6144
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/101483
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-08-28 08:07:09 +02:00
Noel Grandin 3457da6abe loplugin:stringstatic also look for local statics
Add some API to O*StringLiteral, to make it easier
to use in some places that were using O*String

Change-Id: I1fb93bd47ac2065c9220d509aad3f4320326d99e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100270
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-08-13 08:16:03 +02:00
Noel Grandin cda88ec7a4 loplugin:simplifybool a little more aggressive
with expressions like !(a && b)

Change-Id: Id2acec2a8d0eaaa8e5e37dbd2cae7281be36572e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100040
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-08-04 11:21:36 +02:00
Noel Grandin 5ef5c1b294 loplugin:flatten in xmlscript
Change-Id: I326aa7ebea7925f580fd12c6c58f62e4add20d84
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99965
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-08-02 22:44:21 +02:00
Noel Grandin 67f4ece34f xmlscript: create instances with uno constructors
See tdf#74608 for motivation

Change-Id: I648835e938746ff4f89b05d73d8960f9f8953070
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98191
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-07-06 20:17:26 +02:00
Stephan Bergmann 54c866828a Upcoming improved loplugin:staticanonymous -> redundantstatic: xmlscript
Change-Id: I59dc2d6949eb51394874403e62079ad75063882d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97773
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-07-02 19:42:13 +02:00
Noel Grandin 1290305734 compact namespace in xmlhelp..xmlsecurity
Change-Id: I54f0a47a4b7a1f85481fd1e643ac55459d0383ec
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93907
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-05-10 13:56:07 +02:00
Stephan Bergmann b512ce255f Make upcasting css::uno::Reference ctor require complete types
The main reason for the "home-grown" UpCast introduced with
904b3d1fce "Up-cast conversion constructor for
css::uno::Reference" in 2013 was probably that we could not yet rely on C++11
std::is_base_of back then.  A (welcome) side effect was that the derived class
could be incomplete.

However, specializations of UpCast relying on whether or not T2 is incomplete
are obviously an ODR violation if the type is incomplete in some TUs and
complete (and derived from T1) in others.  And even if UpCast had internal
linkage, it would still be brittle that its behavior depends on the completeness
of T2 at the point of the template's instantiation, and not necessarily at the
point of use.

That means we should better base that ctor on std::is_base_of (which we can do
now since 39a1edd6fe "Make css::uno::Reference
upcast ctor LIBO_INTERNAL_ONLY"), which causes a compilation error at least on
Clang and GCC if the completeness requirements are not met.  This change fixes
all the cases where types need to be complete now, plus any resulting
loplugin:referencecasting warnings ("the source reference is already a subtype
of the destination reference").

Change-Id: Ieb9e3552e90adbf2c5a5af933dcb872e20661a2f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92950
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-04-27 07:19:30 +02:00
Noel Grandin 7224bb9bcd loplugin:unusedvariableplus in ucb,xmlscript
Change-Id: I8fac8c7766df7c6be489280fcac2a423183429c3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91790
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-04-07 10:16:11 +02:00
Samuel Mehrbrodt 6d9cf22b22 tdf#130793 Fix import/export of image URLs
Change-Id: I329af3b0d5a81d9f31def9c2ad861d0e83e3714c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89388
Tested-by: Jenkins
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
2020-02-26 06:40:23 +01:00
Noel Grandin 214e6caf2c [API CHANGE] remove BasicImport UNO interfaces
which are unused since
    commit 4e97fa0f4e
    Date:   Thu Feb 20 13:09:32 2020 +0200
    use fast-parser APIs for embedded script parsing

and highly unlikely to be externally used since they parse document
internal script code.

Change-Id: I2e0e237fb31bba85f1ef63c88f3a6959eedf2ca7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89104
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-02-25 18:07:04 +01:00
Andrea Gelmini 4c0c333388 Fix typo
Thanks to Valter:
https://listarchives.libreoffice.org/global/l10n/msg12412.html

Change-Id: I2b79bc19de31b014cbf2519ae01e5214252f24a5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86505
Tested-by: Jenkins
Reviewed-by: Olivier Hallot <olivier.hallot@libreoffice.org>
2020-02-16 10:23:08 +01:00
Stephan Bergmann aef7feb3e6 New loplugin:unsignedcompare
"Find explicit casts from signed to unsigned integer in comparison against
unsigned integer, where the cast is presumably used to avoid warnings about
signed vs. unsigned comparisons, and could thus be replaced with
o3tl::make_unsigned for clairty." (compilerplugins/clang/unsignedcompare.cxx)

o3tl::make_unsigned requires its argument to be non-negative, and there is a
chance that some original code like

  static_cast<sal_uInt32>(n) >= c

used the explicit cast to actually force a (potentially negative) value of
sal_Int32 to be interpreted as an unsigned sal_uInt32, rather than using the
cast to avoid a false "signed vs. unsigned comparison" warning in a case where
n is known to be non-negative.  It appears that restricting this plugin to non-
equality comparisons (<, >, <=, >=) and excluding equality comparisons (==, !=)
is a useful heuristic to avoid such false positives.  The only remainging false
positive I found was 0288c8ffec "Rephrase cast
from sal_Int32 to sal_uInt32".

But which of course does not mean that there were no further false positivies
that I missed.  So this commit may accidentally introduce some false hits of the
assert in o3tl::make_unsigned.  At least, it passed a full (Linux ASan+UBSan
--enable-dbgutil) `make check && make screenshot`.

It is by design that o3tl::make_unsigned only accepts signed integer parameter
types (and is not defined as a nop for unsigned ones), to avoid unnecessary uses
which would in general be suspicious.  But the STATIC_ARRAY_SELECT macro in
include/oox/helper/helper.hxx is used with both signed and unsigned types, so
needs a little oox::detail::make_unsigned helper function for now.  (The
ultimate fix being to get rid of the macro in the first place.)

Change-Id: Ia4adc9f44c70ad1dfd608784cac39ee922c32175
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87556
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-01-28 07:42:15 +01:00
Noel Grandin 175a2063ef use more std::make_shared
found using 'git grep', I tried using clang-tidy, but it only
successfully found a tiny fraction of these

Change-Id: I61c7d85105ff7a911722750e759d6641d578da33
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86526
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-01-10 13:07:41 +01:00
Andrea Gelmini 77f4eb0bfe tdf#124176: Use "pragma once" on xmlscript/*
It passed "make check" on Linux

Change-Id: Id8727da150ad1b5252fbc997ff5df28b23303fb6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/85882
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
2019-12-28 12:04:11 +01:00
Noel Grandin 6eef1937db sal_Char->char in xmloff..xmlsecurity
Change-Id: I292d699ce1de10ca9341525161f5da2592102ff7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/85778
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-12-25 15:55:19 +01:00
Noel Grandin f656547d4d remove some useless comment lines
which merely announce that the next declaration is a class

Change-Id: Ifdb1398bcd99816b13e0b3769b46d0562bfbc1dc
Reviewed-on: https://gerrit.libreoffice.org/84229
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-12-03 12:46:27 +01:00
Stephan Bergmann f853ec317f Extend loplugin:external to warn about classes
...following up on 314f15bff0 "Extend
loplugin:external to warn about enums".

Cases where free functions were moved into an unnamed namespace along with a
class, to not break ADL, are in:

  filter/source/svg/svgexport.cxx
  sc/source/filter/excel/xelink.cxx
  sc/source/filter/excel/xilink.cxx
  svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx

All other free functions mentioning moved classes appear to be harmless and not
give rise to (silent, even) ADL breakage.  (One remaining TODO in
compilerplugins/clang/external.cxx is that derived classes are not covered by
computeAffectedTypes, even though they could also be affected by ADL-breakage---
but don't seem to be in any acutal case across the code base.)

For friend declarations using elaborate type specifiers, like

  class C1 {};
  class C2 { friend class C1; };

* If C2 (but not C1) is moved into an unnamed namespace, the friend declaration
must be changed to not use an elaborate type specifier (i.e., "friend C1;"; see
C++17 [namespace.memdef]/3: "If the name in a friend declaration is neither
qualified nor a template-id and the declaration is a function or an
elaborated-type-specifier, the lookup to determine whether the entity has been
previously declared shall not consider any scopes outside the innermost
enclosing namespace.")

* If C1 (but not C2) is moved into an unnamed namespace, the friend declaration
must be changed too, see <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71882>
"elaborated-type-specifier friend not looked up in unnamed namespace".

Apart from that, to keep changes simple and mostly mechanical (which should help
avoid regressions), out-of-line definitions of class members have been left in
the enclosing (named) namespace.  But explicit specializations of class
templates had to be moved into the unnamed namespace to appease
<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92598> "explicit specialization of
template from unnamed namespace using unqualified-id in enclosing namespace".

Also, accompanying declarations (of e.g. typedefs or static variables) that
could arguably be moved into the unnamed namespace too have been left alone.

And in some cases, mention of affected types in blacklists in other loplugins
needed to be adapted.

And sc/qa/unit/mark_test.cxx uses a hack of including other .cxx, one of which
is sc/source/core/data/segmenttree.cxx where e.g. ScFlatUInt16SegmentsImpl is
not moved into an unnamed namespace (because it is declared in
sc/inc/segmenttree.hxx), but its base ScFlatSegmentsImpl is.  GCC warns about
such combinations with enabled-by-default -Wsubobject-linkage, but "The compiler
doesn’t give this warning for types defined in the main .C file, as those are
unlikely to have multiple definitions."
(<https://gcc.gnu.org/onlinedocs/gcc-9.2.0/gcc/Warning-Options.html>)  The
warned-about classes also don't have multiple definitions in the given test, so
disable the warning when including the .cxx.

Change-Id: Ib694094c0d8168be68f8fe90dfd0acbb66a3f1e4
Reviewed-on: https://gerrit.libreoffice.org/83239
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-11-22 12:57:32 +01:00
Noel Grandin e276c81264 size some stringbuffer to prevent re-alloc
I started with 32 and kept doubling the size until the site
did not need re-alloc, but clamped it at 512 (e.g. in emfio/).

Change-Id: Ib7caf35a1b7e42b0e4ed8aa812493449e3eefc8f
Reviewed-on: https://gerrit.libreoffice.org/81540
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-10-26 12:38:33 +02:00
Gabor Kelemen 3dfb4c47ad tdf#42949 Fix IWYU warnings in xmlscript/
Found with bin/find-unneeded-includes
Only removal proposals are dealt with here.

Change-Id: I7f15170473100c50bd4d287ec8cb4a8d6186c703
Reviewed-on: https://gerrit.libreoffice.org/81164
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2019-10-21 14:35:41 +02:00
Noel Grandin 366eaa1a38 loplugin:stringadd in writerfilter..xmloff
Change-Id: Ib5292f4c702cc1e2994c736250a93e6fb18d1a20
Reviewed-on: https://gerrit.libreoffice.org/79988
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-10-02 08:47:24 +02:00
Stephan Bergmann 7b4b70afba Avoid -fsanitizeinvalid-null-argument
...as witnessed once with some `instdir/program/unopkg remove ooo2gd_3.0.0.oxt`:

> xmlscript/source/xml_helper/xml_byteseq.cxx:116:13: runtime error: null pointer passed as argument 1, which is declared to never be null
> /usr/include/string.h:43:28: note: nonnull attribute specified here
>  #0 in xmlscript::BSeqOutputStream::writeBytes(com::sun::star::uno::Sequence<signed char> const&) at xmlscript/source/xml_helper/xml_byteseq.cxx:116:5
>  #1 in fileaccess::TaskManager::page(int, rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::io::XOutputStream> const&) at ucb/source/ucp/file/filtask.cxx:655:32
>  #2 in fileaccess::BaseContent::open(int, com::sun::star::ucb::OpenCommandArgument2 const&) at ucb/source/ucp/file/bc.cxx:911:29
>  #3 in fileaccess::BaseContent::execute(com::sun::star::ucb::Command const&, int, com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&) at ucb/source/ucp/file/bc.cxx:323:53
>  #4 in non-virtual thunk to fileaccess::BaseContent::execute(com::sun::star::ucb::Command const&, int, com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&) at ucb/source/ucp/file/bc.cxx
>  #5 in ucbhelper::Content_Impl::executeCommand(com::sun::star::ucb::Command const&) at ucbhelper/source/client/content.cxx:1254:19
>  #6 in ucbhelper::Content::openStream(com::sun::star::uno::Reference<com::sun::star::io::XOutputStream> const&) at ucbhelper/source/client/content.cxx:816:14
>  #7 in dp_misc::readFile(ucbhelper::Content&) at desktop/source/deployment/misc/dp_ucb.cxx:195:23
>  #8 in dp_misc::readLine(rtl::OUString*, rtl::OUString const&, ucbhelper::Content&, unsigned short) at desktop/source/deployment/misc/dp_ucb.cxx:207:34
>  #9 in dp_registry::backend::configuration::(anonymous namespace)::BackendImpl::configmgrini_verify_init(com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&) at desktop/source/deployment/registry/configuration/dp_configuration.cxx:371:17
[...]

Change-Id: I66bef2d1bc037efa893f3ae3ad8058aa16f7cc5b
Reviewed-on: https://gerrit.libreoffice.org/78042
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-08-23 23:33:18 +02:00
Noel Grandin 7ae43f63aa loplugin:constvars in writerfilter..xmlscript
Change-Id: I5a318632bcc575ea7e476ec0fb74c905b252ecdd
Reviewed-on: https://gerrit.libreoffice.org/77829
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-08-20 16:57:05 +02:00
Noel Grandin 7d7a7862a7 new loplugin:sequenceloop
look for places we should be using std::as_const on for-range
loops over uno::Sequence, to avoid triggering a copy

Change-Id: I7efb641bf09d37c87946f03428ee4eec90298c8a
Reviewed-on: https://gerrit.libreoffice.org/77441
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-08-16 09:04:51 +02:00
Andrea Gelmini 89fa56078e Fix typos
Change-Id: I52ac067c200b02bc8513033b249863f67b245528
Reviewed-on: https://gerrit.libreoffice.org/77271
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2019-08-12 10:25:53 +02:00
Stephan Bergmann af896b031c Improved loplugin:stringconstant (now that GCC 7 supports it): xmlscript
Change-Id: Ic294ce631c87f2a7ecbcec69f9ecd38183d7dd45
Reviewed-on: https://gerrit.libreoffice.org/76622
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-07-31 12:51:48 +02:00
Noel Grandin 0d36b32755 loplugin:sequentialassign
Change-Id: I56a9bf698b60bd278c71cc632aacef2bd2f4c13f
Reviewed-on: https://gerrit.libreoffice.org/76501
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-07-29 08:53:23 +02:00
Noel Grandin 01782ecd9f loplugin:referencecasting in various
Change-Id: Id4e3d9d1bbfd47181299568afec45e996eb1eed5
Reviewed-on: https://gerrit.libreoffice.org/76071
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-07-21 16:04:20 +02:00
Noel Grandin ef73fefd02 loplugin:logexceptionnicely in various
Change-Id: I207d21e674366046e2663ebaf7f5161cde2c5fab
Reviewed-on: https://gerrit.libreoffice.org/74336
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-06-20 10:38:48 +02:00
Arkadiy Illarionov fac093e5e6 Simplify Sequence iterations in xmlscript, xmlsecurity
Use range-based loops or replace with comphelper or STL functions

Change-Id: I3d63811caf80c87a9d560087e1f0d933ebcc0d55
Reviewed-on: https://gerrit.libreoffice.org/72040
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-05-09 18:21:59 +02:00
Arkadiy Illarionov 855f52ead7 Use hasElements to check Sequence emptiness in [v-x]*
Similar to clang-tidy readability-container-size-empty

Change-Id: I71e7af4ac3043d8d40922e99f8a4798f0993294c
Reviewed-on: https://gerrit.libreoffice.org/71603
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-05-02 09:53:48 +02:00
Mike Kaganski 184be2d135 tdf#120703 PVS: remove redundant static casts
V572 It is odd that the object which was created using 'new' operator
     is immediately cast to another type.

Change-Id: I54976062dc3f62eaaa79f89eff54454f0b24ac2c
Reviewed-on: https://gerrit.libreoffice.org/69989
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-03-31 07:27:24 +02:00
Shubham Goyal 4c4ccdf724 i#119731 Hyperlink Control on dialog Editor
Change-Id: I34132931eba103aec5f9622be9c3bf2dd4de237d
Reviewed-on: https://gerrit.libreoffice.org/69001
Tested-by: Jenkins
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
2019-03-11 15:51:16 +01:00
Shubham Goyal 732d630c3d tdf#53524 Create UNO grid control- dialog editor
The commit is based on the patch in https://bz.apache.org/ooo/show_bug.cgi?id=120066.

Change-Id: Ia4ad536331954679940104adf5d6178228c90854
Reviewed-on: https://gerrit.libreoffice.org/68814
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
Tested-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
2019-03-08 15:51:23 +01:00
Noel Grandin 183debd7e0 pretty up logging of exceptions
Add exceptionToString() and getCaughtExceptionAsString() methods in
tools.

Use the new methods in DbgUnhandledException()

Add special-case case code for most of the exceptions that contain extra
fields, so all of the relevant data ends up in the log

Change-Id: I376f6549b4d7bd480202f8bff17a454657c75ece
Reviewed-on: https://gerrit.libreoffice.org/67857
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-02-19 09:39:48 +01:00
Noel Grandin f76bf262a6 new loplugin indentation
look for mixed indentation in compound statements, which makes them hard
to read, and sometimes makes it look like a statement is associated with
a nearby if/for

Change-Id: Ic8429cee1f9a86d938097a4a8769a2bce97b3361
Reviewed-on: https://gerrit.libreoffice.org/63283
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-02-11 08:24:19 +01:00
Noel Grandin 21de55596c remove unnecessary "if (!empty()" checks before loops
found with
   git grep -n -A4 'if.*!.*empty' | grep -B3 -P
'(\bfor)|(\bwhile)|(\bdo)'

Change-Id: I582235b7cf977a0f9fb4099eb306fdb4a07b5334
Reviewed-on: https://gerrit.libreoffice.org/64169
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-11-29 07:17:37 +01:00
Andrea Gelmini 655e3bd9a8 Fix typo
Change-Id: I7c5603468f5ee7f7e33940d7b3787318c307acfa
Reviewed-on: https://gerrit.libreoffice.org/62343
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2018-10-25 13:51:38 +02:00
Gabor Kelemen d90ec5d26f tdf#42949 Fix IWYU warnings in include/xmlscript/*
Found with bin/find-unneeded-includes
Only removal proposals are dealt with here.

Change-Id: Iacc5b98b947a26ca920cb9c49e579bc61d69b0c9
Reviewed-on: https://gerrit.libreoffice.org/62119
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2018-10-25 09:09:35 +02:00
Noel Grandin 6f50961e69 remove more rtl::OUString and OString prefixes
which seem to have snuck back in since the great rounds of removals.

Change-Id: I85f7f5f4801c0b48dae8b50f51f83595b286d6a1
Reviewed-on: https://gerrit.libreoffice.org/62229
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-10-24 14:43:34 +02:00
Noel Grandin f31c9f16fe clang-tidy performance-unnecessary-copy-init in test..xmlscript
Change-Id: I1ae16467a8e58e8a50f59b7a140e9f8b68bde07e
Reviewed-on: https://gerrit.libreoffice.org/62254
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-10-24 08:37:51 +02:00
Caolán McNamara 45e208f462 copy and paste error
Change-Id: I73a617137bf0b3b567181ff817069944076eab0e
Reviewed-on: https://gerrit.libreoffice.org/61980
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-10-19 16:36:33 +02:00
Noel Grandin 6d7ffb35c4 clang-tidy readability-simplify-subscript-expr
error: accessing an element of the container does not require a call to
'data()'; did you mean to use 'operator[]'?

Change-Id: I022745aa84b80124f342ce6c596d51b4d904f012
Reviewed-on: https://gerrit.libreoffice.org/61820
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-10-16 14:44:00 +02:00
Stephan Bergmann 7ceee0f1ec Extend loplugin:redundantinline to catch inline functions w/o external linkage
...where "inline" (in its meaning of "this function can be defined in multiple
translation units") thus doesn't make much sense.  (As discussed in
compilerplugins/clang/redundantinline.cxx, exempt such "static inline" functions
in include files for now.)

All the rewriting has been done automatically by the plugin, except for one
instance in sw/source/ui/frmdlg/column.cxx that used to involve an #if), plus
some subsequent solenv/clang-format/reformat-formatted-files.

Change-Id: Ib8b996b651aeafc03bbdc8890faa05ed50517224
Reviewed-on: https://gerrit.libreoffice.org/61573
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-10-09 14:47:17 +02:00
Stephan Bergmann 206b5b2661 New loplugin:external
...warning about (for now only) functions and variables with external linkage
that likely don't need it.

The problems with moving entities into unnamed namespacs and breaking ADL
(as alluded to in comments in compilerplugins/clang/external.cxx) are
illustrated by the fact that while

  struct S1 { int f() { return 0; } };
  int f(S1 s) { return s.f(); }
  namespace N {
    struct S2: S1 { int f() { return 1; } };
    int f(S2 s) { return s.f(); }
  }
  int main() { return f(N::S2()); }

returns 1, both moving just the struct S2 into an nunnamed namespace,

  struct S1 { int f() { return 0; } };
  int f(S1 s) { return s.f(); }
  namespace N {
    namespace { struct S2: S1 { int f() { return 1; } }; }
    int f(S2 s) { return s.f(); }
  }
  int main() { return f(N::S2()); }

as well as moving just the function f overload into an unnamed namespace,

  struct S1 { int f() { return 0; } };
  int f(S1 s) { return s.f(); }
  namespace N {
    struct S2: S1 { int f() { return 1; } };
    namespace { int f(S2 s) { return s.f(); } }
  }
  int main() { return f(N::S2()); }

would each change the program to return 0 instead.

Change-Id: I4d09f7ac5e8f9bcd6e6bde4712608444b642265c
Reviewed-on: https://gerrit.libreoffice.org/60539
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-09-17 09:05:38 +02:00
Arkadiy Illarionov 87b24ddbba Simplify containers iterations in xmlhelp, xmlreader, xmlscript, xmlsecurity
Use range-based loop or replace with functions from std algorithm.

Change-Id: I5b1859da37c2a6c6e5e70602287bfc2ada951893
Reviewed-on: https://gerrit.libreoffice.org/60463
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-09-15 09:06:38 +02:00
Noel Grandin 5cd976bdef loplugin:simplifyconstruct in writerfilter..xmlsecurity
Change-Id: Ic2d901ca0dbc2d6fa96611d260c1572da8a783c0
Reviewed-on: https://gerrit.libreoffice.org/60398
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-09-13 08:30:22 +02:00
Noel Grandin 7a11e70256 loplugin:useuniqueptr in DocumentHandlerImpl
Change-Id: I722f9a25040ab4ddd8a5d3e5b402c22e5cc3f454
Reviewed-on: https://gerrit.libreoffice.org/60002
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-09-05 09:31:40 +02:00
Noel Grandin 60bc263547 new loplugin:conststringfield
Look for const string fields which can be static, and
mostly convert them to OUStringLiteral

And add a getLength() method to OUStringLiteral to make
the transition easier.

Remove dead code in XclExpRoot::GenerateDefaultEncryptionData,
default password is never empty.

Change-Id: Iae75514d9dbb87289fd5b016222f640abe755091
Reviewed-on: https://gerrit.libreoffice.org/59204
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-08-22 13:31:57 +02:00