169 Commits
Author SHA1 Message Date
Stephan Bergmann 8fb5be18f8 Use OStringBuffer as a pad for the mutable string passed to mkstemp
...by introducing OStringBuffer::getMutableStr and (for consistency)
OUStringBuffer::getMutableStr

Change-Id: I4dfc3b8d8ffb49b8b3742600081d075536b312e5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/197605
Reviewed-by: Stephan Bergmann <stephan.bergmann@collabora.com>
Tested-by: Jenkins
2026-01-20 07:33:22 +01:00
Jason Whitmore 2ec289a70b tdf#158237 replace find() and end() with contains()
This change updates code to use C++20 features.

Change-Id: Ib9edbd83faf464a0d866fb57276050e72ff0d023
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190310
Tested-by: Jenkins
Reviewed-by: Hossein   <hossein@libreoffice.org>
2025-09-09 15:55:25 +02:00
Caolán McNamara d3fcc9a5b6 drop apparently no longer needed coverity markup
Change-Id: Ia8b3b271bb5cc67131b50d563bed58400da5b317
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189662
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
2025-08-15 11:25:12 +02:00
Emmanuel Dreyfus 9fb26786b7 tdf#165837 Avoid UNO failure if filesystem does not implement fallocate.
posix_fallocate() may be available but unimplemented for a
given filesystem. Detect that situation once and use ftruncate()
instead.

Change-Id: Ic1422bfbcbcda21ef4923a6fc30ceb5ce662db3e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183977
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
Tested-by: Jenkins
2025-04-16 16:39:44 +02:00
Mike Kaganski 1180b3473a com::sun::star -> css
Change-Id: I890ec73e30d3cc6b210903ecee29431f3cb5f635
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175979
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-11-10 10:50:15 +01:00
Mike Kaganski ad686b26ce No need to use SAL_THROW_EXTERN_C macro in CXX
Change-Id: I6eb9f0431a9402479a2d90d5b6f68b611d52a9f9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175957
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-11-02 22:16:06 +01:00
Caolán McNamara d3959ecab9 cid#1606987 silence Overflowed integer argument
Change-Id: I77380d12a5d51c3debb1365a5fc9b57c33299eb8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173523
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-09-17 15:16:22 +02:00
Gabor Kelemen f93ae0455c Check bridges with IWYU
Only the parts tha build on x64 arch

See tdf#42949 for motivation

Change-Id: Ifa3c5107887f5ab7837beee83d9603e8c883a7a5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162961
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2024-02-08 15:19:14 +01:00
Caolán McNamara ce891da197 cid#1500470 silence Resource leak
Change-Id: I846746a351c619a4de7abce7a6443f510dc41690
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138661
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-08-22 12:17:44 +02:00
Stephan Bergmann ca550863f7 Better cast to sal_[u]IntPtr when passing pointer to O[U]String::number
Change-Id: I5b7a0fa060c1e0ae4aa194e0c1862f303dd8a2d7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138062
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-08-10 13:40:09 +02:00
Noel Grandin 80fab1529a clang-tidy modernize-pass-by-value in bridges
Change-Id: I6c52316e46117aacb22a2adcb75841aed834041f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134705
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-05-21 17:29:53 +02:00
Stephan Bergmann 29bc12777c Let loplugin:nullptr look into template instantiations
It missed some occurrences of 0 when only looking into uninstantiated template
code, as Clang doesn't model them with an ImplicitCastExpr, even if the target
is known to be a (dependent) pointer type.

Looking into all template instantiations of course carries the risk that a given
use of 0 is meant to be interpreted as a pointer in some and as an integer in
other instantiations.  But the only case where that happened in the current code
base is RegistryValueList::getElement (include/registry/registry.hxx), where {}
is arguably a better choice anyway.  (And which would presumably also hold for
any future such cases.)

Change-Id: I708bcfc8bedc0a49c9282d7814eb325afa29905c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128462
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-01-15 15:58:07 +01:00
Stephan Bergmann 601d057724 Revert broken optimization attempt
This partially reverts 1a5b12aa5d "optimise
find/insert pattern", which caused

> ~/llvm/inst/bin/../include/c++/v1/unordered_map:1134: _LIBCPP_ASSERT '__get_const_db()->__find_c_from_i(&__p) == this' failed. unordered_map::insert(const_iterator, const value_type&) called with an iterator not referring to this unordered_map

during CustomTarget_testtools/uno_test in an experimental build with
-D_LIBCPP_DEBUG=1 on macOS.

Change-Id: Id40e5eab7c3fb1f8e1bb2599c7fb84649e870ba2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124319
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Tested-by: Jenkins
2021-10-28 14:35:26 +02:00
Noel Grandin 05ab38359a Consolidate on C++17 std::scoped_lock instead of std::lock_guard
as in commit 9376f65a26

