...by re-enabling the code temporarily #if'ed-out in
a528392e71 "Fixed/improved
loplugin:cppunitassertequals" (and which then triggers lots of other
lopglugin:cppunitassertequal CPPUNIT_ASSERT -> CPPUNIT_ASSERT_EQUAL warnings).
For two css::uno::Reference equality comparisons in cppu/qa/test_any.cxx, it
was more straightforward to rewrite them with an explicit call to operator ==
(which silences loplugin:cppunitassertequal) than to adapt them to
CPPUNIT_ASSERT_EQUAL's requirement for arguments of identical types.
In sc/qa/unit/ucalc_pivottable.cxx, ScDPItemData needs toString, which has been
implemented trivially for now, but might want to combine that with the
DEBUG_PIVOT_TABLE-only ScDPItemData::Dump.
Change-Id: Iae6d09cf69bd4e52fe4411bba9e50c48e696291c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110546
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
was made public in
commit d487d6e082
rework Color to have R,G,B,A public variables
but it's best to keep them private since we're changing the internal
representation - and there is surprisingly little that depends
on accessing the internals anyhow.
Change-Id: I234d80fb33105f7bf5b865fb7c8194d893b09878
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109508
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Adds methods namespaceHref and namespacePrefix for reading the
current element's namespace prefix and the href.
Change-Id: I1c16857c6fc0bdfde2d983d8f42f153111119029
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109442
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
to reduce the churn, we leave the existing constructor in place,
and add a clang plugin to detect when the value passed to the
existing constructor may contain transparency/alpha data.
i.e. we leave expressions like Color(0xffffff) alone, but
warn about any non-constant expression, and any expression
like Color(0xff000000)
Change-Id: Id2ce58e08882d9b7bd0b9f88eca97359dcdbcc8c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109362
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
this just changes the Get/Set methods, the constructor and internal
representation of Color is not changed.
Change-Id: Idb6e07cc08bbaa5bd55b6bd4b585e648aef507b6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109074
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
to avoid chasing weird problems where we read past the end
of file, which leads to random data in the variable we read into.
I expect a couple of possible regressions from this change
(1) memory leaks caused by non-exception-safe memory handling.
Of which there should not be much because we're pretty good
about using smart pointer classes these days.
(2) Broken files which used to load, will no longer do so.
These will have to be debugged by putting a breakpoint
on the SvStreamEOFException constructor, and examining
the backtrace to see where we should be catching and ignoring
the exception to make the code continue to handle such broken
files.
Change-Id: I351be031bb083a3484a9a1b650a58892700e6fb7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105936
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
which means that some call sites have to change to use
unicode string literals i.e. u"foo" instead of "foo"
Change-Id: Ie51c3adf56d343dd1d1710777f9d2a43ee66221c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106125
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
It preserves the points, but not the flags. Work this around
by temporarily converting to B2DPolygon, where it works.
Change-Id: I120264fbc4c7c508386f23a06435891199565aae
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106188
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
As per afb62b0e96 swing the actual
check into a separate file and make only that file be compiled
with the specific flag.
Change-Id: If848a041fc3a26cfaa79f945d63f6c43f8cf3772
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103497
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
As per afb62b0e96 swing the actual
check into a separate file and make only that file be compiled
with the specific flag.
Change-Id: I7f75453f21271f38e0099bdf6b40f9138d8b4cff
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103496
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
At the moment test_cpu_runtime_detection_AVX2.cxx is compiled with
-mavx2 to allow it to use the intrinsics; however the compiler jumps
at the chance to use newer instructions outside the actual test;
in my case using AVX in the string manipulation in addTestsToSuite
when my CPU doesn't actually have AVX.
Swing the actual check into a separate file and only compile that
with the extra flag.
We probably need the same change for the SSE* checks as well.
Change-Id: I1683231932fff264a87c96ac95ac1d24b921163a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103075
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
...that are helpfully deleted in C++20, as now implemented at least by VS 2019
16.6.4 when using --with-latest-c++
Change-Id: Iaf80f793e73fc90768bb146c9cf3d300d6747c8c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99170
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Also makes sure that if the CPU dataction or compiler detection
doesn't work correctly, the test could potentially crash.
Change-Id: If0862c0a736c8e1f5ba1117b248918e4c1fb2f4d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96779
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
and fix bug in buffer reallacotion where mPos pointing
at the beginning of the new buffer instead of at the
correct index inside it.
Change-Id: Ie1ffaa176f6165e2cec85c93adc945312eff38e4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96650
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
because the LOK API expects memory returned from those calls to be
malloc'ed
Change-Id: If6fbfb60c433bd6e58bc90a9a90a90663e2e1c60
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96676
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Files which could become clang-format conformant with
under 5-percent lines of change relative to the total
count of lines in the file are found by using bin/find-clang-format.py,
and fixed with /opt/lo/bin/clang-format -i <path-of-the-file>
There will be follow-up patches to fix all 'under-5-percent' files.
Change-Id: I4952f350f4d22913ea94689b902ffa26c223ff96
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90152
Tested-by: Jenkins
Reviewed-by: Muhammet Kara <muhammet.kara@collabora.com>
This will compile test with maximal supported instruction set
supported by the compiler, but the CPU might not support the
instructions sets. As this tests some aspects of runtime CPU
detection only we actually don't need to compile it with the
INTRINSICS_CXXFLAGS flags.
Change-Id: I612785949b42efbd08d1961a746025f66e99aebc
Reviewed-on: https://gerrit.libreoffice.org/82422
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
When I did the fast string concatenation, I didn't add any support
for number(), which simply returned a O(U)String, and so it did
the extra allocation/deallocation, although that could be avoided.
In order to support this, number() now returns a special temporary
return type, similarly to O(U)StringConcat, which allows delaying
the concatenation the same way.
Also similarly, the change of the return type in some cases requires
explicit cast to the actual string type. Usage of OString::getStr()
is so extensive in the codebase that I actually added it to the helper
class, after that it's only relatively few cases.
Change-Id: Iba6e158010e1e458089698c426803052b6f46031
Reviewed-on: https://gerrit.libreoffice.org/78873
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
Adds CPU intrinsics detection in configure pass for compile time
detection and "cpuid" runtime detection of which CPU instruction
sets are available on the user device.
Change-Id: I0ee4d0b22a7c51f72796d43e7383a31d03b437ad
Reviewed-on: https://gerrit.libreoffice.org/75175
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
...as the commit message of f270bd15fe "Fix
INetURLObject::setName description" observes: "But for a hierarchical URL with
an empty (i.e., just "/" in the canonic form) path, setName("foo") actually
returns false." (I /think/ it should work for bIgnoreFinalSlash=false, but
which had been removed from setName with
359e0b47a0 "loplugin:unuseddefaultparams".)
Change-Id: I063000625d55c589782fe855923107719709df3a
Reviewed-on: https://gerrit.libreoffice.org/74504
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
This replaces the variant in Color with the stricter one of
BitmapColor. I couldn't find any reasoning for the lazy variant
used in Color.
Change-Id: I6dab3ab94a7f24ef5e80299d64267e3be8df888c
Reviewed-on: https://gerrit.libreoffice.org/72234
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Found with bin/find-unneeded-includes
Only removal proposals are dealt with here.
Change-Id: I47974f5c24819eb60e6724f42d51bb206dc26d21
Reviewed-on: https://gerrit.libreoffice.org/71557
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
This adds GenericTypeSerializer, which is now responsible of
serializing the Color into a stream (other types will follow), but
only for the older version of the binary format. The new version
we just write the sal_UInt32 mValue directly.
This is a start of decoupling the serialization of generic types
in tools and vcl module from the actual type, so we can in the
future replace those with basegfx variant.
Change-Id: I92738e7c178cac5cbca882dcbe45c80cc8269466
Reviewed-on: https://gerrit.libreoffice.org/71404
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
There is no need to check this in a test when we can do it
directly in the header. static_assert will complain when compiling
something that uses the header file instead of waiting that it
finds a piece of code, where it is actually needed. The purpose of
the test was the same (fail early).
The main problem was that Color can be created and converted to
sal_uInt32 string completely in compile time, so it can be used for
"case" in a "switch" statement, which requires that in "case" it
uses a constant. Normally this isn't possible unless we resolve
and convert a Color to sal_uInt32 in compile time.
This use-case is used somewhere in the code, but it takes a lot
of (re)compiling to get to that piece of code, where it would
eventually fail.
Change-Id: I1f1f9b77c19a0e61f78ce703b380d98a569da833
Reviewed-on: https://gerrit.libreoffice.org/71060
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Tested-by: Tomaž Vajngerl <quikee@gmail.com>
Color is a wrapper around a sal_uInt32 variable. With a union,
separate channels R, G, B, A sal_uInt8 variables can be added
that occupy the same memory. This makes it much easier to access
each color component separately, which is used quite a lot by
various algorithms. This also adds the variables to public so
everyone can enjoy the benefits.
Tests have been extended to make sure this doesn't break the
existing algroithms.
Change-Id: I2e78e12df68e8c7f0f49420eef5e659b335ee397
Reviewed-on: https://gerrit.libreoffice.org/71002
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
The Linux-only conversion of file URLs with a non-empty (other than "localhost")
authority to smb URLs had been added in 2010 with
0b9ef81ba5 "tools-urlobj-smb-scheme-patch.diff:
migrated" (applying a Go-oo patch?) but giving no rationale beyond "process
relative SMB paths (in hyperlinks) correctly". That makes it hard to tell
whether that patch is (still) actively useful for anything, or was just a
misguided hack from the beginning:
* Why make this Linux only? What about other non-Windows OSs? (On Windows,
such URLs can be resolved as UNC pathnames.) If the reason for Linux-only was
that it is the only OS where LO can handle smb URLs via GIO, why not make it
conditional on ENABLE_GIO?
* Why map to smb? There are various remote file access protocols. Hardcoding
smb looks arbitrary here.
Anyway, INetURLObject is arguably at a wrong level for such a patch. To not
drop the hack wholesale, reimplement it in the file UCP, forwarding to a
potential other UCP that can handle smb URLs any file://<host>/... URLs
(rewritten as smb URLs) that the file UCP cannot handle itself.
(file://localhost/... URLs will already have been normalized to file:///... by
INetURLObject when they reach the file UCP, and even if they were not, the
osl/file.hxx functionality underlying fileaccess::TaskManager::getUnqFromUrl
knows how to handle them, so they will not take the forward-to-smb code branch.)
(The corresponding #ifdef WIN code from 0b9ef81ba5
has already been removed with 82034b04e8
"tdf#119326 crash when adding "Windows Share" File resource".)
(I came across that 2010 patch while looking into
<https://bugs.documentfoundation.org/show_bug.cgi?id=107461> "Does not support
'file://' scheme with actual hostname". A next step would be to make the file
UCP actually handle any file://<host>/... URLs that denote the local host.)
Change-Id: I77242705dc4c6c1e9cb3a4f32253224ac6cb13cb
Reviewed-on: https://gerrit.libreoffice.org/67372
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Building the LO Flatpak for --arch=i386 (where CFLAGS and CXXFLAGS are both set
to "-march=i686 -mtune=generic -O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2
-Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong
-grecord-gcc-switches -fasynchronous-unwind-tables -fstack-clash-protection
-fcf-protection"). Even if that was due to a glitch of not disabling tests
wholesale for that arch (which has meanwhile been addressed with
<https://github.com/flathub/org.libreoffice.LibreOffice/pull/67/commits/
deda15380b436ca8fe62e2ebc1feec8bcb6dd43e> "org.freedesktop.Sdk//18.08 `uname -i`
always returns 'unknown'"), lets document that failing corner case here.
Change-Id: I8f78cced45e015331e23ae9c86bc286179278076
Reviewed-on: https://gerrit.libreoffice.org/66904
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>