summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-10-19tdf#156333 Adding a tint/shade values to the modelVladislav Tarakanov
Before implementing text effects from the TextFill tag, their values must be directly saved in ComplexColor, without saving in GrabBag. To achieve this, DomainMapper has introduced separate processing of the LN_textFill_textFill tag using the new TextFillHandler class. TextFillHandler inherits from TextEffectsHandler. As a parameter in the constructor, it receives a reference to the ComplexColor to which changes will be added. This is done because some text effects (ThemeTint, ThemeShade) can be specified in the <color> tag, so TextFill must complement existing transformations. For the same reason, when processing LN_EG_RPrBase_color, the ComplexColor value is taken from the context if it was placed there previously. In docx export, existing "Tint" and "Shade" transformations are preserved only in <color ThemeTint=...> and <color ThemeShade=...>. Because the Tint and Shade values from TextFill must be distinguished from the values from color during export, the "Tint" and "Shade" transforms have been renamed to "ThemeTint" and "ThemeShade". Also added new "Tint" and "Shade" transformations, which are currently only saved in TextFill. Change-Id: I0ebba53eba83ccfc99fa812e60d6cebb2ff6bf0f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157979 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2024-10-19tdf#156505 sw: reset view options after export as graphicJustin Luth
When creating an export graphic, the view options are changed to hide hidden stuff, not show the formatting marks etc. However, the user's view settings were not being restored after the export was done. Change-Id: I3e236e5ef47eddca487621c92ec639f7bac073de Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175185 Tested-by: Jenkins Reviewed-by: Justin Luth <jluth@mail.com>
2024-10-19Windows/--disable-skia: fix D2DWriteTextOutRenderer to properly set AA modeMike Kaganski
This simplifies the process; in D2DWriteTextOutRenderer ctor, it uses the final mode for the call to CreateRenderTarget, applying the correct mode. Also, pass the AA flag from SalGraphics, and check the setting of GetUseFontAAFromSystem to use it, as done in e.g. CairoTextRender after commit e6538f5bdd876911ea30f84a6512c03908e620fd (tdf#118966 vcl: add a flag to determine if AA of fonts is used from the system, 2018-07-28). This fixes the failures on Windows with --disable-skia, as seen in https://lists.freedesktop.org/archives/libreoffice/2024-October/092541.html VclCjkTextTest::testVerticalText needed to be fixed by a tweak in getCharacterRightSideHeight, to use color's IsDark, instead of comparing to the fixed black, because the correct AA mode that is used now, makes the vertical part of the character not completely black. Change-Id: Iee8fe98e29a80a242f8e761c9a23c68b34a45699 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175188 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-10-19wina11y: Mention Accessibility Insights for Windows in READMEMichael Weghorn
... as a tool that can be useful for analysis/debugging. Change-Id: I310b04abfd3cacd403e2cfafc67f2471fa673c22 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175173 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2024-10-19tdf#130857 qt weld: Use native widgets for "Rename Sheet" dialog etc.Michael Weghorn
Add the .ui file used e.g. for the "Rename Sheet" dialog in Calc to the list of .ui files supported by QtInstanceBuilder. This means that a dialog using native Qt widgets gets used by the qt5/qt6 VCL plugins now when e.g. starting Calc, right-clicking the the tab for the current sheet at the bottom and selecting the "Rename Sheet" menu entry. Change-Id: Ie656e55cb2701596f6c6f1f7d395934eedf710fc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175183 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-10-19tdf#160982 wina11y: Drop extra screen reader check to enable a11y bridgeMichael Weghorn
When initializing the a11y bridge on Windows, no longer check whether the screen reader parameter `SPI_GETSCREENREADER` [1] is explicitly set or require to explicitly enable by setting an `SAL_FORCE_IACCESSIBLE2` environment variable. For performance reasons, it of course makes sense to only enable the a11y bridge when there is actually assistive technology that makes use of it. However, `ImplInitAccessBridge` already only gets called when either support for assistive technology has explicitly been enabled in the settings (i.e. in "Tools" -> "Options" -> "LibreOfficeDev" -> "Accessibility", the "Support assistive technology tools (restart required" checkbox was checked) or when a `WM_GETOBJECT` message is received, whose documentation says [2]: > Sent by both Microsoft Active Accessibility and Microsoft UI Automation > to obtain information about an accessible object contained in a server > application. > > Applications never send this message directly. Microsoft Active > Accessibility sends this message in response to calls to > AccessibleObjectFromPoint, AccessibleObjectFromEvent, or > AccessibleObjectFromWindow. However, server applications handle this > message. UI Automation sends this message in response to calls to > IUIAutomation::ElementFromHandle, ElementFromPoint, and > GetFocusedElement, and when handling events for which a client has > registered. Both of these cases (explicitly enabled, AT requests information) justify enabling the a11y bridge by themselves, so drop the extra check. Qt's UIA bridge for example also gets activated when a WM_GETOBJECT message is received [3]. This makes both, Microsoft Narrator (screen reader shipped with Windows, but which doesn't set the `SPI_GETSCREENREADER` parameter) and Microsoft Accessibility Insights for Windows (a tool for a11y analysis/debugging) work - at least to a certain degree - without having to explicitly set the environment variable `SAL_FORCE_IACCESSIBLE2`. While LibreOffice doesn't have a UIA bridge at this point in time, Windows provides an MSAA (IAccessible) to UIA proxy that provides some basic information via UIA at least, see [4]: > The LegacyIAccessible control pattern is supported by the Microsoft > Active Accessibility to Microsoft UI Automation Proxy. As expected, a breakpoint or assert in `ImplInitAccessBridge` only got hit in my testing when either an AT was active or the above-mentioned option was explicitly enabled, not otherwise when starting or using LO. [1] https://learn.microsoft.com/en-us/windows/win32/winauto/screen-reader-parameter [2] https://learn.microsoft.com/en-us/windows/win32/winauto/wm-getobject [3] https://code.qt.io/cgit/qt/qtbase.git/tree/src/plugins/platforms/windows/uiautomation/qwindowsuiaaccessibility.cpp?id=e9662a4b665144a5eca418925d331024ec71fa2c#n40 [4] https://learn.microsoft.com/en-us/windows/win32/winauto/uiauto-implementinglegacyiaccessible Change-Id: Iddafb149b50771412ba59972d0401bada6a9f680 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175172 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-10-19vcl: Use OUString literals in SalGetDesktopEnvironmentMichael Weghorn
Change-Id: Ibd28148772fcdc64a9fe6ebca38706c0445d38fd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175139 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-10-18tdf#163215: Enable kashida justification for AAT fontsJonathan Clark
Currently, we use HarfBuzz-provided kashida insertion position information to decide on positions to insert kashida. This data is used both while ranking kashida insertion positions, and to avoid inserting kashida in positions that would break shaping on a per-font basis. Unfortunately, HarfBuzz cannot validate kashida insertion positions for AAT fonts. As a result, kashida were previously not inserted for text using AAT fonts. This change updates kashida justification to skip validation against HarfBuzz when AAT fonts are used. Change-Id: If0d31512b1db0f1f8155963f9b1031eb01bacc45 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175165 Tested-by: Jenkins Reviewed-by: Jonathan Clark <jonathan@libreoffice.org>
2024-10-18tdf#163486: PVS: check mpViewShellXisco Fauli
V595 The 'mpViewShell' pointer was utilized before it was verified against nullptr. Check lines: 368, 380. Change-Id: I5e8d53d3503ade1814d7436e89f0f407f1d9ccfb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175164 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-10-18tdf#163486: PVS: Identical branchesBogdan Buzea
Change-Id: Ibe65f4eca6009e8be4355974cdf33b5cabbe03e5 V1037: Two or more case-branches perform the same actions. Check lines: 54, 60 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175144 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-10-18tdf#163486: PVS: The same value is assigned twiceXisco Fauli
V570 The same value is assigned twice to the 'pEntry' variable. Change-Id: I2c6a106f910a915065cdb3bc56a69e3873c3f3e4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175163 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-10-18tdf#163486: PVS: variable is assigned values twice successivelyXisco Fauli
V519 The 'eResult' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 1604, 1606. Change-Id: I1f778153539ac126f47d502958179c32d41a5a59 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175162 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-10-18tdf#163486: PVS: variable is assigned values twice successivelyXisco Fauli
V519 The 'bParserSuccess' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 1941, 1944. Change-Id: I4dac8d01533706a5423fd0d75e5ccdc0d3cf00c4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175161 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-10-18svtools a11y: Set underline/mnemonic char for "Restart" dialogMichael Weghorn
Set the "use-underline" property for the buttons in the "Restart %PRODUCTNAME" dialog and specify the accelerators. This way, the dialog can easily be closed using Alt+[accelerator] with the gtk3 and qt5/qt6 VCL plugin as well. Use those characters that the VCL logic was using as well. (The VCL implementation seems to have some way to auto-generate mnemonic characters if none is set automatically.) This dialog is e.g. seen when toggling experimental mode in "Tools" -> "Options" and closing the options dialog with the "OK" button. Change-Id: I50c3402fb89d5fbfc0e610c0e41f5f035cf0b0e1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175137 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-10-18tdf#130857 qt weld: Use native widgets for "Restart LO" dialogMichael Weghorn
Add the .ui file of the "Restart %PRODUCTNAME" dialog to the list of .ui files suported by QtInstanceBuilder. This means that a dialog using native Qt widgets gets used by the qt5/qt6 VCL plugins now when e.g. toggling experimental mode in "Tools" -> "Options" and closing the options dialog with the "OK" button. Change-Id: I617bcb4d0815aeae8a30d7765ff7b4c0cc6992e7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175136 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-10-18tdf#130857 qt weld: Leave dialog response codes unchangedMichael Weghorn
Don't call `qtResponseTypeToVclResponseType` to convert an alleged Qt response code to a VCL one in QtInstanceDialog::run. In fact, the return code is already the VCL one, see commit 08b55df5c9e42c1ccb78a156261811875629342a Author: Michael Weghorn <m.weghorn@posteo.de> Date: Sat Sep 28 00:32:15 2024 +0200 tdf#130857 qt weld: Close dialog on button click QDialog::Accepted and VCL's RET_OK both happen to be 1, so that mapping didn't have any effect, but everything else would be mapped to `RET_CANCEL` unconditionally. This wasn't a problem so far, most likely because the few non-message dialogs using native Qt widgets didn't use the response codes yet. For example, for the "Help" -> "License Information" dialog, only `RET_OK` is explicitly handled in `LicenseDialog::run` (sfx2/source/appl/appserv.cxx). Change-Id: If0a7cbf291ad94b21d6bbeecb9793b4afaa2c76d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175135 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2024-10-18tdf#130857 qt weld: Implement QtInstanceDialog::responseMichael Weghorn
Move the QtInstanceMessageDialog::response implementation down into the base class QtInstanceDialog and simplify a bit, and drop the override in QtInstanceMessageDialog. This will be needed e.g. by the svtools/uiconfig/ui/restartdialog.ui dialog shown when toggling experimental mode in "Tools" -> "Options" and closing the dialog with the "OK" button. Change-Id: I147ea68554725a9d3b6bea6f77b15e7754cc962b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175132 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-10-18vcl: Drop indirection via lcl_get_desktop_environmentMichael Weghorn
`lcl_get_desktop_environment` just calls `get_desktop_environment` and returns the result. Switch callers to use `get_desktop_environment` right away and drop `lcl_get_desktop_environment`. Change-Id: If18690a31c8b09631b3a1181e5eac3aad72a0037 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175138 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-10-18tdf#163486: PVS: It's odd that this function always returns one and the same ↵Mike Kaganski
value. The old implementation used a UB (signed integer overflow). Change-Id: I1d8222b261f0db49c48b38defa2b58bc4770aae4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175143 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-10-18tdf#163486: PVS: check can be simplifiedXisco Fauli
V728 An excessive check can be simplified. The '||' operator is surrounded by opposite expressions '!p3DProperties' and 'p3DProperties'. Change-Id: Iab3da21332f50a7414edff7283659106aa8d22e0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175134 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-10-18tdf#163486: PVS: redundant nullptr checkXisco Fauli
V668 There is no sense in testing the 'xExtra' pointer against null, as the memory was allocated using the 'new' operator. The exception will be generated in the case of memory allocation error. Change-Id: I1e0d02621808b7eda104d06afe8882f72da6d87f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175131 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-10-18tdf#163486: PVS: redundant nullptr checkXisco Fauli
V668 There is no sense in testing the 'xExtra' pointer against null, as the memory was allocated using the 'new' operator. The exception will be generated in the case of memory allocation error. Change-Id: Ie851b98f15eac9e7d8118fb919438fbd389cfbf1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175130 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Tested-by: Jenkins
2024-10-18tdf#163486: PVS: check GetMenu()Xisco Fauli
V595 The 'GetMenu()' pointer was utilized before it was verified against nullptr. Check lines: 1582, 1612. Change-Id: I085320d3a5467e4e2c158bf2683b3156cb103e8b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175125 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Tested-by: Jenkins
2024-10-18tdf#148526 sdext,pdfimport: Write clipToStrokePathDr. David Alan Gilbert
'clipToStrokePath' is a variant of 'clip' it sets up a clip to a path that's been stroked with whatever width the current pen is. Now that we have all the rest of the code in, we can start using it. This fixes the white blobs on page 3 of tdf#148526 which are clipped radial fills. It has a separate problem with text corruption which this doesn't fix. It also fixes the geometry of the top left square in: https://gitlab.freedesktop.org/poppler/poppler/-/issues/178 (although it still has colour problems with that test case) Change-Id: Ibe2c56927b45d44e90cfa2934fc905034a50e9c7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172927 Reviewed-by: David Gilbert <freedesktop@treblig.org> Tested-by: Jenkins
2024-10-18Log using LOK_WARN instead of std::cerrCaolán McNamara
Change-Id: I3a3cabd90154cb7293949d6a21f599417c364b9b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174370 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Attila Szűcs <attila.szucs@collabora.com> (cherry picked from commit 4baad2222e36fe2a71b2030b1a1292310821e104) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175123 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Jenkins
2024-10-18README: mention PVS-StudioXisco Fauli
Change-Id: I7116d28d1f94b1c8fe4f730b268411973de9a547 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175093 Tested-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-10-18tdf#143148: Use pragma once instead of include guardsMelvinYG
Change-Id: Id648d25e47034e209b291bf73ac4878226b4e755 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175105 Tested-by: Jenkins Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
2024-10-18scriptforge.pyi - Fix typoJean-Pierre Ledure
Change-Id: I993e30d3d228c639a69007a846b46f420f9297b3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175097 Tested-by: Jenkins Reviewed-by: Jean-Pierre Ledure <jp@ledure.be>
2024-10-18lok: enable transition repeat after x propertyJaviya Vivekkumar Dineshbhai
Change-Id: I61bd2ebaebfb19350aa3b3634f5877c0bfa05880 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171773 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2024-10-18SW: Transform DocStruct: Added Log warningsAttila Szűcs
Implemented warning loggings in case of transform charts or content controls. Change-Id: I77398ca5bf04f05743c99d63380a402c394739ca Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173689 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> (cherry picked from commit d679849aca883c1a42d3bcee61b3bee5e3bbc6dc) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175122 Tested-by: Jenkins
2024-10-18SW: extract transform charts (using dialog code)Attila Szűcs
Implemented chart data extraction, and transformation added insert/delete/modify row/column, and the ability to set resize data table setcolumndesc / setrowdesc .. for 1 descriptor, or with multiple descriptor to set set 1 cell value, or set the whole table cells values. it will resize the table, but you can still use partial arrays like "data": [ [ 1,2,3,4 ], [ 2,3,4,5 ], [ 3 ], [ 4,5,6,7 ], [ 2,2,1 ], [ 5,6,7,8 ] ], that means the 3. row 2,3,4th cell will not be overwritten. for insert column, it call codes from DataBrowserModel. (used by dialog code) added tests, fixed a contentcontrol date problem 2. commit (made by Caolan) squashed into 1. commit: WIP hack this to link move stuff from chartcontroller to chartcore and adjust visibility until it links at least Change-Id: I5529f4da33f046eef7e947d755e29486fa966274 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172849 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175121 Tested-by: Jenkins
2024-10-18tdf#163486: PVS: recurring checkXisco Fauli
V571 Recurring check. The 'pData' condition was already verified in line 795. Change-Id: I0aebea88938a2e23bb1eb7c9f4e836b013f5664e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175124 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-10-18change misleading var prefixCaolán McNamara
Change-Id: I0e59d51cbbb7b9d7481d028fb0c682e108b0e7d2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175118 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Jenkins
2024-10-18Avoid deadlockMike Kaganski
As seen in the following call stacks: Main thread sal3!osl_acquireMutex+0x49 [libre-office-git-repo\sal\osl\w32\mutex.cxx @ 65] emboleobj!osl::Mutex::acquire+0x9 [libre-office-git-repo\include\osl\mutex.hxx @ 63] emboleobj!osl::ClearableGuard<osl::Mutex>::{ctor}+0xd [libre-office-git-repo\include\osl\mutex.hxx @ 182] emboleobj!osl::ResettableGuard<osl::Mutex>::{ctor}+0xd [libre-office-git-repo\include\osl\mutex.hxx @ 236] emboleobj!OleEmbeddedObject::getStatus+0x72 [libre-office-git-repo\embeddedobj\source\msole\oleembed.cxx @ 1133] sfxlo!SfxViewShell::CheckIPClient_Impl+0x42 [libre-office-git-repo\sfx2\source\view\viewsh.cxx @ 3563] sfxlo!SfxInPlaceClient_Impl::TimerHdl+0x40 [libre-office-git-repo\sfx2\source\view\ipclient.cxx @ 628] sfxlo!SfxInPlaceClient_Impl::LinkStubTimerHdl+0x53 [libre-office-git-repo\sfx2\source\view\ipclient.cxx @ 624] vcllo!Scheduler::CallbackTaskScheduling+0x130e [libre-office-git-repo\vcl\source\app\scheduler.cxx @ 511] vclplug_winlo!WinSalTimer::ImplHandleElapsedTimer+0x2e [libre-office-git-repo\vcl\win\app\saltimer.cxx @ 167] vclplug_winlo!ImplSalYield+0x14f [libre-office-git-repo\vcl\win\app\salinst.cxx @ 525] vclplug_winlo!WinSalInstance::DoYield+0xad [libre-office-git-repo\vcl\win\app\salinst.cxx @ 581] vcllo!ImplYield+0x367 [libre-office-git-repo\vcl\source\app\svapp.cxx @ 393] vcllo!Application::Execute+0xfa [libre-office-git-repo\vcl\source\app\svapp.cxx @ 369] sofficeapp!desktop::Desktop::Main+0x173f [libre-office-git-repo\desktop\source\app\app.cxx @ 1605] vcllo!ImplSVMain+0xda [libre-office-git-repo\vcl\source\app\svmain.cxx @ 229] sofficeapp!soffice_main+0xf3 [libre-office-git-repo\desktop\source\app\sofficemain.cxx @ 94] Request thread sal3!osl_acquireMutex+0x49 [libre-office-git-repo\sal\osl\w32\mutex.cxx @ 65] vclplug_winlo!osl::Mutex::acquire+0xa [libre-office-git-repo\include\osl\mutex.hxx @ 63] vclplug_winlo!SalYieldMutex::doAcquire+0x91 [libre-office-git-repo\vcl\win\app\salinst.cxx @ 148] emboleobj!SolarMutexReleaser::{dtor}+0xc [libre-office-git-repo\include\vcl\svapp.hxx @ 1425] emboleobj!OleComponent::StoreOwnTmpIfNecessary+0x1d3 [libre-office-git-repo\embeddedobj\source\msole\olecomponent.cxx @ 1365] emboleobj!OleEmbeddedObject::StoreObjectToStream+0x2f [libre-office-git-repo\embeddedobj\source\msole\olepersist.cxx @ 1032] emboleobj!OleEmbeddedObject::StoreToLocation_Impl+0x3cc [libre-office-git-repo\embeddedobj\source\msole\olepersist.cxx @ 1169] emboleobj!OleEmbeddedObject::storeAsEntry+0x152 [libre-office-git-repo\embeddedobj\source\msole\olepersist.cxx @ 1523] comphelper!comphelper::EmbeddedObjectContainer::StoreEmbeddedObject+0x490 [libre-office-git-repo\comphelper\source\container\embeddedobjectcontainer.cxx @ 501] comphelper!comphelper::EmbeddedObjectContainer::InsertEmbeddedObject+0x6f [libre-office-git-repo\comphelper\source\container\embeddedobjectcontainer.cxx @ 518] comphelper!comphelper::EmbeddedObjectContainer::RemoveEmbeddedObject+0x388 [libre-office-git-repo\comphelper\source\container\embeddedobjectcontainer.cxx @ 945] comphelper!comphelper::EmbeddedObjectContainer::RemoveEmbeddedObject+0x46 [libre-office-git-repo\comphelper\source\container\embeddedobjectcontainer.cxx @ 831] swlo!SwOLENode::SavePersistentData+0x20b [libre-office-git-repo\sw\source\core\ole\ndole.cxx @ 403] swlo!SwNodes::ChgNode+0x411 [libre-office-git-repo\sw\source\core\docnode\nodes.cxx @ 214] swlo!SwNodes::MoveNodes+0x18e6 [libre-office-git-repo\sw\source\core\docnode\nodes.cxx @ 868] swlo!SwUndoSaveContent::MoveToUndoNds+0x1c1 [libre-office-git-repo\sw\source\core\undo\undobj.cxx @ 784] swlo!SwUndoSaveSection::SaveSection+0x559 [libre-office-git-repo\sw\source\core\undo\undobj.cxx @ 1325] swlo!SwUndoSaveSection::SaveSection+0x55 [libre-office-git-repo\sw\source\core\undo\undobj.cxx @ 1278] swlo!SwUndoFlyBase::DelFly+0x127 [libre-office-git-repo\sw\source\core\undo\undobj1.cxx @ 232] swlo!SwUndoDelLayFormat::SwUndoDelLayFormat+0x64 [libre-office-git-repo\sw\source\core\undo\undobj1.cxx @ 429] swlo!std::make_unique+0x22 [C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\memory @ 3382] swlo!sw::DocumentLayoutManager::DelLayoutFormat+0x283 [libre-office-git-repo\sw\source\core\doc\DocumentLayoutManager.cxx @ 242] swlo!SwTextNode::DestroyAttr+0x82 [libre-office-git-repo\sw\source\core\txtnode\thints.cxx @ 1204] swlo!SwTextNode::EraseText+0x18f [libre-office-git-repo\sw\source\core\txtnode\ndtxt.cxx @ 2813] swlo!SwTextNode::DeleteAttributes+0x115 [libre-office-git-repo\sw\source\core\txtnode\thints.cxx @ 1863] swlo!SwXFrame::dispose+0xdb [libre-office-git-repo\sw\source\core\unocore\unoframe.cxx @ 2692] mscx_uno!`anonymous namespace'::cpp_call+0x710 [libre-office-git-repo\bridges\source\cpp_uno\msvc_win32_x86-64\uno2cpp.cxx @ 214] mscx_uno!unoInterfaceProxyDispatch+0x2fa [libre-office-git-repo\bridges\source\cpp_uno\msvc_win32_x86-64\uno2cpp.cxx @ 430] binaryurplo!binaryurp::IncomingRequest::execute_throw+0x635 [libre-office-git-repo\binaryurp\source\incomingrequest.cxx @ 239] binaryurplo!binaryurp::IncomingRequest::execute+0xbf [libre-office-git-repo\binaryurp\source\incomingrequest.cxx @ 79] binaryurplo!request+0x1c [libre-office-git-repo\binaryurp\source\reader.cxx @ 84] cppu3!cppu_threadpool::JobQueue::enter+0x21e [libre-office-git-repo\cppu\source\threadpool\jobqueue.cxx @ 101] cppu3!cppu_threadpool::ORequestThread::run+0xa0 [libre-office-git-repo\cppu\source\threadpool\thread.cxx @ 169] where the call to OleComponent::StoreOwnTmpIfNecessary from OleEmbeddedObject::StoreObjectToStream was made with m_aMutex held; and that mutex was attempted to be locked from the main thread, holding solar mutex. Change-Id: I1914188728cdaa9cdf22d216ec71f733d7780692 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175117 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Jenkins
2024-10-18tdf#163486: PVS: Identical branchesBogdan Buzea
Change-Id: I27de9f10b54478fa265efcb2fa35b8c7e16666f2 V1037: Two or more case-branches perform the same actions. Check lines: 821 and 827, 1962 and 1967, 2006 and 2011. Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175052 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Tested-by: Jenkins
2024-10-18tdf#158237 comphelper: Use C++20 contains() instead of find() and end()Sakura286
Change-Id: I3fc233ffc4c57b02e605306cb9bf3903a88401a4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175116 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-10-18tdf#163486: PVS: Identical branchesBogdan Buzea
Change-Id: Id493bc317eb9cf358c79454b7778895b78b7c8aa V1037: Two or more case-branches perform the same actions. Check lines: 320, 323 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175048 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-10-18tdf#163486: PVS: Identical branchesBogdan Buzea
Change-Id: I4afca4f9d7eb8968dc7a2465222f7c2060f10bd4 V1037: Two or more case-branches perform the same actions. Check lines: 178, 194 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175055 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-10-18tdf#163486: PVS: Identical branchesBogdan Buzea
Change-Id: I392760b8605588576049e5afda2da64faea3fd00 V1037: Two or more case-branches perform the same actions. Check lines: 486, 489 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175049 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Tested-by: Jenkins
2024-10-18tdf#163486: PVS: redundant nullptr checkXisco Fauli
V668 There is no sense in testing the 'mpMarkedRanges' pointer against null, as the memory was allocated using the 'new' operator. The exception will be generated in the case of memory allocation error. V668 There is no sense in testing the 'mpMarkedRanges' pointer against null, as the memory was allocated using the 'new' operator. The exception will be generated in the case of memory allocation error. Change-Id: Iba55f15534cdc9af5b86b288b5c42702ad83dc26 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175107 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Tested-by: Jenkins
2024-10-18tdf#163486: PVS: check pDrawViewXisco Fauli
V595 The 'pDrawView' pointer was utilized before it was verified against nullptr. Check lines: 128, 133. Change-Id: Ic07658428e4eb74d42d800df23b198800a9bab09 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175115 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-10-18tdf#163486: PVS: redundant nullptr checkXisco Fauli
V668 There is no sense in testing the 'indxc' pointer against null, as the memory was allocated using the 'new' operator. The exception will be generated in the case of memory allocation error. V668 There is no sense in testing the 'indxr' pointer against null, as the memory was allocated using the 'new' operator. The exception will be generated in the case of memory allocation error. V668 There is no sense in testing the 'ipiv' pointer against null, as the memory was allocated using the 'new' operator. The exception will be generated in the case of memory allocation error. Change-Id: Ifecd9ef5b831e5b312bb428e4d4f72c03cc29b7b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175106 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Tested-by: Jenkins
2024-10-18tdf#163486: PVS: recurring checkXisco Fauli
V571: Recurring check. The 'xObj' condition was already verified in line 809. Change-Id: I4b782c9601893ad91598382ea2f999cbd46df75b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175104 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Tested-by: Jenkins
2024-10-18tdf#163486: PVS: recurring checkXisco Fauli
V571: Recurring check. The 'if (rEntry.lateInit)' condition was already verified in line 400. Change-Id: I0a126691213440520bab4b5bd2f2363dfdd57e52 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175103 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-10-18tdf#163486: PVS: recurring checkXisco Fauli
V571: Recurring check. The 'if (m_pListener)' condition was already verified in line 104. After 4d07ee9a54e0b929ab116b08227e20f4a9c330e9 "loplugin:virtualdead" Change-Id: I12e90376211f3625cdda482909a96d43fe55cc3c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175096 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-10-18tdf#163486: PVS: check GetView()Xisco Fauli
V595 The 'GetView()' pointer was utilized before it was verified against nullptr. Check lines: 518, 531. Change-Id: I9c6ebccabece0923702e6a8fb4ee6beb9b6dc198 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175114 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Tested-by: Jenkins
2024-10-18tdf#163486: PVS: redundant nullptr checkXisco Fauli
V668 There is no sense in testing the 'pInfo' pointer against null, as the memory was allocated using the 'new' operator. The exception will be generated in the case of memory allocation error. Change-Id: Ie6a701c8fd8d6a0386e83012d59389edaccea93e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175109 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-10-18tdf#163486: PVS: redundant nullptr checkXisco Fauli
V668 There is no sense in testing the 'pCommentAction' pointer against null, as the memory was allocated using the 'new' operator. The exception will be generated in the case of memory allocation error. Change-Id: I3fa6619f80edefd852693190ebf463f694c8b55c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175108 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Tested-by: Jenkins
2024-10-18tdf#163486: PVS: check mpViewShXisco Fauli
V595 The 'mpViewSh' pointer was utilized before it was verified against nullptr. Check lines: 704, 713. Change-Id: I5c1902d9aa9a33e62cf2aa559bab9c0b3f45f688 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175112 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-10-18tdf#163486: PVS: condition is always trueXisco Fauli
V654 The condition '!bFound' of loop is always true. Change-Id: Ib37444255641f902a6833e222dfe1ee001376ea3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175110 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>