summaryrefslogtreecommitdiff
path: root/comphelper
AgeCommit message (Collapse)Author
2024-03-07tdf#159519 comphelper,package: do not store document without SHA256Michael Stahl
The problem is that on Windows 7 the password-encrypted documents are stored unencrypted, without any error message. This is due to defensive programming in OStorageHelper::CreatePackageEncryptionData(), which happily continues if creating the SHA256 hash fails, which is the one required for storing anything newer than ODF 1.1. Also, the poorly named ZipPackage::GetEncryptionKey() should check for consistency, the expectation is that either there's no encryption key (empty sequence), or the expected one is in the sequence. Creating the SHA256 uses the crypto::NSSInitializer component, which is in xsec_xmlsec.dll, which is linked to libxmlsec-mscng.dll, which is linked to Win32 bcrypt.dll, which doesn't have BCryptKeyDerivation on Windows 7; to reproduce elsewhere, rm instdir/program/libxsec_xmlsec.so (regression from commit 26bf26272bf525b59b4a4ce18b3ce14c1febfd7b and (due to revert) commit bfd479abf0d1d8ce36c3b0dcc6c824216f88a95b) Change-Id: I0b22e20f6d4d0b1a12ed7d99fac7b5243910f9ba Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163708 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit 58c31ded0264103769595a1b25739b0e8df571cd) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163750 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-02-07tdf#157042: Revert "re-apply "optimize ConfigurationProperty::get()""Xisco Fauli
This reverts commit 3a4a00a51acca8f9b5e775547abff0c4dc9144d7. it's causing https://crashreport.libreoffice.org/stats/signature/%3Cname%20omitted%3E in libreoffice-24-2 branch ( See https://bugs.documentfoundation.org/show_bug.cgi?id=157042#c36 ) In previous branches, it was reported as https://crashreport.libreoffice.org/stats/signature/void%20rtl::str::release%3C_rtl_uString%3E(_rtl_uString*) See comment in 7b46c77366fb3effd2de9bf5ba11ebd3c064974a "tdf#157042: Revert "re-apply "optimize ConfigurationProperty::get()"" Change-Id: I3481c05b12b422404a38f0be1fea1ea69ffd0e46 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163061 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-02-07check that rtl_random_getBytes() was successfulMichael Stahl
... everywhere it is used to generate material for encryption. Change-Id: Id3390376bb2f3a5fa1bbfd735850fce886ef7db2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162873 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit b85c2459ced6a41915dbaf567613fb5e244a0ada) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162890 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-01-02trace events: fix deadlock from non-recursive mutex.Michael Meeks
Release lock over s_pBufferFullCallback: #4 std::lock_guard<std::mutex>::lock_guard(std::mutex&) #5 comphelper::TraceEvent::getEventVectorAndClear() #6 0x00007f2367c61836 in comphelper::TraceEvent::getRecordingAndClear() #7 0x00007f236877263e in (anonymous namespace)::TraceEventDumper::flushRecordings() #8 0x00007f2367c60cb7 in comphelper::TraceEvent::addRecording(rtl::OUString const&) regression from: commit c2424341ed444647d979a69ae55268e96fad3d56 Date: Sun Jan 30 10:30:27 2022 +0100 comphelper : use std::mutex in traceevent Change-Id: Ic89d63d14f06d710937a4da759976ae308c9df45 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161329 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> (cherry picked from commit d7bbd8363e3a6856fb7039050b45a5ea0a626f29) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161551 Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2023-12-21tdf#158375: disable DDE when DisableActiveContent is setSarper Akdemir
Change-Id: I167f6ea5d740b5a53cd02a9b865e65ff980a8877 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160922 Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de> Tested-by: Jenkins (cherry picked from commit 21f8e08c60cde2599f45b9e02c2b7d0cead2f625) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161029 Reviewed-by: Sarper Akdemir <sarper.akdemir.extern@allotropia.de>
2023-12-07simplify and modernise ScopedBitmapAccessNoel Grandin
(*) Make all of it use a "Scoped" paradigm (*) pass by value, no need to allocate on heap (*) make all of the construction go via the *Access constructors, instead of it being some via the constructors and some via the Acquire*Access methods. (*) take the Bitmap& by const& in the constructor, so we can avoid doing const_cast in random places. Change-Id: Ie03a9145c0965980ee8df9a89b8714a425e18f74 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160293 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-11-29Extended loplugin:ostr: comphelperStephan Bergmann
Change-Id: I43baf9248f607b13720da4295eb2827b3f58b3f1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160126 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2023-11-28tdf#156648 Prevent LO from adding an empty event listenerMatt K
The problem is that an empty interface listener can be added in Basic, which then crashes when trying to fire an event on that listener. The fix is to check for the existence of the listener before adding to the list of listeners. Change-Id: I3205ec1e6cdad431f6297f2b7833295b9eb64b8e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159978 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-11-23tdf#158321 No error message when file doesn't existNoel Grandin
Revert "reduce allocations in InterceptedInteraction" This reverts commit e3c961e6a3917d95534652e0f982918cc1079015. Change-Id: I26ba0acaa088dff1800ccd69513056f821bd4d7f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159762 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-11-20Extended loplugin:ostr: comphelperStephan Bergmann
Change-Id: I338c3c263e940bbe6071827b2e19763b7dadc2e9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159723 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-11-10avoid unnecessary intermediate bufferNoel Grandin
and make it more obvious that we are doing recursive stuff here Change-Id: I00209e0123eaacb015484949700ea0c983278fbb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159285 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-11-10reduce noise in exceptionToStringImplNoel Grandin
otherwise we end up with log messages like wrapped: void message: "at C:/cygwin/home/tdf/lode/jenkins/workspace/gerrit_windows/comphelper/source/misc/diagnose_ex.cxx:66" when we call ourself to print out sub-exceptions Change-Id: I9e598a6b68469e9baa3232811f310b7e24f1b77e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159284 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-11-02'new Double' is deprecated in JavaNoel Grandin
replace with Double.valueOf Change-Id: If5be8e500e31ebf9d5fb20ea7dd474677d7c74ff Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158785 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-10-26cool#6893 cache the process component contextNoel Grandin
which we look up rather a lot Change-Id: Ie8bcf161a1d7a299a404f749cf08a13f33f7f1cc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158506 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-10-19Extended loplugin:ostr: Automatic rewrite O[U]StringLiteral: comphelperStephan Bergmann
Change-Id: I2a422f921739adf81131082d57ab7601dfb46d8e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158147 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-10-15Repurpose loplugin:stringstatic for O[U]String vars that can be constexprStephan Bergmann
...now that warning about O[U]String vars that could be O[U]StringLiteral is no longer useful Change-Id: I389e72038171f28482049b41f6224257dd11f452 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157992 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-10-11Drop o3tl::span, can use C++20 std::span directly nowStephan Bergmann
Change-Id: Ic21ff7bf48f07f7277979d52e99d2c5c268de83f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157825 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-10-07loplugin:ostr: automatic rewriteStephan Bergmann
Change-Id: I2d09b2b83e1b50493ec88d0b2c323a83c0c86395 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157647 Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Tested-by: Jenkins
2023-10-03replace ErrorInfo with simpler mechanismNoel Grandin
Instead of returning ErrCode class everywhere, return a new class ErrrCodeMsg, which combines an ErrCode with the other parameters that are used to control the error reporting. I do not change everything that uses ErrCode here, I started from SfxBaseController/SfxMedium and worked outwards. This change serves two purposes (1) Replace the extremely whacky ErrorInfo mechanism we were using to smuggle information into the error handler reporting mechanism with a very straightforward approach of just combining it into the error class. (2) Allow us to capture the source location that produced the error, which makes debugging the source of a problem soooo much easier. Change-Id: I978b8f00c9851b41a216c7ebdef2ef94251d5519 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157440 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-10-02reduce allocations in InterceptedInteractionNoel Grandin
the list of intercepted interactions is static per sub-class, so just pass up a o3tl::span at constructor time. Change-Id: Ib45c5a3338e0eb3848486dfc707052f07492eb61 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157480 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-09-22tdf#146619 Recheck include/c* with IWYUGabor Kelemen
Change-Id: I0cf6f675483bddf82e7347b484a874c71963bfd7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156984 Tested-by: Jenkins Reviewed-by: Gabor Kelemen <kelemeng@ubuntu.com>
2023-09-13loplugin:unodispose in comphelperNoel Grandin
Change-Id: I0f23916204fd6d96b2b1641effe693cb0764f630 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156848 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-09-10EnumerableMap does not need to implement XAggreggationNoel Grandin
Checked on jenkins using 'make check' and +void SAL_CALL setDelegator(css::uno::Reference<css::uno::XInterface> const &) final { assert(false); } Change-Id: I98b05a5bc83e3a747ffc45909ca3de4969d4e187 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156797 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-09-10GenericPropertySet does not need to implement XAggreggationNoel Grandin
Checked on jenkins using 'make check' and +void SAL_CALL setDelegator(css::uno::Reference<css::uno::XInterface> const &) final { assert(false); } Change-Id: I64f260f659f49f50f5bdaebaa9bc1cf9c67ffc21 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156796 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-09-06tdf#156683 a11y: Handle both disposing variants in context wrapperMichael Weghorn
commit db0044242a897e447988169630ff74e4c8bfecf9 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Wed Sep 6 09:12:23 2023 +0200 tdf#156683 a11y: Forward when wrapped a11y context is disposing switched from overriding `disposing()` to overriding `disposing(const css::lang::EventObject&)` in `OAccessibleContextWrapperHelper` in order to make sure that the corresponding entry in the `AccessibleEventNotifier` client map is removed and event listeners for the wrapper get notified (via `AccessibleEventNotifier::revokeClientNotifyDisposing`) when the wrapped object is disposing. As Noel points out in [1], the `disposing()` case should probably still be overriden/handled and make sure that the wrapped object etc. get disposed, so disposing one object via the other works both ways. (If the wrapped object is disposed, so is the wrapper. If the wrapper gets disposed, so is the wrapped object.) Therefore, add back `OAccessibleContextWrapper::disposing()` and extract the logic to a separate helper method that is called from both `disposing` variants. [1] https://gerrit.libreoffice.org/c/core/+/156592/comments/bb7c24bc_94033649 Change-Id: If15fd1839b222ad94fcbc569842dc43b517d3574 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156620 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-09-06tdf#156683 a11y: Forward when wrapped a11y context is disposingMichael Weghorn
`OAccessibleContextWrapper` wraps an `XAccessibleContext` held in the `m_xInnerContext` member and forwards calls to its own methods to that one. The lifecycle of the wrapper should match that of the wrapped context, so handle when the wrapped context is disposing by overriding `XAccessibleContext::disposing` (that takes a `css::lang::EventObject&` parameter) instead of overriding `WeakComponentImplHelperBase::disposing` (the `disposing` method not taking a param) that's meant to be called when/right before the object itself gets disposed (but wasn't called at all e.g. for the `OToolBoxWindowItemContext` case in tdf#156683). This makes sure that the corresponding entry in the `AccessibleEventNotifier` client map is removed and event listeners for the wrapper get notified (via `AccessibleEventNotifier::revokeClientNotifyDisposing`) when the wrapped object is disposing and fixes the tdf#156683 crash on exit with gtk3 observed in the libreoffice-7-6 branch: /usr/include/c++/13/debug/vector:450: In function: std::debug::vector<_Tp, _Allocator>::const_reference std:: debug::vector<_Tp, _Allocator>::operator[](size_type) const [with _Tp = com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>; _Allocator = std::allocator<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener> >; const_reference = const com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>&; size_type = long unsigned int] Error: attempt to subscript container with out-of-bounds index 0, but container only holds 0 elements. Objects involved in the operation: sequence "this" @ 0x561465d8e510 { type = std::debug::vector<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>, std::allocator<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener> > >; } warn:desktop:197113:197113:desktop/source/app/crashreport.cxx:61: minidump generated: /home/michi/development/git/libreoffice-WORKTREE/instdir/program/../program/../crash//e338ad13-2338-4cd0-8d5c069d-c28f5cf5.dmp Backtrace: 1 comphelper::OInterfaceContainerHelper4<com::sun::star::accessibility::XAccessibleEventListener>::disposeAndClear interfacecontainer4.hxx 397 0x7f2c39915cdc 2 comphelper::AccessibleEventNotifier::revokeClientNotifyDisposing accessibleeventnotifier.cxx 204 0x7f2c39913c75 3 comphelper::OAccessibleContextWrapper::disposing accessiblewrapper.cxx 610 0x7f2c3992f033 4 cppu::WeakComponentImplHelperBase::dispose implbase.cxx 104 0x7f2c3947491b 5 cppu::PartialWeakComponentImplHelper<com::sun::star::accessibility::XAccessibleEventBroadcaster, com::sun::star::accessibility::XAccessibleContext>::dispose compbase.hxx 90 0x7f2bf8b31c70 6 cppu::WeakComponentImplHelperBase::release implbase.cxx 79 0x7f2c39474664 7 cppu::PartialWeakComponentImplHelper<com::sun::star::accessibility::XAccessibleEventBroadcaster, com::sun::star::accessibility::XAccessibleContext>::release compbase.hxx 86 0x7f2c3993133c 8 comphelper::OAccessibleContextWrapper::release accessiblewrapper.cxx 475 0x7f2c3992e536 9 com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleContext>::clear Reference.hxx 231 0x7f2c26929685 10 atk_object_wrapper_dispose atkwrapper.cxx 1074 0x7f2c26928a2e 11 atk_object_wrapper_finalize atkwrapper.cxx 670 0x7f2c26927677 12 g_object_unref 0x7f2c3418c48c 13 AtkListener::~AtkListener atklistener.cxx 57 0x7f2c26900547 14 AtkListener::~AtkListener atklistener.cxx 58 0x7f2c2690057e 15 cppu::OWeakObject::release weak.cxx 230 0x7f2c39556056 16 cppu::WeakImplHelper<com::sun::star::accessibility::XAccessibleEventListener>::release implbase.hxx 115 0x7f2c2690a92e 17 com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>::~Reference Reference.hxx 114 0x7f2c39921b9f 18 std::_Destroy<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener>> stl_construct.h 151 0x7f2c399217af 19 std::_Destroy_aux<false>::__destroy<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener> *> stl_construct.h 163 0x7f2c39920bd5 20 std::_Destroy<com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEventListener> *> stl_construct.h 196 0x7f2c3991f10b ... <More> Reverse-debugging to the start of `atk_object_wrapper_dispose` (s. frame 10 above), shows that the the `mpContext` is`: uno::Reference to ((anonymous namespace)::OToolBoxWindowItemContext *) 0x5637df79f1b8 Also, call the base class implementation of the same method, i.e. `OAccessibleContextWrapperHelper::disposing` instead of directly disposing via `OAccessibleContextWrapperHelper::dispose`. The former will call `dispose` via its base class implementation if it hasn't been disposed yet, s. `OComponentProxyAggregationHelper::disposing`. Change-Id: Ief66ffbe075af40f10c5fafa62063bda55f66b2f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156610 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2023-09-06a11y: Just use std::map::clearMichael Weghorn
... instead of creating an empty map and calling `std::map::swap`. Change-Id: Ieb53cc1a75d1e52452987ad234562d175f762ad0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156582 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2023-08-31tdf#156967 cal basic, CSV import macro crashesNoel Grandin
regression from commit ba4191ff0de05334ba32b53a09ad992710f03f9d Author: Noel Grandin <noelgrandin@gmail.com> Date: Mon Jan 30 21:48:53 2023 +0200 osl::Mutex->std::mutex in ImplEventAttacherManager Change-Id: I1557d9b6f66628fae1f466198ac4a8961e85e5bb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156337 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-08-30tdf#156835 - FILEOPEN XLSX: add SHA-384 encryption support for ooxml importBalazs Varga
Password protected file with SHA-384 encryption does not open before this patch. Change-Id: I482233f788b8e9da210ad6d2a6c4ece18d05d248 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156282 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>
2023-08-25Revert "use more Reference::query instead of UNO_QUERY_THROW"Noel Grandin
This reverts commit 7fc6063914432d58d86cfcbd728d967e7c86ebfd. sberg noticed that there is a difference now: there's a subtle difference now, in that if y was null originally, it would have thrown a (caught) exception, whereas now it will crash in the y.query<X>() call. Change-Id: Idbb5a08d635d15b5ca63f4822eddf05fb0a5afa0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156002 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-08-19loplugin: new global analysis locking2Noel Grandin
look for methods where we don't need to guard access to the field, because the field is never modified Change-Id: I62c33cc3f52881557515765d3733c4afc78547aa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155836 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-08-18use more Reference::query instead of UNO_QUERY_THROWNoel Grandin
since querying with exceptions is consideably more expensive Change-Id: I968a9a40766b2abb0d3058549b0ed44011fd5716 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155791 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-07-22Simplify a bit construction of AccessibleEventObject objectJulien Nabet
Change-Id: I0012de655d2ea24c822cf10828e7a31fa2e535ad Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154754 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Jenkins
2023-07-17Simplify a bitMike Kaganski
Change-Id: Iaf09fd3ad3587cdd7079c70785cdee6ea52b247e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154531 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-07-04loplugin:constantparamNoel Grandin
Change-Id: Iee554baae7239c9bf0ac35cab6ff235a88dc29a1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153973 Tested-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-07-02loplugin:singlevalfieldsNoel Grandin
Change-Id: I091fac5ed41b2fb58dee5e3e1b8dd805c8dc4966 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153813 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-06-26new loplugin:constexprliteralNoel Grandin
OUStringLiteral should be declared constexpr, to enforce that it is initialised at compile-time and not runtime. This seems to make a different at least on Visual Studio Change-Id: I1698f5fa22ddb480347c2f4d444530c2e0e88d92 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153499 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-05-26replace find_if by none_ofDr. David Alan Gilbert
A set of cases where find_if is used just to test if there are no matches; use none_of as per tdf#153109 Change-Id: I6c705ab7a8289914743199722a444ee40d11d746 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152200 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-05-25merge some stringaddsNoel Grandin
found with a lightly tweaked version of the loplugin:stringadd and some hand-holding. Change-Id: I146aadcaf665e98fea89a9cad2df4dc3935622f4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152275 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-05-24Remove unused comphelper::adjustIndexToStartOfSurrogateStephan Bergmann
...introduced in 28cc0bff10f5dcec0c7b698ae7ba275845b2cad1 "Break comphelper::adjustIndexToStartOfSurrogate out of o3tl::iterateCodePoints" in preparation for bd5c3582581f37513f45b518e348f443d5d57334 "a11y: Fix returning unpaired surrogates when retrieving characters", but which never picked it up Change-Id: I5a10a3053d2f51333e27b74a808a41df7c1912ba Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152183 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-05-23a11y: Fix returning unpaired surrogates when retrieving charactersColomban Wendling
Fix implementations of XAccessibleText's getTextAtIndex(), getTextBeforeIndex() and getTextBehindIndex() when called with AccessibleTextType::CHARACTER to return the whole code point rather than an unpaired surrogate. This is still not perfect because XAccessibleText::getCharacterCount() will return an incorrect value (code units rather than code points), but it fixes the most useful case of retrieving the character at e.g. the caret offset. This fixes the GTK3 and Windows backends as well without further changes. Qt6 also mostly works according to Michael Weghorn, but for a bug on Qt's side (https://bugreports.qt.io/browse/QTBUG-113438). MacOS backend doesn't seem to be affected in the first place. Change-Id: I53f07bcba78c6b267939257542a521b106101e96 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151303 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2023-05-23tdf#155235 workaround gtk3 accessiblibility crashes on closeNoel Grandin
we are still working around the problem here, which is that various bit are not firing accessibility events when their children change. So clear the static map in comphelper on shutdown, to prevent crashes resulting from objects being kept alive after vcl has shutdown Change-Id: I3ae216b345a1bb4cb4e3fde3527e4d4aa5968f76 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152161 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-05-22improve logging when we get an exception in copyPropertiesNoel Grandin
Change-Id: Id37ad92df93667536efaac86db3765da98847184 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152086 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-05-19loplugin:virtualdeadNoel Grandin
Change-Id: I089fd6b9281cc35768462e83a7e18588f357df4e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152003 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-05-18tdf#63130 reduce large memory copies when reading from BinaryDataContainerNoel Grandin
rather than writing a bunch more code, extract the common part from comphelper::SequenceInputStream into a new base class Change-Id: I0d3561e3ca2e748b904128e3b5955e27196d7170 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151943 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-05-10re-enable typeid checking in exceptionToStringImplNoel Grandin
now that we have valid RTTI tables for the UNO proxy objects generated by the bridge code. (We won't get a useful typeid for them, but for all other objects, we will, so this is still worth doing) Change-Id: I32bfa0099a242021f353fc4065e8660eb6c7cd93 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151585 Tested-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-05-09comphelper/servicedecl.hxx is unusedNoel Grandin
Change-Id: I3ddb06a31c746bfd7da72368a51266d688b1230b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151570 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-05-07improve some usage of OInterfaceIteratorHelper4Noel Grandin
we can drop the lock immediately after construction (since the iterator holds a thread-safe COW link to the underlying listener container) Change-Id: I08f8fa9ed7393747938572097f3c25f5f3f847fa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151440 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-05-06update loplugin:stringview* for o3tl::iterateCodePointsNoel Grandin
And change o3tl::iterateCodePoints to use sal_Int32 for its second param, to integrate better with places where the parameter comes from an UNO API, which cannot use std::size_t Change-Id: I7b9dd2c9bc7f48e6c4a912f039f1b5dae7beae69 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151421 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-05-05tdf#155149 Crash when exiting cell edit modeNoel Grandin
regression from commit 2dc240a82646fc23c673a6fd5a29ade934dd5b67 Author: Noel Grandin <noel.grandin@collabora.co.uk> Date: Tue May 2 14:47:43 2023 +0200 improve AccessibleEventNotifier::addEvent and commit 3b7db802731826b6cc3b55100470b0c61c1f2dfa Author: Noel Grandin <noel.grandin@collabora.co.uk> Date: Thu May 4 10:06:14 2023 +0200 tdf#105404 [API CHANGE] add index to accessiblity change event (*) Send better index hints (*) Error check the index hints better (*) Convert asserts to warnings and fall back to old code when index hint is wrong. Change-Id: I8e752fc26e729c9c8926beb2c7b196f5418a147e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151419 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>