Age | Commit message (Collapse) | Author |
|
With 64-bit MSVC, sizeof(long) is 4 but sizeof(void*) is 8, so this
would select sal_uInt64 but SAL_MAX_UINT32.
This should make sizeof(sal_Size) the same as sizeof(size_t) on all
supported platforms, but still sal_Size maps to different integer
type (long vs. int) than size_t on 32-bit.
Change-Id: I638aac6b502e624ed6b01f5921e20bc40f42480c
|
|
Change-Id: I1c76d4ce91d1f22d88106918ab139b17f6f017f0
|
|
Change-Id: Idb2e46fcaa080d6763d2e3ed963f7673a2353eb2
|
|
Change-Id: Ice8504041f22e00f2e5010813d9dff1d2987c8d6
|
|
Change-Id: I6b46eea0890573166d8a49e8060716907f223a1d
|
|
Change-Id: I65296dd9b4b13fc1c3a3d8eed738e257b204b691
|
|
...for a 32-bit build, similar to what ee11e221d2108212619e1bbe7f029e7d9afdba32
"tdf#43157: Fix format string violations in OSL_TRACE etc." did for a 64-bit
build
Change-Id: I05dd79ede3e66cb9ab7a33792319eb34b34c82dd
|
|
When a file's time is epoch (1970-01-01 00:00:00, i.e., TimeValue temp is all
zero) and the TZ is UTC or westward, osl_getLocalTimeFromSystemTime returns
false and leaves myLocalTime uninitialized. That e.g. confuses getModuleByUrl
(scripting/source/pyprov/pythonscript.py), potentially re-loading a Python
script with epoch time (as happens e.g. for the share/Scripts/python/ files in
an xdg-app installation of LO) every time it is accessed, falsely assuming it
has changed on disk since last load.
Change-Id: I8d4228feb28e2697a7021e3488ae2c09e8439ed8
|
|
Work in progress. The selection not used for anything yet.
Change-Id: Ia86fa0f59dcfee8e9d332a028a3fad37f4019fe0
|
|
"[...] to allow users to control the visibility of a type for the purposes of
RTTI [...]"
(<http://llvm.org/viewvc/llvm-project?view=revision&revision=175587>), so fits
well for SAL_DLLPUBLIC_RTTI
Change-Id: I6494e027c3af176591ffeb1d6a8965b7d40db1a9
|
|
Change-Id: Id9bfb3886e4a9cbc15a7bf7ef3aefa73bd160e3b
|
|
Change-Id: Ic9cda5259db81dd921dd3fa891b1289b8283bf27
|
|
Change-Id: Ia0a4834987ae040a31e19276ece20b74b59ca445
|
|
Change-Id: Ib1ec1ae009115dcc8f50ca3038bc9a35b7cb09a9
|
|
...don't dare make it non-explicit, yet.
Along the way, introduce SAL_CONSTEXPR.
Change-Id: Ia3179d0d5e001fd7aa92237c97437e9b74366ee1
|
|
guess we'll need them more often..
Change-Id: I0ef149fc5edceee765419764bf0efa571ba9d977
|
|
Change-Id: I129f3dc1597035664e4ff284276cb0d49a560ab5
|
|
after paint"
(and its later fixup)
This reverts commits
e8a68c1f50f32a0f9d8bcdf16c1270c319910baa
e60b589952985edff12b1a28392ce6fa0ca8d9be
It was a work-around for the real underlying issue, which was that the
result of dbaccess::ResultSet::isFirst() et al were clobbered by moves
made by its clones.
The BrowseBox has two different cursors:
1) One for data to edit (which is kept on the current/active row)
2) One for data to *paint*
The second is a clone of the first.
The real underlying issue is fixed by:
commit d7c9a1d9d65fe8b1a56c5c280d2ca6640a549d2f
Author: Lionel Elie Mamane <lionel@mamane.lu>
Date: Thu Jan 22 10:49:42 2015 +0100
fdo#88475 RowSetBase: reposition cache before interrogating it
Change-Id: I28d62673fdf10ee6507d38bb7c79c08e4b40902f
|
|
The Itanium C++ ABI mandates that for a unique (complete) C++ type a single
unique symbol for the type's RTTI name is used across a process's dynamic
objects (so type equivalence can be determined via pointer comparison on the
RTTI names).
GCC nowadays deviates from that, using strcmp to determine equivalence, so it is
resilient to RTTI names being bound locally within dynamic objects (which has
performance benefits, but also makes it impossible to have unrelated types that
happen to have the same name "encapsulated" in individual dynamic objects---
whether or not that would violate the ODR would be open to interpretation of how
dynamic objects fit into the C++ Standard).
LLVM sticks to the Itanium ABI, which becomes notable in at least two places:
For one, libc++abi's __dynamic_cast uses strict checking. It still has a
_LIBCXX_DYNAMIC_FALLBACK for now that additionally uses strcmp checking and
syslogs visibility violations. Mac OS X uses libc++abi with
_LIBCXX_DYNAMIC_FALLBACK enabled, and running LO routinely logs dynamic_cast
errors to the Console there.
For another, RTTI-based UBSan checks unconditionally only use strict checking
(cf. isDerivedFromAtOffset in lib/ubsan/ubsan_type_hash.cc). This causes false
positives from Clang -fsanitize=function and -fsanitize=vptr even on Linux not
using libc++abi.
Therefore, introduce SAL_DLLPUBLIC_RTTI to mark types for which RTTI needs to
have default visibility under the Itanium/LLVM semantics. There is
unfortunately no way to mark only the (implicitly generated) RTTI symbols for
default visibility, but at least with the cases where SAL_DLLPUBLIC_RTTI is used
for now that is no real problem---any class type marked SAL_DLLPUBLIC_RTTI only
has inline (covered by -fvisibility-inlines-hidden) or undefined pure virtual
functions. It appears that even the vtables of those classes remain hidden, at
least with Mach-O on Mac OS X. (That also means there is no need for a
SAL_DLLPRIVATE_RTTI marker analoguous to the---also superfluous in retrospect---
CPPU_GCC_DLLPRIVATE one.)
Nevertheless, the number of exported symbols of course increases when
SAL_DLLPUBLIC_RTTI is "active." For a full-blown --enable-dbgutil build on Mac
OS X,
find instdir/LibreOffice.app/Contents -name \*.dylib\* -exec nm -gU {} \; \
wc -l
increased from 125541 to 139239. For Linux, an option might be to "activate"
SAL_DLLPUBLIC_RTTI only for __clang__ plus !ENABLE_RUNTIME_OPTIMIZATIONS.
The set of types marked SAL_DLLPUBLIC_RTTI with this patch (wholesale cppumaker-
generated UNO enum, struct, and interface types; plus some IEmbeddedHelper and
IUndoManager) is chosen so that a full "make check" on Mac OS X no longer
syslogs any dynamic_cast errors to the Console.
Change-Id: I42fa6ec01c2503ec24bcd9c0518abb112afa3235
|
|
OSL_ENSURE does not execute in non-debug builds (and is deprecated).
Do not try to seek back if paint did not seek.
This happens in particular when there is no data source attached (and thus trying to seek fails).
Change-Id: I3f4908c4dcae2bb120bf58c1218e3386c40d5721
|
|
Change-Id: Ia6c178dd9390bf75a08c0d53e6505582a7f5ab4f
|
|
from 234e45bf1d27484b72e73fe327b1e92fda1933f1
Change-Id: Ic1bcab8a9662e2f302a24a6eaad2f813c12b28a8
|
|
This reverts commit 06a5b619a76c96783ee67bdcfd21f203d3ddb53c, which broke
Solaris/Illumos builds for no good reason, cf. mail thread starting at
<http://lists.freedesktop.org/archives/libreoffice/2015-January/065844.html>
"4.4.0.1 build error on sal/types.h on solaris/illumos."
Conflicts:
include/sal/config.h
Change-Id: I063453ee1115ae3f97e2835828800c74e3cb5e48
|
|
...on Clang trunk towards 3.6, firing for typeid(*e) where e is a side-effecting
expression (of polymorphic pointer type). Simpler to disable it via #if in
sal/config.h than to disable it in solenv/gbuild/platform/com_GCC_defs.mk with
an additional feature test in configure.ac.
Change-Id: If94692a9e06ff2659bf168b4968200aeee9ebb0a
|
|
Change-Id: I6f4a6679c263ac81d1cf5c66f18782e857da5ff8
|
|
Change-Id: I37e507226e676ee797e6911a0b3da1d1823e750a
|
|
By the way an item of the following page suggests the same snipet:
<http://www.faqs.org/faqs/ui-builders/TeleUSE/>
while I am not sure if it was the case.
Change-Id: I9fb0ea0e872cb1697aa953a406527472f0cbccde
Reviewed-on: https://gerrit.libreoffice.org/12330
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
|
|
Change-Id: Ic76ccc49b9291fe82c56974eb6237cd3b85d91c8
|
|
This is supported in GCC 4.6.0 already:
https://gcc.gnu.org/onlinedocs/gcc-4.6.0/gcc/Diagnostic-Pragmas.html
Change-Id: I2f67e588eea3a323a2e9c81e39e56ab2e715a817
|
|
This has been supported by GCC and clang for a very long time.
Change-Id: I410a2b39004c932003f8cbefe935aedb109b1163
|
|
Change-Id: I9c879cc16de0d5353a5ab8ce4c8a8cd7f000a170
|
|
Change-Id: I3339324ec99bbed56f81f2aa4e6cf54edcbec8e6
|
|
Change-Id: I26fa823b987b2edfbb1be054a5f4d03bbe95a308
|
|
Change-Id: I0e2b38ab8e7fae483539e02e93d25d2532bd70ef
|
|
Change-Id: I9691048ca7dc6e18cc904b29e8f6f59b11e002cf
|
|
OOXML gradients can have an arbitrary number of "stops". LibreOffice gradients
have just a start and end colour, plus an optional uniformly coloured border
(on the "start" side). In addition, LibreOffice has the "axial" gradient mode,
which means the gradient is reflected in the middle.
It is thus obviously impossible in general to losslessly map OOXML gradients
to LibreOffice ones. But let's try a bit harder than earlier to get visually
more similar result, in at least some simple sample cases.
We look for the widest gradient segment and use that for the start and end
colours of the LibreOffice gradient.
Also, map an OOXML gradient to an axial LibreOffice gradient only if it is
symmetrical. Also, use the border property when suitable. In general, look for
the widest OOXML gradient segment (once a segment corresponding to the
LibreOffice gradient border, if any, has been accounted for) and use that as
the LibreOffice gradient.
Possibly some perceptionally better heuristic should be used... Like, if we
have a three-segment gradient, with a wide gradient segment between two
visually very similar colours (for example, two shades of red), and a narrower
segment ending with a visually very different colour (for example, yellow), it
probably would be best to represent that in LibreOffice as a gradient from the
first red shade to yellow, instead of as a gradient between the two shades of
red. Or even, if a first or last gradient segment is between very similar
colours, equalize those start and end colours, thus using a border colour in
LibreOffice instead. The possibilities for bikeshedding are endless.
I am sure there are instances where the old code (by accident?) produced
visually more pleasing results... But hopefully this works more pleasingly and
consistently in a larger number of cases.
Change-Id: If153e986ad943454307e3ba718479d5ac4cdc7ab
|
|
Change-Id: I885acc9b4a52835fa256c2ecd1b8da917b4f7ba7
|
|
Change-Id: If7704edc5baa9759abc680b8d2040b9cdfe92317
|
|
Change-Id: Ia5fbdfd83971ac946de6d022be55d5a286a1bf5a
|
|
...no reason to not have it enabled for URE C include files and what
little real C code is still left. (But note that Clang ignores that
warning.)
Change-Id: Ia6940f9f940a0c226e9b724331d65c9862ce32e6
|
|
Change-Id: Ia3fe1ff0075434d0b6903bf978c16499e07d699d
|
|
Change-Id: I3d389174684cdc86ddb098629da57ebf142424c9
|
|
Change-Id: Ie60e0b64a2d9d8a045cb3c59fc781d6f9b2808a0
|
|
Change-Id: I095f45b537690fe98bf385d99194db6319d7ac93
|
|
While at it, make it use SAL_INFO instead of fprintf.
Change-Id: Id4018819f8f790bef219e5aca3b6bbb5f6acd6aa
|
|
Change-Id: Ife10cae3f0bd7dd294c74799412528f2596369c8
|
|
Change-Id: I77e10d2644b18b150f9489c7f754405974af107a
|
|
Change-Id: Ic3e2a5ed247b35b4e6d80a4ad824bc9b535783fb
|
|
Change-Id: I2bad7938ddd02da8aa7191aebbd9221220fb303e
|
|
Use avmedia.opengl to be more explicit.
Change-Id: I07878c3648de2e4786bf8a5144ef0c1fbb5530f1
|