From e0121b2478526d803681d57d59af0cbf9cf602b4 Mon Sep 17 00:00:00 2001 From: Stephan Bergmann Date: Thu, 3 Nov 2022 09:14:18 +0100 Subject: -Werror=dangling-reference In "c++: Implement -Wdangling-reference [PR106393]" grew a new warning, included in -Wall, and based on some more-or-less shaky heuristics, that warns about "possibly dangling reference to a temporary". It produces quite a number of false positives, but for these uses of SfxItemSet::Get it does look plausible that the returned item references could, at least in theory, point at data that is destroyed along with the temporary SfxItemSet. Change-Id: I11afc4512db488f73170c6cfa706e9e094209550 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142217 Tested-by: Jenkins Reviewed-by: Stephan Bergmann --- editeng/source/accessibility/AccessibleEditableTextPara.cxx | 3 +-- sc/source/ui/drawfunc/drtxtob.cxx | 3 ++- sc/source/ui/view/editsh.cxx | 3 ++- sd/qa/unit/tiledrendering/tiledrendering.cxx | 8 ++++---- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/editeng/source/accessibility/AccessibleEditableTextPara.cxx b/editeng/source/accessibility/AccessibleEditableTextPara.cxx index aacb01522f51..ee2f47254765 100644 --- a/editeng/source/accessibility/AccessibleEditableTextPara.cxx +++ b/editeng/source/accessibility/AccessibleEditableTextPara.cxx @@ -1505,8 +1505,7 @@ namespace accessibility // NumberingLevel if (rRes.Name == "NumberingLevel") { - const SvxNumBulletItem& rNumBullet = rCacheTF.GetParaAttribs(GetParagraphIndex()).Get(EE_PARA_NUMBULLET); - if(rNumBullet.GetNumRule().GetLevelCount()==0) + if(rCacheTF.GetParaAttribs(GetParagraphIndex()).Get(EE_PARA_NUMBULLET).GetNumRule().GetLevelCount()==0) { rRes.Value <<= sal_Int16(-1); rRes.Handle = -1; diff --git a/sc/source/ui/drawfunc/drtxtob.cxx b/sc/source/ui/drawfunc/drtxtob.cxx index ec796f4a8521..5d2e5a2e4019 100644 --- a/sc/source/ui/drawfunc/drtxtob.cxx +++ b/sc/source/ui/drawfunc/drtxtob.cxx @@ -205,7 +205,8 @@ void ScDrawTextObjectBar::Execute( SfxRequest &rReq ) case SID_CHARMAP: { - const SvxFontItem& rItem = pOutView->GetAttribs().Get(EE_CHAR_FONTINFO); + auto const attribs = pOutView->GetAttribs(); + const SvxFontItem& rItem = attribs.Get(EE_CHAR_FONTINFO); OUString aString; std::shared_ptr aNewItem(std::make_shared(EE_CHAR_FONTINFO)); diff --git a/sc/source/ui/view/editsh.cxx b/sc/source/ui/view/editsh.cxx index 0fd33f62ed6d..bdd0d32d551b 100644 --- a/sc/source/ui/view/editsh.cxx +++ b/sc/source/ui/view/editsh.cxx @@ -383,8 +383,9 @@ void ScEditShell::Execute( SfxRequest& rReq ) sal_uInt16 nFontWhich = ( nScript == SvtScriptType::ASIAN ) ? EE_CHAR_FONTINFO_CJK : ( ( nScript == SvtScriptType::COMPLEX ) ? EE_CHAR_FONTINFO_CTL : EE_CHAR_FONTINFO ); + auto const attribs = pTableView->GetAttribs(); const SvxFontItem& rItem = static_cast( - pTableView->GetAttribs().Get(nFontWhich)); + attribs.Get(nFontWhich)); OUString aString; std::shared_ptr aNewItem(std::make_shared(EE_CHAR_FONTINFO)); diff --git a/sd/qa/unit/tiledrendering/tiledrendering.cxx b/sd/qa/unit/tiledrendering/tiledrendering.cxx index 3529290162c9..a7e9095ed950 100644 --- a/sd/qa/unit/tiledrendering/tiledrendering.cxx +++ b/sd/qa/unit/tiledrendering/tiledrendering.cxx @@ -1490,8 +1490,8 @@ void SdTiledRenderingTest::testTdf102223() EditView& rEditView = pView->GetTextEditOutlinerView()->GetEditView(); rEditView.SetSelection(ESelection(0, 0, 0, 3)); // start para, start char, end para, end char. CPPUNIT_ASSERT_EQUAL(OUString("Red"), rEditView.GetSelected()); - const SvxFontHeightItem& rItem = rEditView.GetAttribs().Get(EE_CHAR_FONTHEIGHT); - CPPUNIT_ASSERT_EQUAL(int(1411), static_cast(rItem.GetHeight())); + CPPUNIT_ASSERT_EQUAL( + int(1411), static_cast(rEditView.GetAttribs().Get(EE_CHAR_FONTHEIGHT).GetHeight())); // cut contents of cell uno::Sequence aArgs; @@ -1502,8 +1502,8 @@ void SdTiledRenderingTest::testTdf102223() CPPUNIT_ASSERT(pView->GetTextEditObject()); EditView& rEditView2 = pView->GetTextEditOutlinerView()->GetEditView(); rEditView2.SetSelection(ESelection(0, 0, 0, 1)); // start para, start char, end para, end char. - const SvxFontHeightItem& rItem2 = rEditView2.GetAttribs().Get(EE_CHAR_FONTHEIGHT); - CPPUNIT_ASSERT_EQUAL(int(1411), static_cast(rItem2.GetHeight())); + CPPUNIT_ASSERT_EQUAL( + int(1411), static_cast(rEditView2.GetAttribs().Get(EE_CHAR_FONTHEIGHT).GetHeight())); } void SdTiledRenderingTest::testTdf118354() -- cgit