Commit Graph
3258 Commits
Author SHA1 Message Date
Stephan Bergmann 3289b1609e Adapt compilerplugins to Clang baseline bump
...as of e8fd52037a "Update README.md after Clang
bump to 18"

Change-Id: I2512205aa22ade1da17c414066a4f9e3d82bc99e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195099
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@collabora.com>
2025-12-07 16:46:58 +01:00
Stephan Bergmann fab0a9be45 Remove unused included
...that d1a2b80b9d "Bump compiler plugins Clang
baseline to 12.0.1" forgot

Change-Id: I87f2282ea076e66cb211b097dca4f0b86aecce68
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195098
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@collabora.com>
2025-12-07 16:46:46 +01:00
Noel Grandin 4e2b089020 loplugin:stringloop
resurrect the plugin and run it over the codebase

Change-Id: I443a75961124aabd1e62b3c4bc166d52e4621b52
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194870
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
2025-12-01 14:25:01 +01:00
Noel Grandin c2a0e06b63 new loplugin:stringplusequal
which simplifies O[U]String expressions like
   A = A + foo
into
   A += foo

mostly because then they get spotted by other string plugins.

Change-Id: I2b81b701144acdf18743b52cb0befa7f90fd9528
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194191
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-11-20 07:26:33 +01:00
Christopher Sherlock 955ac3cc32 vcl: extract PDFPage and utility functions to own files
This should whittle down this absolutely massive file and make it easier
to read and understand.

Change-Id: If2246b0b06ca5d1e9e92d45df2c8b3cfc1628178
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190883
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Tested-by: Jenkins
2025-11-06 14:26:54 +01:00
Noel Grandin 82f055e5cb new loplugin:narrow
inspired by
    commit 4888f6f3f5
    Author: Neil Roberts <bpeeluk@yahoo.co.uk>
    Date:   Sun Oct 26 16:26:47 2025 +0100
    tdf#166488 Fix local variable used to store char from SvxCharacterMap

Look for places narrowing a sal_UCS4 value and thus losing information.

I dont actually fix anything here, just change some types to use the sal_UCS4 typedef,
and add some TODO comments.

Change-Id: Iaea7ba647889efcdaafe5138d4e4806849514f02
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193384
Tested-by: Jenkins
Reviewed-by: Neil Roberts <bpeeluk@yahoo.co.uk>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-11-05 15:02:41 +01:00
Caolán McNamara 8d6dc45416 cid#1659813 Division or modulo by float zero
in unused code, so lets just remove it

Change-Id: I95b3441dd9ae2efcc5fe3d93c37f3062c1bc8edb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193008
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2025-10-27 11:00:32 +01:00
Stephan Bergmann 390f378723 Remove atticized compilerplugins and their accompanying tests
(see the discussion starting in the comments at
<https://gerrit.libreoffice.org/c/core/+/136841/3#message-2d2ff562ccd80cf776f0b2068f028dd22a40e4e9>
"move old/unused plugins to store")

Change-Id: I9582e934c3224dd0a4c25d0574b47f9ee49ed611
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192554
Reviewed-by: Stephan Bergmann <stephan.bergmann@collabora.com>
Tested-by: Jenkins
2025-10-17 08:00:14 +02:00
Stephan Bergmann c1ab75b146 compilerplugins: Rename getOriginalDecl back to getDecl
...to match
<https://github.com/llvm/llvm-project/commit/b516dcc998d06c97d874af543489887f7e5a680c>
"[clang] NFC: rename TagType::getOriginalDecl back to getDecl (#163271)"

Change-Id: I11a6a261660cd3786dbb03acdf5e610e165a880e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192553
Reviewed-by: Stephan Bergmann <stephan.bergmann@collabora.com>
Tested-by: Jenkins
2025-10-17 07:58:58 +02:00
Noel Grandin 48531fbeb2 loplugin:unusedfields fix crash on assert
ignore AST that will trigger an assert inside clang

Change-Id: I6b5b1e91ac34fb54e152e007af0390e5e3affca7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191594
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-09-29 14:14:32 +02:00
Christopher Sherlock c4c93d1a3e vcl: pdfwriter_impl1.cxx and pdfwriter_impl2.cxx from gdi/ to pdf/ directory
Update clang plugin.