Change-Id: I3ad9afd4d113582a214a4a4bc7eea55e38cd6ff9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119927
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-03 12:20:53 +02:00
Noel Grandin 4ab57949a2 osl::Mutex->std::mutex in VtableFactory
Change-Id: Ie973ef2923c1c725ee740000ebd1eacf671a5bfb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119139
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-07-18 20:46:47 +02:00
Noel Grandin 04aafba860 loplugin:stringadd simplify some *StringBuffer operations
pulled from a larger patch which I created with a more permissive
variant of this plugin

Change-Id: I7abf1f3f09e84703b6e0e52fe9587dff691b2187
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114875
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-04-29 18:25:31 +02:00
Stephan Bergmann 052efd869e Make the pthread_jit_write_protect_np call pair exception-safe
...just in case

Change-Id: Id056ee4dfd64dd186f01d117cfede28f4b7f6c09
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107867
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-12-17 13:20:46 +01:00
Stephan Bergmann 6cab5c9170 tdf#134754: Gracefully handle EINVAL from mmap MAP_JIT on old macOS
Change-Id: Idfb148fad55c7c6b6e6f4f4b5316fd3b086f7d2e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107365
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-12-08 10:42:34 +01:00
Stephan Bergmann cca1240fe5 Related tdf#134754: Detect failed mmap on macOS
Change-Id: I21202d25e4851725198c58c29d9820bda00f2b30
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107315
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-12-06 18:36:55 +01:00
Tor Lillqvist e2bd5afd72 Make the C++/UNO bridge work to some extent on macOS on arm64
Use the same code as for Linux on aarch64, with minor
additional hacks. But that will not actually work in all cases, as
there are slight differences in the ABI. See
https://developer.apple.com/library/archive/documentation/Xcode/Conceptual/iPhoneOSABIReference/Articles/ARM64FunctionCallingConventions.html

Thus we can drop the use of the lo_mobile_throwException() hack that
was very temporarily used.

The run-time code generation requires use of a new API on macOS to
work: See the use of pthread_jit_write_protect_np() in
bridges/source/cpp_uno/shared/vtablefactory.cxx.

For some reason, with the Xcode 12 betas, when compiling for
arm64-apple-macos, the symbols for the type_infos for the UNO
exception types (_ZTIN3com3sun4star3uno16RuntimeExceptionE etc) end up
as "weak private external" in the object file, as displayed by "nm -f
darwin". We try to look them up with dlsym(), but that then fails. So
use a gross hack: Introduce separate real variables that point to
these typeinfos, and look up and dereference them instead. If this
hack ends up needing to be permanent, instead of having a manually
edited set of such pointer variables, we should teach codemaker to
generate corresponding functions, and look up and invoke them to get
the std::type_info pointer.

When compiling for x86_64-apple-macos, the type_info symbols end up as
"weak external" which is fine.

With this, LibreOffice starts and seems to work to some extent, and
many unit tests succeed.

Change-Id: I05f46a122a51ade1ac7dccd57cb90e594547740e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100408
Tested-by: Jenkins
Reviewed-by: Tor Lillqvist <tml@collabora.com>
2020-08-10 17:51:27 +02:00
Tor Lillqvist 2c366aae92 Use a less extreme entitlement for our run-time machine code generation
See https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_security_cs_disable-executable-page-protection
and https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_security_cs_allow-jit

Change-Id: I192038efa9cff4fb723bf4bdc8644f0b09f0fcda
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93181
Tested-by: Jenkins
Reviewed-by: Tor Lillqvist <tml@collabora.com>
2020-04-30 07:38:02 +02:00
Noel Grandin eab4993eab loplugin:flatten in bridges
Change-Id: I736032df48cb491508c27cbe773b964d1d2359b0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92482
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-04-18 21:47:45 +02:00
Noel Grandin 14471a6942 loplugin:buriedassign in b*
Change-Id: Ic20f46105a30b54bc5a991b4070e6c8edb15376e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92189
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-04-14 16:17:55 +02:00
Stephan Bergmann 1ebeacb20a Extend loplugin:cstylecast to certain function-style casts
...that are equivalent to const_cast or reinterpret_cast, and should arguably
better be written that way for clarity.  Drawing inspiration from
<https://reviews.llvm.org/D76572> "Replace `T(x)` with `reinterpret_cast<T>(x)`
everywhere it means reinterpret_cast. No functional change".

