"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>
found by a more aggressive variant of loplugin:unusedvariables.
This is my first pass, committing the simplest and most obviously
unnecessary vars
Change-Id: I9676a6e39a101937097788548764506c93811c57
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87414
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
The data was given to the PDF filter, but then we stopped iterating
right after finding our output stream. Seems this was always like this,
ever since commit 4111b430a0 (#101570#:
added pdf filter, 2002-08-13).
Change-Id: If26661935c22a7b7959fda5f92b4d50b15f13a35
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87152
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
changed sal_uLong to one of {size_t, sal_uInt64, sal_uInt32, sal_uInt16, sal_uInt8} in flash/impswfdialog.cxx and graphicsfilter
changed PS_* in file filter/source/eps/eps.cxx to enum and overloaded bitwise or (|)
made types of nSize, nParseThis, nComp and nBytesRead to sal_uInt32 as Michael Stahl suggested
changes suggested by Michael Stahl
changed x, y, j to sal_uInt32 in filter/source/graphicfilter/etiff/etiff.cxx
changed nMinPercent, nMaxPercent, nLastPercent, nMainEntitiesCount to sal_uInt16 in filter/source/graphicfilter/idxf/dxf2mtf.hxx
removed nGcount variable from filter/source/graphicfilter/idxf/dxfgrprd.hxx and filter/source/graphicfilter/idxf/dxfgrprd.cxx
removed static_cast in filter/source/graphicfilter/idxf/dxf2mtf.cxx
changed nComp in filter/source/graphicfilter/ieps/ieps.cxx to size_t
changed mnCol to sal_uInt16 in filter/source/graphicfilter/ipbm/ipbm.cxx
revised a number of datatypes as suggested by michael stahl in his reviews
removed redundant static casts which caused test to fail
Change-Id: Id892ee7e9c1ef3cf75c9d768b790ced9c2ce3f3b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/84726
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@cib.de>
so we return a const& for the normal case, just like other methods,
which reduces copying.
This revealed that CreateDisplayBitmap in Bitmap can be const.
Change-Id: I9f9b9ff0c52d7e95eaae62af152218be8847dd63
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86836
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
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>
...without having to spell out a specific type to cast to (and also making it
more obvious what the intend of such a cast is)
Change-Id: Id9c68b856a4ee52e5a40d15dc9d83e95d1c231cd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86502
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
This triggers the accessibility check, when we want to export
the PDF with PDF/UA functionallity. If issues are found, it will
show the issues. OK will continue with export despite the issues
and cancel will cancel the whole PDF export.
Change-Id: I2fde97381e08e9c2c79473888caa36e8dd828979
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86387
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
This is adding PDF/UA option to the PDF export dialog. When PDF/UA
support is enabled, it automatically enables PDFTag support as it
is required for PDF/UA.
Change-Id: Ib3dece964523d4ed9884c98a6022a91120c6065f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/85921
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Also drop inc/gfxtypes.hxx and source/svg/spirit_supplements.hxx
which are unused since commit
3ca7be0983
"Replace SVGFilter using SVGIO"
Drop now unneeded pass-through header
source/graphicfilter/icgm/main.hxx too.
Found with bin/find-unneeded-includes
Only removal proposals are dealt with here.
Change-Id: I8abaf294370c98256815a226168085dd01123f3e
Reviewed-on: https://gerrit.libreoffice.org/84734
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
... and also correctly set the initial frames sensitivity.
The commit removed the no longer needed UserSelection variant of
mbExportFormFields but forgit to actually set it now.
Regression from my commit 76fcd878da1624e73f1eb9d9405485d4faf66edf.
Change-Id: Ia5fcc1c37e2e4b4a330b59a492f817d2db8d7347
Reviewed-on: https://gerrit.libreoffice.org/84975
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
...with a boost::optional fallback for Xcode < 10 (as std::optional is only
available starting with Xcode 10 according to
<https://en.cppreference.com/w/cpp/compiler_support>, and our baseline for iOS
and macOS is still Xcode 9.3 according to README.md). And mechanically rewrite
all code to use o3tl::optional instead of boost::optional.
One immediate benefit is that disabling -Wmaybe-uninitialized for GCC as per
fed7c3deb3 "Slience bogus
-Werror=maybe-uninitialized" should no longer be necessary (and whose check
happened to no longer trigger for GCC 10 trunk, even though that compiler would
still emit bogus -Wmaybe-uninitialized for uses of boost::optional under
--enable-optimized, which made me ponder whether this switch from
boost::optional to std::optional would be a useful thing to do; I keep that
configure.ac check for now, though, and will only remove it in a follow up
commit).
Another longer-term benefit is that the code is now already in good shape for an
eventual switch to std::optional (a switch we would have done anyway once we no
longer need to support Xcode < 10).
Only desktop/qa/desktop_lib/test_desktop_lib.cxx heavily uses
boost::property_tree::ptree::get_child_optional returning boost::optional, so
let it keep using boost::optional for now.
After a number of preceding commits have paved the way for this change, this
commit is completely mechanical, done with
> git ls-files -z | grep -vz -e '^bin/find-unneeded-includes$' -e '^configure.ac$' -e '^desktop/qa/desktop_lib/test_desktop_lib.cxx$' -e '^dictionaries$' -e '^external/' -e '^helpcontent2$' -e '^include/IwyuFilter_include.yaml$' -e '^sc/IwyuFilter_sc.yaml$' -e '^solenv/gdb/boost/optional.py$' -e '^solenv/vs/LibreOffice.natvis$' -e '^translations$' -e '\.svg$' | xargs -0 sed -i -E -e 's|\<boost(/optional)?/optional\.hpp\>|o3tl/optional.hxx|g' -e 's/\<boost(\s*)::(\s*)(make_)?optional\>/o3tl\1::\2\3optional/g' -e 's/\<boost(\s*)::(\s*)none\>/o3tl\1::\2nullopt/g'
(before committing include/o3tl/optional.hxx, and relying on some GNU features).
It excludes some files where mention of boost::optional et al should apparently
not be changed (and the sub-repo directory stubs). It turned out that all uses
of boost::none across the code base were in combination with boost::optional, so
had all to be rewritten as o3tl::nullopt.
Change-Id: Ibfd9f4b3d5a8aee6e6eed310b988c4e5ffd8b11b
Reviewed-on: https://gerrit.libreoffice.org/84128
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>