Change-Id: I0d862e8c08ef829d4f452108fec6176532af3ecb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190712
Tested-by: Julien Nabet <serval2412@yahoo.fr>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2025-09-29 09:36:45 +02:00
Mike Kaganski 641e8b1875 Drop loplugin:stringadd exclusion for pyuno_runtime.cxx
Change-Id: I362f4322fd0948b83272234e4fe52a957aea5f9e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191578
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2025-09-28 19:03:11 +02:00
Mike Kaganski 7ff6d60175 Drop loplugin:stringadd exclusion for svxacorr.cxx
Change-Id: I5fe854267738a9ab873c493effbac6bcfe70820c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191577
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
2025-09-28 14:11:10 +02:00
Stephan Bergmann c5c8e28959 Avoid some lopluign:unusedmember false positives
Change-Id: Iad8ff67ed9df8d242ff996b8a1082ad85b2e6dea
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191322
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@collabora.com>
2025-09-22 16:53:44 +02:00
Stephan Bergmann 0278766c5c Fix treatment of suppressedWarning in loplugin:unusedmember
Change-Id: I47af9f5e041abf850ad88908a74f1a1241e51d50
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191314
Reviewed-by: Stephan Bergmann <stephan.bergmann@collabora.com>
Tested-by: Jenkins
2025-09-22 14:59:04 +02:00
Mike Kaganski daded1002c Encapsulate buffer management in stringToDouble
Use a struct for that, and its 'insert' method, to avoid repeating code,
and make the logic more transparent.

Change-Id: I90fd4879e1b680ededc3aa4692fb6f59eeb5916c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191144
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
2025-09-20 12:44:28 +02:00
Stephan Bergmann b8a10164dc Adapt loplugin::nullptr to recent libstdc++ 16 trunk change
...<https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=d9a4c7158a70896c5d4281f42310e88c987acb3e>
"libstdc++: Rename __cmp_cat::__unspec to __cmp_cat::__literal_zero."

Change-Id: I8cac78bcfd9cf9c8a68f028d4b8ebc6ee7263129
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190685
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@collabora.com>
2025-09-09 21:49:10 +02:00
Noel Grandin 6d0e5ddede remove BitmapEx
all use-sites have been converted to Bitmap

Change-Id: I1a8842217a266eef100bd387ab013b004e532256
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190618
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
2025-09-05 19:45:45 +02:00
Stephan Bergmann 1e2977894f Adapt compilerplugins to recent LLVM 22 trunk change
...<https://github.com/llvm/llvm-project/commit/88438ba1f37fa4e0c2db203cd5556e52c9c34c08>
"[clang] AST: fix getAs canonicalization of leaf types (#155028)", which started
to cause

> [CPT] compilerplugins/clang/test/redundantfcast.cxx
> error: 'expected-error' diagnostics expected but not seen:
>   File compilerplugins/clang/test/redundantfcast.cxx Line 77 (directive at compilerplugins/clang/test/redundantfcast.cxx:78): redundant functional cast from 'const tools::Polygon' to 'tools::Polygon' in construct expression [loplugin:redundantfcast]
> error: 'expected-error' diagnostics seen but not expected:
>   File compilerplugins/clang/test/redundantfcast.cxx Line 77: redundant functional cast from 'const tools::Polygon' to 'tools::Polygon' [loplugin:redundantfcast]
>   File compilerplugins/clang/test/redundantfcast.cxx Line 221: redundant functional cast from 'const Primitive2DContainer' to 'Primitive2DContainer' [loplugin:redundantfcast]
> error: 'expected-note' diagnostics expected but not seen:
>   File compilerplugins/clang/test/redundantfcast.cxx Line 20: in call to method here [loplugin:redundantfcast]
>   File compilerplugins/clang/test/redundantfcast.cxx Line 27: in call to method here [loplugin:redundantfcast]
>   File compilerplugins/clang/test/redundantfcast.cxx Line 38: in call to method here [loplugin:redundantfcast]
> 6 errors generated.
> make[1]: *** [solenv/gbuild/LinkTarget.mk:338: workdir/CxxObject/compilerplugins/clang/test/redundantfcast.o] Error 1