Change-Id: I27b8f70d324d32ecba658db4d1c2db03e10d5d3e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91086
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-03-26 09:13:55 +01:00
Noel Grandin 9a578e9861 clang-tidy modernize-concat-nested-namespace in basic..canvas
Change-Id: I74a575e6ca7829ee252c0e315fc337ea223c944f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86758
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-01-14 15:49:03 +01:00
Stephan Bergmann 60274d4308 Elide use of rtl_Instance (which is obsoleted by C++11 thread-safe statics),
...redux, after 8473ac2e27 "Elide use of
rtl_Instance (which is obsoleted by C++11 thread-safe statics)" had done the
same in parallel but forgot to remove some now-unnecessary parts:

There appears to be no good reason to control the lifecycle of the VtableFactory
instance via dso_init/exit, instead of via a plain static local variable.

This removes the need for the Windows DllMain functions.  They also called
DisableThreadLibraryCalls, which disables the DLL_THREAD_ATTACH and
DLL_THREAD_DETACH notifications for the respective DllMain.  Lets assume that
this was only done (as an optimization) because there had to be a user-provided
DllMain, and that it was not in itself a reason to have a user-provided DllMain.
(Most other DllMain across the code base that call DisableThreadLibraryCalls
also do something else.  The only DllMain that only calls
DisableThreadLibraryCalls is the one in
shell/source/win32/shlxthandler/ooofilt/ooofilt.cxx, introduced with
3fbfb21e29 "INTEGRATION: CWS desktintgr02".)

Change-Id: I696e1c8d49060853c1a2c24f67469f6adfea6801
Reviewed-on: https://gerrit.libreoffice.org/85367
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-12-18 13:02:20 +01:00
Noel Grandin 8473ac2e27 Elide use of rtl_Instance (which is obsoleted by C++11 thread-safe statics)
which does not seem to have been doing anything useful here anyway, not
since

    commit 730399de90
    Date:   Wed Jul 18 11:16:06 2007 +0000
    INTEGRATION: CWS unomacli64 (1.6.50); FILE MERGED
    2007/06/20 10:29:46 kr 1.6.50.1: fixed: #i78284#

Change-Id: I57345a08c333953a66b3a5f3be1fe9a2f1f092ef
Reviewed-on: https://gerrit.libreoffice.org/85328
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-12-18 07:59:40 +01:00
Noel Grandin 7b99cdb2d7 loplugin:indentation find broken if statements
so I don't read the "then" block as being a sequential statements

Change-Id: Ib2004acd3518bd4ebd2246f02a26c2c0a8bbab4c
Reviewed-on: https://gerrit.libreoffice.org/82069
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-11-06 06:27:51 +01:00
Mike Kaganski d51db77c8d Remove some memset calls
Replace them with default initialization or calloc

Change-Id: I747f53c2ced2d0473fd5a5ede4f8520a0633dcc1
Reviewed-on: https://gerrit.libreoffice.org/80805
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-17 09:53:42 +02:00
Noel Grandin ec56174b0c loplugin:useuniqueptr in VtableFactory
Change-Id: I122b6749f148abb48f646bfcd32ef86e2f5fa553
Reviewed-on: https://gerrit.libreoffice.org/78651
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-09-05 17:00:14 +02:00
Noel Grandin 10280dabe2 loplugin:constvars, look for loop vars that can be const
Change-Id: I67ee714739800f3718f9d3facf57474cd564d855
Reviewed-on: https://gerrit.libreoffice.org/77415
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-08-21 11:16:15 +02:00
Noel Grandin 1a5b12aa5d optimise find/insert pattern
if we're doing a find/insert on a set or a map, it is better to just do
a conditional insert/emplace operation than triggering two lookups.

Change-Id: I80da5097f5a89fe30fa348ce5b6e747c34287a8d
Reviewed-on: https://gerrit.libreoffice.org/70937
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-04-19 13:19:31 +02:00
Arkadiy Illarionov 10a48c737d Simplify containers iterations in basctl, basegfx, basic, bridges
Use range-based loop or replace with STL functions

