If we include simdsupport.hxx, this now includes the supported
intrinsics headers automatically, so this removes the need to do
it ourselves.
Change-Id: Icc406316a7e27b7b5fd5905f51664f4fe47e5468
Reviewed-on: https://gerrit.libreoffice.org/75783
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
LayoutConverter::calcAbsRectangle needed to be tweaked because
we now end up with a zero width/height instead of a large
negative number.
Change-Id: I81f04759a1d5bf6f44753a1701596796fad40567
Reviewed-on: https://gerrit.libreoffice.org/75610
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
I tried making this assert, but there are just too many places where we
pass around empty rectangles, so rather just return the value of nLeft,
in a similar fashion to methods like Rectangle::TopLeft
Change-Id: I3377071ecae26f13e895ae411cd269f0bdbe0ef6
Reviewed-on: https://gerrit.libreoffice.org/75486
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
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>
This rewrites URI of a document opened from a WebDAV mapped UNC path
on Windows (like "file://server/DavWWWRoot/Dir/Doc.odt") into HTTP URI
(like "http://server/Dir/Doc.odt"). This allows using WebDAV protocol
for these files, and e.g. get information about other user who locked
the document to show when asking if open read-only or a copy.
Change-Id: I643fa8df30d4b163783b279b1b973304fcafff37
Reviewed-on: https://gerrit.libreoffice.org/71746
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
...after 359e0b47a0 "loplugin:unuseddefaultparams"
had removed its nIndex and bIgnoreFinalSlash parameters denoting the segment
whose name to set.
(One would assume that a hierarchical URL always has a last segment, so the
"[if] a last segment does not exist, false is returned" part be removed from the
description. But for a hierarchical URL with an empty (i.e., just "/" in the
canonic form) path, setName("foo") actually returns false.)
Change-Id: I35b96f4687784648c141e16c0806fe49d80c940a
Reviewed-on: https://gerrit.libreoffice.org/74487
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Recheck directories under include/ and below vcl in the
module hierarchy.
New IWYU and recent developments in f-u-i helped to identify
some non self contained files, those were fixed too.
Also some new removal proposals are dealt with here.
Change-Id: If12ae37602eecdf3004ae0fa6623d464077d4f9f
Reviewed-on: https://gerrit.libreoffice.org/74213
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
This reverts commit a46a257794.
Too many issues, I'm going to try landing this in smaller pieces to make it easier to fix regressions
Change-Id: Ie5e8979838017af86c119c887b580385ba068d54
Reviewed-on: https://gerrit.libreoffice.org/73859
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
This is the width part, the height part will come next.
Instead of storing "empty" as a special value (which is easy to get
wrong, eg. some image filters pass in that special value, expecting it
to be a valid width), just use separate boolean values for width and
height empty.
Also lots of code was calling GetBottom() or GetRight() on an
empty rectangle, getting back that magic value and doing calculations
on it, resulting in completely bogus data.
So
(1) make the various Rectangle methods do something reasonable
when the empty flags are set
(2) fix various other code to handle empty better
(3) assert when code accesses Bottom or Right and the empty flag
is set.
Change-Id: I1163378cd2773dd8b386210f83400bb6b4701069
Reviewed-on: https://gerrit.libreoffice.org/73564
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
By adding a couple of members to Link, we are
now able to trace the target function name and
the file:line where the Link instance in question
was created (provided the LINK macro is used).
This gives the invaluable ability to track down the
source of a Link instance in the debugger, provided
we have enabled this feature, which is enabled in
DBG_UTIL automatically, unless explicitly enabled.
Of course it is also possible to judiciously add
LOG/fprintf statements to chase this info, if not
outright track all links, if so we wish, by dumping
from Link::Call, or at construction time of Link.
Change-Id: Iab1dce31a179d28aaa1f20228e9e0405973b5e9b
Reviewed-on: https://gerrit.libreoffice.org/73478
Tested-by: Jenkins
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
...which apparently wants to internally call some operator<< for Polygon
(rPolyPoly.GetObject(i)), but which doesn't exist (and appears to not have
existed when this operator<< for PolyPolygon was added with
e4be770ec8 "add std::ostream operators for Region
and PolyPolygon"), so uses the non-explicit PolyPolygon ctor that takes a
Polygon, and causes infinite recursion for any non-empty PolyPolygon
Change-Id: I308527dcfed18763c8c3ebbce823eea9a0340e70
Reviewed-on: https://gerrit.libreoffice.org/73388
Tested-by: Jenkins
Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
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>
BitmapColor itself is kept to distingish the Color usage as part
of a color palette, which continues to store the offset in the
blue value. The original special mbIndex handling is long gone
since commit 1fefdd6f3b ("Alpha channel in BitmapColor - change
bIndex to alpha"), so there is no data difference.
This also results in the following changes:
* now has a basic_ostream<charT, traits>& operator<<
(that was my actual starting point... for an other bug fix)
* there is a minimal difference for GetLiminance
BGR(29,151,76) => BGR(28,151,77)
* no more return values for Merge and Invert
(previously returning *this)
* replaces all GetBlueOrIndex with GetIndex
This leaves one "problematic" part: the GetColorError handling.
At first glance it should probably be virtual. The Color variant
is less strict then the BitmapColor one - for whatever reason.
BitmapColor is always used to search for the best match in a
Palette. Currently I'm simply leaving both variants. Would be
nice to have an explict for functions here.
Change-Id: I251ba3024a1d60f2a9d9fde9cd0a60f08e8322a7
Reviewed-on: https://gerrit.libreoffice.org/72181
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
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>
Inherit from tools::WeakBase non-virtually, so that we can use a
static_cast in tools::WeakReference::get instead of a dynamic_cast.
This takes the file-open time from 1m21 to 40s for me.
Add a clang plugin to make sure we don't accidentally end up inheriting
from tools::WeakBase more than once.
Change-Id: I9c7c36403333f99094e1f9d8cce2ecd9200377f9
Reviewed-on: https://gerrit.libreoffice.org/71231
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
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>
Remove slider for increments as the increments should better be
left to "auto" and rarely modified (setting a value means it will
use a limitied amount of increments, but auto effectively means
as much as it is needed and can use the native backend for
drawing).
OTOH use a slider for setting the "angle" as it is already present
in hatch tab page. Angle needs a slider as it is usually one of
the main properties of a gradient (especially linear).
Increase the tab pages a bit (10px on every side) to have a bit of
breating space for all the widgets.
Change-Id: I66167fe2c97b53bc3627237279332bdd59fb03d7
Reviewed-on: https://gerrit.libreoffice.org/70175
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
...and clean up some other (legitimate) uses of UInt32ToSVBT32 to not use a
(somewhat misleading) static_cast<long>(...)
Change-Id: Ifd0c3f771c3f6e20eef3413b9c27fd2514dc0c13
Reviewed-on: https://gerrit.libreoffice.org/68767
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
This change does not change the actual results, but avoids Clang
-fsanitize=implicit-signed-integer-truncation warnings
Change-Id: If82193d7a6ad6bdadb4e8a8b3ed3bbdf3d88c4a3
Reviewed-on: https://gerrit.libreoffice.org/68706
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
For one, it that way matches reality (as it returns sal_uInt16, not short or
sal_Int16) and its SVBT32ToUInt32 counterpart. For another, I plan a follow-up
commit of introducing an additional SVBT16ToInt16 to explicitly return
sal_Int16.
Change-Id: I28915e6593ccdca0c11d7b2fa593e96e359a9532
Reviewed-on: https://gerrit.libreoffice.org/68686
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
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>
Also needs extending the XmlWriter to output double numbers as
the attribute content.
Change-Id: Ie749ea990d856c8c90092ed8153c24efda99c444
Reviewed-on: https://gerrit.libreoffice.org/67573
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
regression from
commit 9ec8bf8f22
add SvStream::TellEnd
the problem is that in this stack trace
sot/source/sdstor/stgelem.hxx:130
sot/source/sdstor/stgdir.cxx:300
sot/source/sdstor/stg.cxx:245
sot/source/sdstor/storage.cxx:187
tools/source/stream/stream.cxx:1908
sw/source/filter/ww8/ww8scan.cxx:6267
The StgEntry returns a size of 0. If we do something else to the
SotStorageStream first, then it materialises a temporary stream, and
that stream returns a valid size.
Also implement suggestions from mike kaganski:
IMO, it would be more robust to implement this new function as virtual
(instead of the remainingSize()), and reimplement the latter as
non-virtual one using the new one and doing the necessary correction.
Change-Id: Id1462d918570a684ec67099c30181436a27d3c6a
Reviewed-on: https://gerrit.libreoffice.org/62984
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>