Change-Id: I2538d419b7921d5617b03de646c83973184ee1ff
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190527
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@collabora.com>
2025-09-03 08:21:08 +02:00
Xisco Fauli 451745896d merge SdrUIObject with ImpressSdrObject
Change-Id: I30fa8ccb627f1cd083906bef3f787ac331896272
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190003
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2025-08-21 18:55:43 +02:00
Mike Kaganski a4072e2764 sd::tools -> sdtools
At least some IDEs are confused by our multitude of `tools` namespaces,
and show errors like `namespace "tools" is ambiguous`.
This removes one such namespace. The idea is to drop all but the one
in /tools (that has tools::Long and tools::Rectangle).

Change-Id: I338b995a29fcfa7142933c195750292593a364ac
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189959
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2025-08-20 15:23:53 +02:00
Mike Kaganski e5968decd4 sc::tools -> sctools
At least some IDEs are confused by our multitude of `tools` namespaces,
and show errors like `namespace "tools" is ambiguous`.
This removes one such namespace. The idea is to drop all but the one
in /tools (that has tools::Long and tools::Rectangle).

Change-Id: Ib404ba7c66085a01861cd62507a479e91aa68e49
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189953
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
2025-08-20 15:23:35 +02:00
Mike Kaganski 37e71212c7 vclcanvas::tools -> vclcanvastools
At least some IDEs are confused by our multitude of `tools` namespaces,
and show errors like `namespace "tools" is ambiguous`.
This removes one such namespace. The idea is to drop all but the one
in /tools (that has tools::Long and tools::Rectangle).

Change-Id: I75fc4835ec76dca698be1983dbc0a935b3f765eb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189949
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2025-08-20 15:23:18 +02:00
Mike Kaganski f9c16559a8 canvas::tools -> canvastools
At least some IDEs are confused by our multitude of `tools` namespaces,
and show errors like `namespace "tools" is ambiguous`.
This removes one such namespace. The idea is to drop all but the one
in /tools (that has tools::Long and tools::Rectangle).

Change-Id: I6077f50ad0fcc49abfadc75d9948ab63df829ff9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189948
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2025-08-20 15:23:07 +02:00
Caolán McNamara be6015e3c4 cid#1659971 silence Overflowed return value
and

cid#1659699 Overflowed return value
cid#1659759 Overflowed return value
cid#1659922 Overflowed return value
cid#1660190 Overflowed return value
cid#1660286 Overflowed return value
cid#1660457 Overflowed return value

Change-Id: Ie9fffe4994b10ed3d4feb14eaf7950e3f01714ef
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189927
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
2025-08-20 15:08:44 +02:00
Stephan Bergmann 060c1b69ef Adapt compilerplugins to recent LLVM 22 trunk change
...<https://github.com/llvm/llvm-project/commit/91cdd35008e9ab32dffb7e401cdd7313b3461892>
"[clang] Improve nested name specifier AST representation (#147835)".

For one, clang::TypeDecl::getTypeForDecl no longer works for TagDecls, so the
loplugin::TypeCheck ctor taking a TypeDecl started to fail at runtime.  So heed
the advice given in the comment to clang::TypeDecl::getTypeForDecl and instead
"ckeck out ASTContext::getTypeDeclType or one of...", which means that we now
need to transport a clang::ASTContext to all those places that want to create
such a loplugin::TypeCheck.

For another, clang::TagType::getDecl ("renamed to `getOriginalDecl`" for now) no
longer returns one dedicated Decl per type (so its results could be compared for
equality), so wrap that in compat::getDecl to do an additional getCanonicalDecl.
(But note how that requires an additional compat::getDefinitionOrSelf across the
various loplugins' isWarnUnusedType implementations, to check for any attributes
on the actual definitions rather than on whatever first declarations happen to
be considered the canonical decls.)

And the visitor's TraverseDecltypeTypeLoc takes an additional bool
TraverseQualifier parameter now, so adapt the sharedvisitor machinery
accordingly.

Plus some bespoke fixes across various loplugins.

loplugin:indentation is hit by
<https://github.com/llvm/llvm-project/issues/153540> "Clang getBeginLoc of some
CXXConstructExpr has moved past namespace prefix" (which would cause false