Change-Id: I8594740103bdc2091c2d03d4b92bbe8393f5378c
Reviewed-on: https://gerrit.libreoffice.org/69223
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-03-16 20:16:46 +01:00
Mike Kaganski e128f78069 replace double-checked locking patterns with thread safe local statics
Change-Id: I1bf67196e97411aeecc13ed4f91d1088a315e323
Reviewed-on: https://gerrit.libreoffice.org/62839
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2018-11-04 14:46:01 +01:00
Noel Grandin fb1ef04ef8 loplugin:useuniqueptr in VtableFactory::createBlock
Change-Id: I6fd0495277301dfa15bb456f30b8386aea86fe60
Reviewed-on: https://gerrit.libreoffice.org/60622
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-09-18 11:27:14 +02:00
Noel Grandin 8d5b917d18 loplugin:useuniqueptr in bridges
Change-Id: I7248f8b5031e9659b2a58644952e59cc99d6a2d6
Reviewed-on: https://gerrit.libreoffice.org/58483
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-08-03 10:27:32 +02:00
Caolán McNamara ba1e1727c2 Related: rhbz#1602589 add comments to coverity annotations
Change-Id: I88c941832a0d682ea4b6028c28edd48cf5df38f7
Reviewed-on: https://gerrit.libreoffice.org/58093
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-07-27 09:32:19 +02:00
Kacper Kasper 9c036b1d3d Make LibreOffice buildable on Haiku.
* Obviously VCL wiring is missing, but most components do build.

Change-Id: Ie853ada1423a8f4c2b647be59cd47a7730c42978
Reviewed-on: https://gerrit.libreoffice.org/50293
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2018-03-05 14:17:27 +01:00
Mike Kaganski 82e3833995 bridges: MSVC: pragma warning: make more specific, remove obsolete
Change-Id: Ib13f198e5941a33a9a8d1091c8ceb48e273f00cc
Reviewed-on: https://gerrit.libreoffice.org/48949
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2018-01-31 21:02:42 +01:00
Stephan Bergmann 697f01e052 SAL_W32 is just an alias for _WIN32
...so consistently use the latter instead of the former

Change-Id: I144d5e7c472632f93b2258461510346bc85892d9
Reviewed-on: https://gerrit.libreoffice.org/48135
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-01-19 08:19:38 +01:00
Stephan Bergmann 9bd84cfb52 More loplugin:cstylecast: bridges
auto-rewrite with <https://gerrit.libreoffice.org/#/c/47798/> "Enable
loplugin:cstylecast for some more cases" plus
solenv/clang-format/reformat-formatted-files

Change-Id: I4d48f46fa64fe866081cd85c731a93b4bfcdf787
2018-01-12 20:28:57 +01:00
Noel Grandin 3af500580b loplugin:salcall fix functions
since cdecl is the default calling convention on Windows for
such functions, the annotation is redundant.

Change-Id: I1a85fa27e5ac65ce0e04a19bde74c90800ffaa2d
Reviewed-on: https://gerrit.libreoffice.org/46164
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-12-11 12:13:46 +01:00
Stephan Bergmann 3a511d3757 loplugin:includeform: bridges
Change-Id: Icad98d3153a5b1710c8c2a2d338ba0129e9ff208
2017-10-23 22:46:13 +02:00
Noel Grandin 87a9979c89 overload std::hash for OUString and OString
no need to explicitly specify it anymore

Change-Id: I6ad9259cce77201fdd75152533f5151aae83e9ec
Reviewed-on: https://gerrit.libreoffice.org/43567
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-10-23 08:15:35 +02:00
Stephan Bergmann 4ecc655587 Replace use of oslInterlockedCount with std::atomic in bridges
Change-Id: Iad47a01fd283345a2461eaaea50633bf840e5201
2017-08-28 15:47:32 +02:00
Noel Grandin d347c24036 convert std::map::insert to std::map::emplace
which is considerably less verbose

Change-Id: Ifa373e8eb09e39bd6c8d3578641610a6055a187b
Reviewed-on: https://gerrit.libreoffice.org/40978
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-08-11 12:38:32 +02:00
Noel Grandin 8256c13951 loplugin:comparisonwithconstant in bridges
Change-Id: I14983a829daf481e31eaa955b0756bda89b87ee1
Reviewed-on: https://gerrit.libreoffice.org/37940
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-05-23 11:57:29 +02:00
Jochen Nitschke 58ac61478a remove empty namespaces
Change-Id: I3eae0ecc1ffc5500d3c55abc6554822f5432a50a
Reviewed-on: https://gerrit.libreoffice.org/37173
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-05-03 09:10:21 +02:00
Noel Grandin 942b1f3fb9 fix shadow warning with latest clang
Change-Id: I0640d4e816ba73f900ad21d7603743e0e9695a70
error: declaration shadows a typedef in 'bridges::cpp_uno::shared::VtableFactory' [-Werror,-Wshadow]
Reviewed-on: https://gerrit.libreoffice.org/36127
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-04-05 09:47:35 +00:00
Tor Lillqvist 013d9789c7 Drop :: prefix from std in [a-b]*/
Change-Id: I0422aaf39bbce889c95ed9a81a0784cb03a1badd
Reviewed-on: https://gerrit.libreoffice.org/34320
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Tor Lillqvist <tml@collabora.com>
2017-02-15 21:50:23 +00:00