atomic increment/decrement is provided by
osl_increment/decrementInterlockedCount()
but that is a exported dll function, so it cannot be inlined.
valgrind analysis of a run, loading a medium sized spreadsheet, shows
that these 2 functions were called 3.5 millions times for a total cost of
55 millions of instructions... a cost of 8 instructions per call,
which is at least a 300% overhead since an atomic inc/dec is 2 instructions
iow we could save about 1% of the total instruction count of that run(4.6B)
We cannot change the existing api, as this would break ABI.
but we can add a new api. and migrate internal user to it.
osl_atomic_decrement/osl_atomic_increment do the same task,
than osl_*IntelockedCount() but do that inlined if possible.
Note that this version only optimize the case GCC with atomic built-in.
but support for other case should not be very hard.
follows-up patches will replace the use of the osl_*InterlockedCount()
in the product with their osl_atomic_* equivalent.
Change-Id: If4dcbf94ea6f62eb6d55d30613fe65878ffb8023
Signed-off-by: Stephan Bergmann <sbergman@redhat.com>
Create a merged XBridgeFactory2 interface for this service to implement.
Which is backwards-compatible, but does not require creating a new service.
Change-Id: I7309f4d30f0e772bc203c701eb3407b920ffafcc
The implementation of the LocaleData implements the optional XLocaleData4,
so rather than creating a new interface for the new-style service, we simply
make the service implement XLocaleData4, which in turn implements
XLocaleData3, XLocaleData2, XLocaleData.
Change-Id: I3e9a48b031be6b2aa5e04b376b3940b942add85a
/home/tinderbox/clang-master-build/solver/unxlngi6/inc/external/boost/uuid/seed_rng.hpp:143:61:
error: non-constant-expression cannot be narrowed from type 'int' to 'unsigned int' in initializer list [-Wc++11-narrowing]
unsigned int rn[] = { std::rand(), std::rand(), std::rand() };
Change-Id: Iea9808492cd3fbcf078e61bbc184bdc434e7cd8a
This reverts commit 61c94cbe2c (as it
touched values which are not in the spec) and sets the correct paragraph
top/bottom margin in case the compat option is enabled.
Change-Id: I152a76d8fcdef3acf5491783c2ccacd2d48e76b3
...as the new createDefault service ctor internally calls
createInstanceWithArgumentsAndContext, not plain createInstance[WithContext].
Change-Id: Ia3bf8167154a4ae9d64dae271cc23d513e9e77fb
regression from 22f2e5f286
so, lets follow the same pattern as else where and fixup
ENABLE_CUPS to be TRUE when enabled and lets just link
against cups and not do the dlopen dance
Change-Id: I3cff1bd98a7474c403d7ff66183e76e26e407de8
time to get rid of workarounds for broken window managers that were
introduced more than 10 years ago.
Change-Id: I43b4c7aeab1b86b3d4a290a1d1d64c6fcb9a57ef
Reviewed-on: https://gerrit.libreoffice.org/633
Reviewed-by: Miklos Vajna <vmiklos@suse.cz>
Tested-by: Miklos Vajna <vmiklos@suse.cz>
…that is /usr/lib/rpm/mageia/find-debuginfo.sh on Mageia for example.
As the desktop-integration packages don't have any binaries whose
debuginfo could be extracted and put into a -debug package, there is no
impact on the packages themselves.
Change-Id: I99756f6a1a3de707a94f7559b9f1b5169d2e7ee1
Reviewed-on: https://gerrit.libreoffice.org/630
Reviewed-by: Miklos Vajna <vmiklos@suse.cz>
Tested-by: Miklos Vajna <vmiklos@suse.cz>
UI accelerator keys missing in sections Table Design and Slide Transition of task pane.
I chose characters that are not used as menus keys.
Change-Id: Ide70e4703b0e27e001d487e07fa05fb14481cad2
Reviewed-on: https://gerrit.libreoffice.org/629
Reviewed-by: Miklos Vajna <vmiklos@suse.cz>
Tested-by: Miklos Vajna <vmiklos@suse.cz>
we may want to use syntax highlighter class from svtools later,
which is not available for l10ntools
Change-Id: I5a06b77cb6935e3ef68015fb608aa26ac7c53fac
Linking of cppunittester (and any other executable that uses
SAL_IMPLEMENT_MAIN or SAL_IMPLEMENT_MAIN_WITH_ARGS) fails otherwise.
Change-Id: I778941ab2069819789f96ab04f364ea61cf4a3cb
For one, assert.h is designed to be includeable multiple times with changing
NDEBUG settings, so it is not robust to include it early in sal/macros.h with
"correct" NDEBUG settings and potentially include it again later. For another,
there is #ifndef NDEBUG code providing functionality used exclusively within
assert calls, which must be compiled with the same NDEBUG-setting as the
relevant #include <assert.h>.
Change-Id: I7b2f9c85f8e2155051274757c64162ed5a5e9d1b
This reverts commit 2dfe34ce0e:
* sal/saldllapi.h is about something different than sal/types.h (it is rather a
mistake of cf77e8a0b9 "sal: add visibility
symbols" to shortcut the #include of sal/saldllapi.h into sal/types.h instead
of the headers that actually need it), not every header needs to include
sal/types.h
* sal/config.h is the header to always include first (not sal/types.h)
Change-Id: I217f2540197ddb682c6c00e529b812b04b327d73