> core/dbaccess/source/core/recovery/subcomponentrecovery.cxx:546:18: error: statement mis-aligned compared to neighbours  [loplugin:indentation]
>   546 |             rtl::Reference( new SubComponentLoader( xController, xDocDefinition ) );
>       |                  ^
> core/dbaccess/source/core/recovery/subcomponentrecovery.cxx:545:13: note: measured against this one [loplugin:indentation]
>   545 |             Reference< XController > xController( m_xDocumentUI, UNO_QUERY_THROW );
>       |             ^

etc.), so is disabled for Clang 22 for now, until that bug is fixed.

(Various diagnostics are slightly different now, leading to some more
expected-error-re variation in the tests.  And loplugin::refcounting no longer
duplicates its warnings, which is probably a feature and not a bug.)

Change-Id: I9fe152e47ee571ad57c7c57f0eaa9c10e620f03e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189694
Reviewed-by: Stephan Bergmann <stephan.bergmann@collabora.com>
Tested-by: Jenkins
2025-08-17 19:42:56 +02:00
Stephan Bergmann 6970bded4e Reduce loplugin:stringstatic false positives
(This was meant to address the

>     // [-loplugin:stringstatic] false positive: the initializer is not a constant expression
>     static const OUString path = comphelper::LibreOfficeKit::isActive()
>                                      ? utl::CreateTempURL(nullptr, true)
>                                      : GetStandardEmbeddedFontsRoot();

from 49509ba522 "LOK: Set up directory for
temporary embedded font files", but which has meanwhile been removed with
d5b0462581 "LOK: make sure to have trailing slash
in GetEmbeddedFontsRoot()", anyway.)

Change-Id: I97aa0f20502caa1ab4f6074a2b403e25add489a3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189671
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@collabora.com>
2025-08-15 16:39:02 +02:00
Mike Kaganski 49509ba522 LOK: Set up directory for temporary embedded font files
User profile is read-only in LOK.

Change-Id: Ie424cdfed36525a293226c601ed7bf349e0856b2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189641
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
2025-08-15 07:28:05 +02:00
Mike Kaganski e8d0ab587b EmbeddedFontsHelper -> EmbeddedFontsManager
It is not just a helper anymore, the rename reflects its function better.

Change-Id: I11bf130eb34ba90841b550ab2a1fd1b3d9831b72
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189350
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
2025-08-12 14:14:45 +02:00
Mike Kaganski 5c7000ac12 Deduplicate some code
Change-Id: I1e432c607563f26c8a0bc2a89201accdae263288
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188137
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2025-07-22 16:30:38 +02:00
Stephan Bergmann d0a492c296 Adapt to Clang 21 trunk isInjectedClassName change
<https://github.com/llvm/llvm-project/commit/c4cc3573d144831d2815433646ffcab62cc9ea40>
"[Clang][AST][NFC] (`RecordDecl` -> `CXXRecordDecl`)`::isInjectedClassName`
(#148195)"

Change-Id: I2807a9ca402e856d55e1803997c86821f5a69bfc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187839
Reviewed-by: Stephan Bergmann <stephan.bergmann@collabora.com>
Tested-by: Jenkins
2025-07-14 13:57:22 +02:00
Caolán McNamara c64c74b287 ensure aHTMLOptionTab is sorted at compile time
static_assert that its sorted instead of sorting at load time.

them it can be made constexpr

Change-Id: I85970c5db2cb3f1998449875d5837935b61ee3f1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187786
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2025-07-13 11:28:43 +02:00
Gabor Kelemen 314a36c21b [API CHANGE] Remove VCL/Settings, VCL/ConfigurableSettings
in order to simplify code.

The flexibility provided by the ConfigurableSettings template
is not really necessary for the simple settings VCL has

Drop this now that keys that actually used them are migrated
to VCL/VCLSettings

Change-Id: I39609cd5f0ccda7f451bc6457a42b05b585b9b10
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187007
Tested-by: Jenkins
Reviewed-by: Gabor Kelemen <gabor.kelemen.extern@allotropia.de>
2025-06-27 11:00:12 +02:00
Noel Grandin 43314d13e1 loplugin:singlevalfields update for new nodes in clang
Change-Id: Ie0619411097aab08507ed6addefca640da89f6e5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187040
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
2025-06-26 16:28:46 +02:00
Michael Weghorn e7e3a51c32 a11y: Rename OAccessible source and header file
Rename files accordingly after the class
was renamed in previous commit

    Change-Id: I33210b47cda5f71820a3c0fa657e4c3548d45732
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Wed Jun 25 10:15:23 2025 +0200

        a11y: Rename OAccessibleComponentHelper to OAccessible

Change-Id: I1d38d124af685960c0170601e930da516ce2ead3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186953
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2025-06-26 13:09:50 +02:00
Noel Grandin 3b12495e48 loplugin:unusedfields update results
Change-Id: Ie3d42903f1bad50fe948a47d5ad115de1ded864c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186968
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-06-25 17:20:33 +02:00
Noel Grandin 7ed9c9b724 loplugin:unusedfields update results
Change-Id: If922c73df12422d0f102f3e64bdf0211a3d487c1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186670
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-06-18 22:04:09 +02:00
Noel Grandin 8c33382691 loplugin:unnecessaryvirtual
Change-Id: I721cf3175ab964ed7285a9f06c9b59219e08c044
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186667
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-06-18 19:25:31 +02:00
Vlad Ene cf1c25e542 tdf#147021 Use std::size() instead of SAL_N_ELEMENTS() macro
Signed-off-by: Vlad Ene <enevlad10@gmail.com>
Change-Id: I1b7e68e6ff8297cbd5f9cadc301161db629123f4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185428
Tested-by: Jenkins
Reviewed-by: David Gilbert <freedesktop@treblig.org>
2025-05-29 23:03:23 +02:00
Noel Grandin 4b61dffd1d loplugin:unusedmethods
and trim out some of the noise from the reports

Change-Id: Ib99a044049a7715978ef58718d2518bde23b8fe6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185958
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-05-28 16:49:14 +02:00
Noel Grandin 4a3e4283c1 loplugin:unusedfields
Change-Id: I52a47047723bcddf8528273a081c78cef9f153c1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185957
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
2025-05-28 15:50:03 +02:00
Caolán McNamara 0bf0a1e36d drop unused vcl::TranslateChar
and its converter cache

Change-Id: Ib8ca08b7b8693cd92a576786e327ff7e63486920
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185787
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2025-05-26 13:03:17 +02:00
Mike Kaganski 374dd9fbd6 Unify on VclPtr::reset
We used to have two duplicating sets: smart pointer-like VclPtr::reset,
and Reference-style VclPtr::set / VclPtr::clear. There is no need in
this duplication. Further, in ScopedVclPtr, reset is hidden / removed
to avoid skipping disposeAndClear; but the twin functions are kept
accessible, possibly as an overlook.

This change drops Reference-style VclPtr::set / VclPtr::clear, and
unifies on VclPtr::reset, which looks more consistent with the class
nature (it is closer to shared_ptr, than to uno::Reference). Doing
that uncovered one place, where a ScopedVclPtr was used incorrectly:
clear() was used for NotebookbarPopup::m_pParent in NotebookbarPopup
dtor. I assume then, that the correct class needed here is VclPtr.

Change-Id: I0746075c58d793fabdce1bc357afea8ee455cd8a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185553
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
2025-05-25 11:23:18 +02:00
Michael Weghorn ec41ec4e96 a11y: Move OAccessibleWrapper etc. to svx
OAccessibleWrapper and a couple of related classes
is only used by AccessibleControlShape inside svx,
so move it there from comphelper.

Use the same "accessibility" namespace as other
classes there.

Those classes used to be used elsewhere as well before

    commit 39e0bdb686
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Mon Mar 3 17:42:03 2025 +0100

        tdf#163989 vcl a11y: Rework toolbar item window a11y

Change-Id: Ie56357d943084b34f202510b13e8bb17e07bc125
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185639
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2025-05-22 08:55:58 +02:00
Michael Weghorn c854f5aaae vcl: Move RoadmapWizardMachine to own source file
Don't intersperse the method implementations of the weld::Widget
based RoadmapWizardMachine with those for the vcl::Window based
RoadmapWizard, but move the RoadmapWizardMachine ones to a separate
source file, to make the distinction clearer.

Also rename the roadmapwizard.hxx header to roadmapwizardmachine.hxx
accordingly, as it contains the declaration of the RoadmapWizardMachine
class whose method implementatons are now in the new source file
called roadmapwizardmachine.cxx.

Change-Id: I4aa2933c496c0a26a70ef3027f45c87d1a0b61bc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185466
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2025-05-18 20:38:44 +02:00
Noel Grandin 5b1c01b508 loplugin:unnecessaryvirtual
Change-Id: I3db8e1d7b2dbd19a812070603d07e678dd90a80e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185405
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-05-16 17:32:26 +02:00
Stephan Bergmann 5b8f9514a3 Silence new Clang 21 trunk -Werror,-Wunnecessary-virtual-specifier
...in CompilerTest_compilerplugins_clang,

> [CPT] compilerplugins/clang/test/fragiledestructor.cxx
> error: 'expected-error' diagnostics expected but not seen:
>   File compilerplugins/clang/test/fragiledestructor.cxx Line 26 (directive at compilerplugins/clang/test/fragiledestructor.cxx:27): calling virtual method from destructor, either make the virtual method final, or make this class final [loplugin:fragiledestructor]
>   File compilerplugins/clang/test/fragiledestructor.cxx Line 53 (directive at compilerplugins/clang/test/fragiledestructor.cxx:54): calling virtual method from destructor, either make the virtual method final, or make this class final [loplugin:fragiledestructor]
> error: 'expected-error' diagnostics seen but not expected:
>   File compilerplugins/clang/test/fragiledestructor.cxx Line 39: virtual method 'f' is inside a 'final' class and can never be overridden
> error: 'expected-note' diagnostics expected but not seen:
>   File compilerplugins/clang/test/fragiledestructor.cxx Line 28 (directive at compilerplugins/clang/test/fragiledestructor.cxx:29): callee method here [loplugin:fragiledestructor]
>   File compilerplugins/clang/test/fragiledestructor.cxx Line 48 (directive at compilerplugins/clang/test/fragiledestructor.cxx:49): callee method here [loplugin:fragiledestructor]

Change-Id: Ie6484149b902e217a54b7b9423627e608d349d15
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185221
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
Tested-by: Jenkins
2025-05-13 11:19:35 +02:00
Michael Weghorn 3701ae3d37 gen: Drop unused function declarations
These functions are only declared, but never defined/used.

Change-Id: I7997ef94c30b05a53e8ffabad14c420b8fb6edc6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185103
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2025-05-10 17:31:04 +02:00
Julien Nabet 871dc7bce1 tdf#165980: fix crash when launching help with "--with-help"
assertion:
5  0x00007f0f5578cf2a in ByteGrabber::ByteGrabber (this=0x558123967710, xIstream=uno::Reference to (chelp::XInputStream_impl *) 0x558124099a20)
   at /home/julien/lo/libo_perf/package/source/zipapi/ByteGrabber.cxx:44
6  0x00007f0f557a0793 in ZipFile::ZipFile
   (this=0x558123967640, aMutexHolder=empty rtl::Reference, xInput=uno::Reference to (chelp::XInputStream_impl *) 0x558124099a20, xContext=uno::Reference to (cppu::(anonymous namespace)::ComponentContext *) 0x558121aacc48, bInitialise=true, bForceRecovery=false, checks=ZipFile::Checks::Default) at /home/julien/lo/libo_perf/package/source/zipapi/ZipFile.cxx:90
7  0x00007f0f5580208d in std::_Construct<ZipFile, rtl::Reference<comphelper::RefCountedMutex>&, com::sun::star::uno::Reference<com::sun::star::io::XInputStream>&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&, bool, bool&, ZipFile::Checks> (__p=0x558123967640) at /usr/include/c++/14/bits/stl_construct.h:119
8  0x00007f0f557ffb2d in std::_Optional_payload_base<ZipFile>::_M_construct<rtl::Reference<comphelper::RefCountedMutex>&, com::sun::star::uno::Reference<com::sun::star::io::XInputStream>&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&, bool, bool&, ZipFile::Checks> (this=0x558123967640) at /usr/include/c++/14/optional:274
9  0x00007f0f557fd87d in std::_Optional_base_impl<ZipFile, std::_Optional_base<ZipFile, false, false> >::_M_construct<rtl::Reference<comphelper::RefCountedMutex>&, com::sun::star::uno::Reference<com::sun::star::io::XInputStream>&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&, bool, bool&, ZipFile::Checks> (this=0x558123967640) at /usr/include/c++/14/optional:455
10 0x00007f0f557f9186 in std::optional<ZipFile>::emplace<rtl::Reference<comphelper::RefCountedMutex>&, com::sun::star::uno::Reference<com::sun::star::io::XInputStream>&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&, bool, bool&, ZipFile::Checks> (this=0x558123967640) at /usr/include/c++/14/optional:916
11 0x00007f0f557e63f3 in ZipPackage::initialize (this=0x558123967510, aArguments=uno::Sequence of length 2 = {...}) at /home/julien/lo/libo_perf/package/source/zippackage/ZipPackage.cxx:893
12 0x00007f0f876d6b87 in cppuhelper::ServiceManager::Data::Implementation::doCreateInstanceWithArguments
   (this=0x558121b4fd80, context=uno::Reference to (cppu::(anonymous namespace)::ComponentContext *) 0x558121aacc48, arguments=uno::Sequence of length 2 = {...})
   at /home/julien/lo/libo_perf/cppuhelper/source/servicemanager.cxx:728
13 0x00007f0f876d6884 in cppuhelper::ServiceManager::Data::Implementation::createInstanceWithArguments
   (this=0x558121b4fd80, context=uno::Reference to (cppu::(anonymous namespace)::ComponentContext *) 0x558121aacc48, singletonRequest=false, arguments=uno::Sequence of length 2 = {...})
   at /home/julien/lo/libo_perf/cppuhelper/source/servicemanager.cxx:690
14 0x00007f0f876d9860 in cppuhelper::ServiceManager::createInstanceWithArgumentsAndContext
   (this=0x558121ab2c10, ServiceSpecifier="com.sun.star.packages.comp.ZipPackage", Arguments=uno::Sequence of length 2 = {...}, Context=uno::Reference to (cppu::(anonymous namespace)::ComponentContext *) 0x558121aacc48) at /home/julien/lo/libo_perf/cppuhelper/source/servicemanager.cxx:1015
15 0x00007f0f5552856d in chelp::Databases::jarFile (this=0x55812318ee80, rGuard=..., jar=u"shared.jar", Language="fr") at /home/julien/lo/libo_perf/xmlhelp/source/cxxhelp/provider/databases.cxx:842
16 0x00007f0f5552c519 in chelp::JarFileIterator::nextJarFile (this=0x7ffc4d067e80, rGuard=..., o_xParentPackageBundle=empty uno::Reference, o_pExtensionPath=0x0, o_pExtensionRegistryPath=0x0)
   at /home/julien/lo/libo_perf/xmlhelp/source/cxxhelp/provider/databases.cxx:1593

See almost full bt here:
https://bugs.documentfoundation.org/attachment.cgi?id=200590&action=edit

The way to retrieve the zip content (Jar is a zip) since the stream didn't implement comphelper::ByteReader.
Instead of changing XInputStream_impl to implement it, I thought it could be interesting to copy a bulletproof way
from by using ZipPackageHelper in unotools/source/misc/ZipPackageHelper.cxx

m_aZipFileTable is now completely useless (BTW compilerplugins/clang/unusedfields.writeonly.results already indicated
that the member was only written)

If if it works well, we could get rid of xmlhelp/source/cxxhelp/provider/inputstream.hxx and cxx associated.

Change-Id: Ie9c3b5808c835206830e87b129efcdf98ba505af
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184732
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
2025-04-30 13:40:13 +02:00
Noel Grandin fbe05bc89a loplugin:bufferadd extend it to find some more places
where we can simplify *StringBuffer usage

Change-Id: Ic2005b886b486a6627a43f8dcfba3258cb168921
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184428
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
2025-04-22 11:53:07 +02:00