summaryrefslogtreecommitdiff
path: root/binaryurp/source
AgeCommit message (Collapse)AuthorFilesLines
2024-02-04cid#1591493 Unchecked return valueCaolán McNamara1-1/+1
Change-Id: I0d39e142d3fd4100f68f1fff3f9d305aa1b59728 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162954 Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-01-27Drop std::as_const from css::uno::Sequence iterationsMike Kaganski1-1/+1
Obsoleted by commit 2484de6728bd11bb7949003d112f1ece2223c7a1 (Remove non-const Sequence::begin()/end() in internal code, 2021-10-15) and commit fb3c04bd1930eedacd406874e1a285d62bbf27d9 (Drop non-const Sequence::operator[] in internal code, 2021-11-05). Change-Id: Idbafef5d34c0d4771cbbf75b9db9712e504164cd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162640 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-11-18c++20: use std::erase instead of std::removed followed by erase (part 1)Julien Nabet1-1/+1
Change-Id: I8d038fc37a4de25bdeff2e2cc55775e3981240b7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159610 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-09-13Revert "loplugin:unodispose in binaryurp"Noel Grandin1-2/+0
This reverts commit 3d9f9b1b299251c5c28d74e951b4447193ad7ade. Reason for revert: comment from sberg: I'm not convinced that a general rule of "clear all references in dispose()" is a good idea. For example, in this class, access to connection_ and provider_ is not guarded against MT-races, on the basis that those two are never modified post construction. That is broken now. Also, e.g. Bridge::getDescription dereferences connection_, and benignly used to work fine even when called on a disposed instance. Now, it causes UB. Change-Id: I6039d5b1488146f09439312800ceb1de3cfcf0ba Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156878 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-09-13loplugin:unodispose in binaryurpNoel Grandin1-0/+2
Change-Id: Iab83b304ab7928dc4ca88a90f3184e2b2e7bf741 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156842 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-05-28Use getXWeak in binaryurpMike Kaganski2-13/+13
Change-Id: If1891fc180126aa5d5ac92772cbca9b485619f46 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150836 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-08-27cid#1500596 silence Resource leakCaolán McNamara1-0/+1
Change-Id: I4600c9cd0f7fdea698750ca416fc7f46dcebf23c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138928 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-08-27cid#1500523 silence Resource leakCaolán McNamara1-0/+1
Change-Id: I9c2d026cb71615ac3121f47e47a6b0b163e820f5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138925 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-06-16BridgeFactory should be a singletonNoel Grandin1-1/+1
regression from commit 9be078ae0d4cc4e4c01952bb42c9bb5943bbde86 Date: Sat Jul 4 09:12:35 2020 +0200 binaryurp: create instances with uno constructors Change-Id: Ib7a7316fdee4afffac35b282adaf437ff8bdd009 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135904 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-06-01The return value of XConnection::read is guaranteed to be non-negativeStephan Bergmann1-1/+1
...so use o3tl::make_unsigned when comparing it against an expression of unsigned integer type, instead of casting that expression to a signed type Change-Id: Id2bea3010bf67bdaeb0766b20baecba195bf0181 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135227 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-06-01The return value of those getLength functions is guaranteed to be non-negativeStephan Bergmann1-1/+2
...so use o3tl::make_unsigned when comparing it against an expression of unsigned integer type, instead of casting that expression to a signed type Change-Id: Ic47c6d96919b2aba2d16ce6d1a2a8e4c5761a480 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135219 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-05-23cid#1504543 Silence unhelpful, aggressive UNINIT_CTORStephan Bergmann1-0/+1
Change-Id: Ida0c1bfd34ee68968b22579492bce4b137fa8a93 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134749 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-05-23Adapt commentStephan Bergmann1-1/+1
...after 084b2b068ad6729775f7fa5965429fc5cc3c2ae3 "optimise Any::operator=(&&) a little" folded moveAnyInternals into its only remaining call site Change-Id: I2a9d8a775d601bc0307a3f3a5dfc139c571489ea Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134751 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-05-21clang-tidy modernize-pass-by-value in binaryurpNoel Grandin12-51/+57
Change-Id: I1570ed8ace3e1684ad228efbd8b13d2fe9b0f2af Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134706 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-05-09tdf#147021 Use std::size() instead of SAL_N_ELEMENTS() macroPragat Pandya1-1/+1
Change-Id: I54257e87da0cd66da59d820c7960c3e4b020fda3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134027 Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl> Tested-by: Jenkins
2022-03-25binaryurp: use more std::mutexArnaud Versini4-30/+30
Change-Id: I1d16c4cbf60e78323b74e7df049736bd0d0ab591 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132072 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-10-29Prepare for removal of non-const operator[] from Sequence in binaryurpMike Kaganski2-3/+4
Change-Id: Ibbe07a6de488461a99bb06d558cf740caa606bc9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124344 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-10-08loplugin:moveparam in binaryurpNoel Grandin9-28/+28
Change-Id: Ia69e2307872813ede3339c0e9fbe1f2ae6a3508a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123246 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-10clang:optin.performance.Padding in binaryurpNoel Grandin5-30/+20
Excessive padding in 'struct binaryurp::OutgoingRequest' (11 padding bytes, where 3 is optimal). Excessive padding in 'struct binaryurp::Writer::Item' (28 padding bytes, where 4 is optimal). Excessive padding in 'class binaryurp::IncomingRequest' (19 padding bytes, where 3 is optimal). Change-Id: I43ef9c513ad2bbb1151edbf5db578d69d35ccfbf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121919 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-03Consolidate on C++17 std::scoped_lock instead of std::lock_guardNoel Grandin1-3/+3
as in commit 9376f65a26240441bf9dd6ae1f69886dc9fa60fa 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-07-18binaryurp : use std::mutex in outgoingrequestsArnaud Versini2-7/+5
Change-Id: Ib0670af4596c5a40da27138d62b78df69bb77b9a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119121 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-06-07Revert "improve logging message"Noel Grandin1-2/+2
This reverts commit 9f0484c2bca8e7ec5e0d83289fae9b474b8598e0. Reason for revert: this patch was unnecessary, the operator<< for css::uno::Exception alreadys logs the message, I got confused Change-Id: I45932be060059eac92d460a70c944e1b19b5c375 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116706 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-06-07improve logging messageNoel Grandin1-2/+2
Change-Id: Ib8f4fdbe3d644c035a125f7ae0a035a95bcafc76 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116781 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-06-05Simplify Sequences initializations (accessibility/binaryurp)Julien Nabet1-2/+1
Change-Id: I4b388b7faa1dc47f27d29aaaff9041fe81a29f71 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116739 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2021-05-17small perf improvement in readMemberValuesNoel Grandin1-0/+2
Change-Id: I5d5973401a87b69dd54721d16ed19e227a6c2ac6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115674 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-05-02throw() -> noexcept, part 2/3: Automatic loplugin:noexcept rewriteStephan Bergmann7-31/+31
Change-Id: I076f16d0536b534abf0ced4d76051eadb4c0e033 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114949 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-03-10Drop 'static_cast<cppu::OWeakObject*>' syntactic noiseMike Kaganski1-1/+1
... where the object is created in-place, and its type is known Change-Id: Ifabfcf2f3ad0d60152f14e8d970c1faa42115288 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112256 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-02-16loplugin:referencecasting in basctl..binaryurpNoel1-1/+1
Change-Id: I3fbc287cf76e453e2c464837d2431ff19501fde3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110968 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-11-24loplugin:stringviewparam extend to comparison operatorsNoel2-2/+2
which means that some call sites have to change to use unicode string literals i.e. u"foo" instead of "foo" Change-Id: Ie51c3adf56d343dd1d1710777f9d2a43ee66221c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106125 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-11-13tdf#123936 Formatting files in module binaryurp with clang-formatPhilipp Hofer5-35/+45
Change-Id: If0965d1d1fa500d74bad16871f7036fe4bb6d869 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105647 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2020-11-05tdf#42949 Fix new IWYU warnings in directories [ab]*Gabor Kelemen1-2/+0
Found with bin/find-unneeded-includes Only removal proposals are dealt with here. Change-Id: Ib0008b9bb095f27e5e436d6b507dc709ab7bf01a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105313 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2020-09-04tdf#124176 Use #pragma once in binaryurpGeorge Bateman18-72/+18
This commit was carried out by a Python script, source of which is at https://bugs.documentfoundation.org/show_bug.cgi?id=124176#c97. Change-Id: I7141f07eca2b8338be6bd6b24580256cda6ba092 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100129 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2020-07-05binaryurp: create instances with uno constructorsNoel Grandin3-46/+10
See tdf#74608 for motivation Change-Id: Ide39715f83b0183f560e16fa69fcb3112496936d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97933 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-06-30Upcoming improved loplugin:staticanonymous -> redundantstatic: binaryurpStephan Bergmann1-1/+1
Change-Id: I67340a41005d93d11686ed5f5d49bf6e4938f8c7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97523 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-06-25Rephrase commentStephan Bergmann1-3/+3
760980b0b510acac555f0c252fbaa10a4751bded "Fix typos" had, IMO incorrectly, removed one "that" from ..., so that that asynchronous request would... Lets rephrase the original comment in a less problematic way. Change-Id: Ic13ffaad43e2777eb36425363851b53f2f641865 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97087 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-06-25Fix typosAndrea Gelmini1-1/+1
Change-Id: I2bccc7beb2e9dfccd84b118a33a7aee9753a8be1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97040 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2020-06-23HACK to decouple URP release calls from all other threadsStephan Bergmann1-2/+19
Abandoned <b9ecec7c74687ed5a9470cffb7d02e0e6e83107e> "Don't call out to UNO with SolarMutex locked" documents a deadlock where a synchronous documentEventOccurred call made with SolarMutex locked evokes an asynchronous release call back (serviced on a different physical thread, but which blocks the original thread) that then wants to acquire the SolarMutex. While we usually appear to get away with wrapping those UNO calls in SolarMutexReleaser (though knowing all too well that that is nothing but a bad hack that may well cause crashes and deadlocks at least in theory), the place in SfxBaseModel::postEvent_Impl was obviously too sensitive for that hack: It did cause enough different crashes (e.g., hitting assert(pSchedulerData == pMostUrgent); in Scheduler::ProcessTaskScheduling, vcl/source/app/scheduler.cxx) and deadlocks (e.g., different threads now taking the SolarMutex and JobExecutor's mutex in framework/source/jobs/jobexecutor.cxx in different orders) to make me search for a different "fix", so I came up with this hack instead. Change-Id: Icd26926279cb86ce529edb4544a3ec0bc9a8b108 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96946 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-06-10Improve a SAL_WARN messageStephan Bergmann1-1/+2
Change-Id: I31f809e5f6fec109bd0fb58e8290323500d44f13 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96001 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-06-04Properly handle initial object queryInterface return valueStephan Bergmann1-1/+17
<https://wiki.openoffice.org/wiki/Uno/Remote/Specifications/Uno_Remote_Protocol# The_queryInterface_Message> specifies that this shall return an ANY either of type VOID (so handle that) or of type css.uno.XInterface with non-null value (so throw exceptions for any other kinds of return values). Various Linux Jenkins builds had recently started to sporadically fail during UITest_calc_demo, hitting the assert( type.get()->eTypeClass == typelib_TypeClass_ANY || type.equals(css::uno::TypeDescription(data_.pType))); in the call to binaryurp::BinaryAny::getValue (binaryurp/source/binaryany.cxx), e.g. <<https://ci.libreoffice.org/job/lo_tb_master_linux_dbg/29831/>. While it is unclear why those failures happen, they highlight that this code did not properly handle all possible (valid or invalid) input. Change-Id: I95db574aa102ff75fa22fd24c697a0cfa24b7aff Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95527 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-05-15use for-range on Sequence in basctl..canvasNoel Grandin1-3/+3
Change-Id: Idad3d8fbe785c7b1b8b287a3227372adb2757de8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94260 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-01-28tdf#42949 Add back includes to binaryurp/Gabor Kelemen2-0/+2
mistakenly identified by IWYU as unused Change-Id: Ia9fbce12883e5b45c6b6dfbc27046aca0075a895 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87566 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-01-28New loplugin:unsignedcompareStephan Bergmann1-1/+2
"Find explicit casts from signed to unsigned integer in comparison against unsigned integer, where the cast is presumably used to avoid warnings about signed vs. unsigned comparisons, and could thus be replaced with o3tl::make_unsigned for clairty." (compilerplugins/clang/unsignedcompare.cxx) o3tl::make_unsigned requires its argument to be non-negative, and there is a chance that some original code like static_cast<sal_uInt32>(n) >= c used the explicit cast to actually force a (potentially negative) value of sal_Int32 to be interpreted as an unsigned sal_uInt32, rather than using the cast to avoid a false "signed vs. unsigned comparison" warning in a case where n is known to be non-negative. It appears that restricting this plugin to non- equality comparisons (<, >, <=, >=) and excluding equality comparisons (==, !=) is a useful heuristic to avoid such false positives. The only remainging false positive I found was 0288c8ffecff4956a52b9147d441979941e8b87f "Rephrase cast from sal_Int32 to sal_uInt32". But which of course does not mean that there were no further false positivies that I missed. So this commit may accidentally introduce some false hits of the assert in o3tl::make_unsigned. At least, it passed a full (Linux ASan+UBSan --enable-dbgutil) `make check && make screenshot`. It is by design that o3tl::make_unsigned only accepts signed integer parameter types (and is not defined as a nop for unsigned ones), to avoid unnecessary uses which would in general be suspicious. But the STATIC_ARRAY_SELECT macro in include/oox/helper/helper.hxx is used with both signed and unsigned types, so needs a little oox::detail::make_unsigned helper function for now. (The ultimate fix being to get rid of the macro in the first place.) Change-Id: Ia4adc9f44c70ad1dfd608784cac39ee922c32175 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87556 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-01-27tdf#42949 Fix IWYU warnings in binaryurp/Gabor Kelemen8-17/+0
Found with bin/find-unneeded-includes Only removal proposals are dealt with here. Change-Id: I293036c7f6ab1af9b9b8736558c6d37124ec6d21 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87116 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2019-07-31Improved loplugin:stringconstant (now that GCC 7 supports it): binaryurpStephan Bergmann1-1/+1
Change-Id: Ia8ae32426b886fff7824612898b485d090ca51c6 Reviewed-on: https://gerrit.libreoffice.org/76694 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-06-11Use hasElements to check Sequence emptiness in accessibility..canvasArkadiy Illarionov1-1/+1
Similar to clang-tidy readability-container-size-empty Change-Id: I24c3f04b4eed3c1cd973166885660f113a26844f Reviewed-on: https://gerrit.libreoffice.org/71805 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-05-22New loplugin:dataStephan Bergmann2-8/+8
...following up on 1453c2c8f13bac64ecd1981af7cebf1c421808ac "prefer vector::data to &vector[0]" Change-Id: I7c113747d92d144a521d49b89384dd8bf1215c01 Reviewed-on: https://gerrit.libreoffice.org/72765 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-02-19Some uses of C++17 class template argument deductionStephan Bergmann1-2/+2
Change-Id: I47c469c0fcdff41d83729be9489c946e81ef3686 Reviewed-on: https://gerrit.libreoffice.org/68020 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-01-14Use C++17 nested namespace definitions (in binaryurp)Stephan Bergmann9-33/+15
Change-Id: I21594a9fec47ac4a0dd1b821a6b47ea468445c42 Reviewed-on: https://gerrit.libreoffice.org/66295 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-01-11tdf#112689:Replace chained O(U)StringBuffer::append() with operator+Furkan Ahmet Kara1-4/+2
Change-Id: Ieea40ab9cd15260b02222174b9ac389d8c9f387b Reviewed-on: https://gerrit.libreoffice.org/65746 Tested-by: Jenkins Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
2018-12-08Use [[maybe_unused]] instead of cast to voidStephan Bergmann1-2/+1
Change-Id: I1db02a4eff2d6f16bfb18bda2155d8a26c4a9335 Reviewed-on: https://gerrit.libreoffice.org/64814 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>