sw/inc/SwSmartTagMgr.hxx | 3 + sw/inc/unodraw.hxx | 3 - sw/inc/unotbl.hxx | 2 - sw/inc/unotxdoc.hxx | 6 +-- sw/qa/extras/tiledrendering/tiledrendering.cxx | 12 +++---- sw/source/core/access/acccontext.cxx | 5 +-- sw/source/core/access/acchyperlink.cxx | 2 - sw/source/core/access/accmap.cxx | 2 - sw/source/core/access/accnotexthyperlink.cxx | 2 - sw/source/core/access/accpara.cxx | 11 ++---- sw/source/core/access/accpara.hxx | 2 - sw/source/core/access/acctable.cxx | 5 +-- sw/source/core/access/acctextframe.cxx | 2 - sw/source/core/bastyp/SwSmartTagMgr.cxx | 2 - sw/source/core/doc/notxtfrm.cxx | 14 +++----- sw/source/core/layout/paintfrm.cxx | 24 ++++---------- sw/source/core/swg/SwXMLTextBlocks1.cxx | 5 +-- sw/source/core/txtnode/fmtatr2.cxx | 5 +-- sw/source/core/unocore/unobkm.cxx | 4 +- sw/source/core/unocore/unochart.cxx | 9 +---- sw/source/core/unocore/unocoll.cxx | 7 +--- sw/source/core/unocore/unodraw.cxx | 29 +++++++---------- sw/source/core/unocore/unoframe.cxx | 7 +--- sw/source/core/unocore/unoftn.cxx | 6 +-- sw/source/core/unocore/unoobj.cxx | 8 ++-- sw/source/core/unocore/unoportenum.cxx | 39 +++++++++++------------- sw/source/core/unocore/unoredline.cxx | 10 ++---- sw/source/core/unocore/unorefmk.cxx | 4 +- sw/source/core/unocore/unosect.cxx | 2 - sw/source/core/unocore/unotbl.cxx | 21 ++++++------ sw/source/core/unocore/unotext.cxx | 7 +--- sw/source/filter/ww8/ww8par.cxx | 5 +-- sw/source/filter/ww8/ww8par5.cxx | 4 +- sw/source/filter/xml/XMLRedlineImportHelper.cxx | 4 +- sw/source/ui/dbui/dbinsdlg.cxx | 5 +-- sw/source/ui/dbui/mmaddressblockpage.cxx | 7 +--- sw/source/ui/dbui/mmoutputtypepage.cxx | 5 +-- sw/source/ui/vba/vbadocuments.cxx | 3 + sw/source/uibase/dbui/dbmgr.cxx | 9 ++--- sw/source/uibase/dochdl/swdtflvr.cxx | 2 - sw/source/uibase/docvw/AnnotationWin2.cxx | 9 +---- sw/source/uibase/docvw/DashedLine.cxx | 8 +--- sw/source/uibase/docvw/SidebarWinAcc.cxx | 5 +-- sw/source/uibase/table/chartins.cxx | 5 +-- sw/source/uibase/uno/unotxdoc.cxx | 35 +++++++-------------- sw/source/uibase/uno/unotxvw.cxx | 8 ++-- 46 files changed, 153 insertions(+), 221 deletions(-)
New commits: commit 7d7d4cf217e82db8839dbc49dcab1ab72c203b4e Author: Noel <noel.gran...@collabora.co.uk> AuthorDate: Fri Feb 19 14:33:17 2021 +0200 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Sat Feb 20 10:21:07 2021 +0100 loplugin:refcounting in sw Change-Id: I56f2f5aa4d9105e93f28701b8352d1fb97829ead Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111215 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/sw/inc/SwSmartTagMgr.hxx b/sw/inc/SwSmartTagMgr.hxx index e6d60c530f84..f1c254f93e45 100644 --- a/sw/inc/SwSmartTagMgr.hxx +++ b/sw/inc/SwSmartTagMgr.hxx @@ -21,12 +21,13 @@ #define INCLUDED_SW_INC_SWSMARTTAGMGR_HXX #include <svx/SmartTagMgr.hxx> +#include <rtl/ref.hxx> // Wrapper for the svx SmartTagMgr class SwSmartTagMgr final : public SmartTagMgr { private: - static SwSmartTagMgr* spTheSwSmartTagMgr; + static rtl::Reference<SwSmartTagMgr> spTheSwSmartTagMgr; SwSmartTagMgr(const OUString& rModuleName); virtual ~SwSmartTagMgr() override; diff --git a/sw/inc/unodraw.hxx b/sw/inc/unodraw.hxx index 22ddffda5881..e9e69318cdea 100644 --- a/sw/inc/unodraw.hxx +++ b/sw/inc/unodraw.hxx @@ -80,8 +80,7 @@ SwXDrawPageBaseClass; class SwXDrawPage final : public SwXDrawPageBaseClass { SwDoc* m_pDoc; - css::uno::Reference< css::uno::XAggregation > m_xPageAgg; - SwFmDrawPage* m_pDrawPage; + rtl::Reference<SwFmDrawPage> m_pDrawPage; public: SwXDrawPage(SwDoc* pDoc); virtual ~SwXDrawPage() override; diff --git a/sw/inc/unotbl.hxx b/sw/inc/unotbl.hxx index 7ec4121a9ad8..e7d9a224e259 100644 --- a/sw/inc/unotbl.hxx +++ b/sw/inc/unotbl.hxx @@ -141,7 +141,7 @@ public: virtual sal_Bool SAL_CALL hasElements( ) override; SwTableBox* GetTableBox() const { return m_pBox; } - static SwXCell* CreateXCell(SwFrameFormat* pTableFormat, SwTableBox* pBox, SwTable *pTable = nullptr ); + static rtl::Reference<SwXCell> CreateXCell(SwFrameFormat* pTableFormat, SwTableBox* pBox, SwTable *pTable = nullptr ); SwTableBox* FindBox(SwTable* pTable, SwTableBox* pBox); SwFrameFormat* GetFrameFormat() const { return m_pTableFormat; } double GetForcedNumericalValue() const; diff --git a/sw/inc/unotxdoc.hxx b/sw/inc/unotxdoc.hxx index 48f49a2694b7..df6309d7125e 100644 --- a/sw/inc/unotxdoc.hxx +++ b/sw/inc/unotxdoc.hxx @@ -146,11 +146,9 @@ private: SwDocShell* m_pDocShell; bool m_bObjectValid; - SwXDrawPage* m_pDrawPage; - css::uno::Reference< css::drawing::XDrawPage > mxXDrawPage; + rtl::Reference<SwXDrawPage> m_xDrawPage; - css::uno::Reference< css::text::XText > m_xBodyText; - SwXBodyText* m_pBodyText; + rtl::Reference<SwXBodyText> m_xBodyText; css::uno::Reference< css::uno::XAggregation > m_xNumFormatAgg; css::uno::Reference< css::container::XIndexAccess > mxXNumberingRules; diff --git a/sw/qa/extras/tiledrendering/tiledrendering.cxx b/sw/qa/extras/tiledrendering/tiledrendering.cxx index 5477e3e24a36..41249cd9f3ac 100644 --- a/sw/qa/extras/tiledrendering/tiledrendering.cxx +++ b/sw/qa/extras/tiledrendering/tiledrendering.cxx @@ -1778,8 +1778,7 @@ void SwTiledRenderingTest::testUndoRepairResult() SwXTextDocument* pXTextDocument = createDoc("dummy.fodt"); int nView1 = SfxLokHelper::getView(); SfxLokHelper::createView(); - TestResultListener* pResult2 = new TestResultListener(); - css::uno::Reference< css::frame::XDispatchResultListener > xListener(static_cast< css::frame::XDispatchResultListener* >(pResult2), css::uno::UNO_QUERY); + rtl::Reference<TestResultListener> pResult2 = new TestResultListener(); pXTextDocument->initializeForTiledRendering(uno::Sequence<beans::PropertyValue>()); int nView2 = SfxLokHelper::getView(); @@ -1797,7 +1796,7 @@ void SwTiledRenderingTest::testUndoRepairResult() // Assert that by default the second view can't undo the action. SfxLokHelper::setView(nView2); - comphelper::dispatchCommand(".uno:Undo", {}, xListener); + comphelper::dispatchCommand(".uno:Undo", {}, pResult2); Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt32>(SID_REPAIRPACKAGE), pResult2->m_nDocRepair); @@ -1813,8 +1812,7 @@ void SwTiledRenderingTest::testRedoRepairResult() SwXTextDocument* pXTextDocument = createDoc("dummy.fodt"); int nView1 = SfxLokHelper::getView(); SfxLokHelper::createView(); - TestResultListener* pResult2 = new TestResultListener(); - css::uno::Reference< css::frame::XDispatchResultListener > xListener(static_cast< css::frame::XDispatchResultListener* >(pResult2), css::uno::UNO_QUERY); + rtl::Reference<TestResultListener> pResult2 = new TestResultListener(); pXTextDocument->initializeForTiledRendering(uno::Sequence<beans::PropertyValue>()); int nView2 = SfxLokHelper::getView(); @@ -1830,12 +1828,12 @@ void SwTiledRenderingTest::testRedoRepairResult() pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'a', 0); Scheduler::ProcessEventsToIdle(); - comphelper::dispatchCommand(".uno:Undo", {}, xListener); + comphelper::dispatchCommand(".uno:Undo", {}, pResult2); CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt32>(0), pResult2->m_nDocRepair); // Assert that by default the second view can't redo the action. SfxLokHelper::setView(nView2); - comphelper::dispatchCommand(".uno:Redo", {}, xListener); + comphelper::dispatchCommand(".uno:Redo", {}, pResult2); Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt32>(SID_REPAIRPACKAGE), pResult2->m_nDocRepair); diff --git a/sw/source/core/access/acccontext.cxx b/sw/source/core/access/acccontext.cxx index 225b21424a85..78b9371f5a7e 100644 --- a/sw/source/core/access/acccontext.cxx +++ b/sw/source/core/access/acccontext.cxx @@ -739,16 +739,15 @@ uno::Reference<XAccessibleStateSet> SAL_CALL ThrowIfDisposed(); - ::utl::AccessibleStateSetHelper *pStateSet = + rtl::Reference<::utl::AccessibleStateSetHelper> pStateSet = new ::utl::AccessibleStateSetHelper; if (m_isSelectedInDoc) pStateSet->AddState( AccessibleStateType::SELECTED ); - uno::Reference<XAccessibleStateSet> xStateSet( pStateSet ); GetStates( *pStateSet ); - return xStateSet; + return pStateSet; } lang::Locale SAL_CALL SwAccessibleContext::getLocale() diff --git a/sw/source/core/access/acchyperlink.cxx b/sw/source/core/access/acchyperlink.cxx index 1866b844f7c9..76a2721ec172 100644 --- a/sw/source/core/access/acchyperlink.cxx +++ b/sw/source/core/access/acchyperlink.cxx @@ -124,7 +124,7 @@ uno::Reference< XAccessibleKeyBinding > SAL_CALL if( isValid() ) { - ::comphelper::OAccessibleKeyBindingHelper* pKeyBindingHelper = + rtl::Reference<::comphelper::OAccessibleKeyBindingHelper> pKeyBindingHelper = new ::comphelper::OAccessibleKeyBindingHelper(); xKeyBinding = pKeyBindingHelper; diff --git a/sw/source/core/access/accmap.cxx b/sw/source/core/access/accmap.cxx index ae1e6e29b06c..cfb598f6cd32 100644 --- a/sw/source/core/access/accmap.cxx +++ b/sw/source/core/access/accmap.cxx @@ -1880,7 +1880,7 @@ uno::Reference< XAccessible> SwAccessibleMap::GetContext( const SwFrame *pFrame, if( !xAcc.is() && bCreate ) { - SwAccessibleContext *pAcc = nullptr; + rtl::Reference<SwAccessibleContext> pAcc; switch( pFrame->GetType() ) { case SwFrameType::Txt: diff --git a/sw/source/core/access/accnotexthyperlink.cxx b/sw/source/core/access/accnotexthyperlink.cxx index 5fbe826c92cc..36ded739007e 100644 --- a/sw/source/core/access/accnotexthyperlink.cxx +++ b/sw/source/core/access/accnotexthyperlink.cxx @@ -152,7 +152,7 @@ Reference< XAccessibleKeyBinding > SAL_CALL if(bIsValid) { - ::comphelper::OAccessibleKeyBindingHelper* pKeyBindingHelper = + rtl::Reference<::comphelper::OAccessibleKeyBindingHelper> pKeyBindingHelper = new ::comphelper::OAccessibleKeyBindingHelper(); xKeyBinding = pKeyBindingHelper; diff --git a/sw/source/core/access/accpara.cxx b/sw/source/core/access/accpara.cxx index 05cd3f4e2bc4..67b97f784282 100644 --- a/sw/source/core/access/accpara.cxx +++ b/sw/source/core/access/accpara.cxx @@ -479,7 +479,7 @@ void SwAccessibleParagraph::ExecuteAtViewShell( sal_uInt16 nSlot ) pDispatcher->Execute( nSlot ); } -SwXTextPortion* SwAccessibleParagraph::CreateUnoPortion( +rtl::Reference<SwXTextPortion> SwAccessibleParagraph::CreateUnoPortion( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) { @@ -502,10 +502,7 @@ SwXTextPortion* SwAccessibleParagraph::CreateUnoPortion( // create a (dummy) text portion to be returned uno::Reference<text::XText> aEmpty; - SwXTextPortion* pPortion = - new SwXTextPortion ( pUnoCursor.get(), aEmpty, PORTION_TEXT); - - return pPortion; + return new SwXTextPortion ( pUnoCursor.get(), aEmpty, PORTION_TEXT); } // range checking for parameter @@ -740,7 +737,7 @@ uno::Reference<XAccessibleRelationSet> SAL_CALL SwAccessibleParagraph::getAccess ThrowIfDisposed(); - utl::AccessibleRelationSetHelper* pHelper = new utl::AccessibleRelationSetHelper(); + rtl::Reference<utl::AccessibleRelationSetHelper> pHelper = new utl::AccessibleRelationSetHelper(); const SwTextFrame* pTextFrame = dynamic_cast<const SwTextFrame*>(GetFrame()); OSL_ENSURE( pTextFrame, @@ -2666,7 +2663,7 @@ sal_Bool SwAccessibleParagraph::setAttributes( // create a (dummy) text portion for the sole purpose of calling // setPropertyValue on it - uno::Reference<XMultiPropertySet> xPortion = CreateUnoPortion( nStartIndex, + rtl::Reference<SwXTextPortion> xPortion = CreateUnoPortion( nStartIndex, nEndIndex ); // build sorted index array diff --git a/sw/source/core/access/accpara.hxx b/sw/source/core/access/accpara.hxx index ee5288cd25c3..dade5606d0ea 100644 --- a/sw/source/core/access/accpara.hxx +++ b/sw/source/core/access/accpara.hxx @@ -116,7 +116,7 @@ class SwAccessibleParagraph : // helper method for get/setAttributes // (for the special case of (nEndIndex==-1) a single character will // be selected) - SwXTextPortion* CreateUnoPortion( sal_Int32 nStart, sal_Int32 nEnd ); + rtl::Reference<SwXTextPortion> CreateUnoPortion( sal_Int32 nStart, sal_Int32 nEnd ); // methods for checking the parameter range: diff --git a/sw/source/core/access/acctable.cxx b/sw/source/core/access/acctable.cxx index 679b23fc9d37..7fab0396050c 100644 --- a/sw/source/core/access/acctable.cxx +++ b/sw/source/core/access/acctable.cxx @@ -901,16 +901,15 @@ uno::Reference< XAccessibleTable > SAL_CALL // #i87532# - assure that return accessible object is empty, // if no column header exists. - SwAccessibleTableColHeaders* pTableColHeaders = + rtl::Reference<SwAccessibleTableColHeaders> pTableColHeaders = new SwAccessibleTableColHeaders(GetMap()->shared_from_this(), static_cast<const SwTabFrame *>(GetFrame())); - uno::Reference< XAccessibleTable > xTableColumnHeaders( pTableColHeaders ); if ( pTableColHeaders->getAccessibleChildCount() <= 0 ) { return uno::Reference< XAccessibleTable >(); } - return xTableColumnHeaders; + return pTableColHeaders; } uno::Sequence< sal_Int32 > SAL_CALL SwAccessibleTable::getSelectedAccessibleRows() diff --git a/sw/source/core/access/acctextframe.cxx b/sw/source/core/access/acctextframe.cxx index 95937bbd1e99..d9e2e2bc4c96 100644 --- a/sw/source/core/access/acctextframe.cxx +++ b/sw/source/core/access/acctextframe.cxx @@ -299,7 +299,7 @@ uno::Reference<XAccessibleRelationSet> SAL_CALL SwAccessibleTextFrame::getAccess // get the frame, and insert prev/next relations into helper - AccessibleRelationSetHelper* pHelper = new AccessibleRelationSetHelper(); + rtl::Reference<AccessibleRelationSetHelper> pHelper = new AccessibleRelationSetHelper(); SwFlyFrame* pFlyFrame = getFlyFrame(); assert(pFlyFrame); diff --git a/sw/source/core/bastyp/SwSmartTagMgr.cxx b/sw/source/core/bastyp/SwSmartTagMgr.cxx index cbe194fc005c..cc769d870da7 100644 --- a/sw/source/core/bastyp/SwSmartTagMgr.cxx +++ b/sw/source/core/bastyp/SwSmartTagMgr.cxx @@ -26,7 +26,7 @@ using namespace com::sun::star; using namespace com::sun::star::uno; -SwSmartTagMgr* SwSmartTagMgr::spTheSwSmartTagMgr = nullptr; +rtl::Reference<SwSmartTagMgr> SwSmartTagMgr::spTheSwSmartTagMgr; SwSmartTagMgr& SwSmartTagMgr::Get() { diff --git a/sw/source/core/doc/notxtfrm.cxx b/sw/source/core/doc/notxtfrm.cxx index 0a9225fd93f5..ca834fdb7b23 100644 --- a/sw/source/core/doc/notxtfrm.cxx +++ b/sw/source/core/doc/notxtfrm.cxx @@ -1023,12 +1023,11 @@ void paintGraphicUsingPrimitivesHelper( aTarget.append(aClip); } - drawinglayer::primitive2d::MaskPrimitive2D* pNew( + rContent.resize(1); + rContent[0] = new drawinglayer::primitive2d::MaskPrimitive2D( aTarget, - rContent)); - rContent.resize(1); - rContent[0] = pNew; + rContent); } } @@ -1036,14 +1035,13 @@ void paintGraphicUsingPrimitivesHelper( { // Embed to ObjectInfoPrimitive2D when we have Name/Title/Description // information available - drawinglayer::primitive2d::ObjectInfoPrimitive2D* pNew( + rContent.resize(1); + rContent[0] = new drawinglayer::primitive2d::ObjectInfoPrimitive2D( rContent, rName, rTitle, - rDescription)); - rContent.resize(1); - rContent[0] = pNew; + rDescription); } basegfx::B2DRange aTargetRange(0.0, 0.0, 1.0, 1.0); diff --git a/sw/source/core/layout/paintfrm.cxx b/sw/source/core/layout/paintfrm.cxx index dd3def6e8dc9..ef69c5ff81ba 100644 --- a/sw/source/core/layout/paintfrm.cxx +++ b/sw/source/core/layout/paintfrm.cxx @@ -3548,12 +3548,10 @@ static drawinglayer::primitive2d::Primitive2DContainer lcl_CreateDashedIndicator const basegfx::BColor aOtherColor = basegfx::utils::hsl2rgb( aHslLine ); // Compute the plain line - drawinglayer::primitive2d::PolygonHairlinePrimitive2D * pPlainLine = + aSeq[0] = new drawinglayer::primitive2d::PolygonHairlinePrimitive2D( aLinePolygon, aOtherColor ); - aSeq[0] = drawinglayer::primitive2d::Primitive2DReference( pPlainLine ); - // Dashed line in twips aStrokePattern.push_back( 40 ); aStrokePattern.push_back( 40 ); @@ -3562,13 +3560,12 @@ static drawinglayer::primitive2d::Primitive2DContainer lcl_CreateDashedIndicator } // Compute the dashed line primitive - drawinglayer::primitive2d::PolyPolygonStrokePrimitive2D * pLine = + aSeq[ aSeq.size( ) - 1 ] = new drawinglayer::primitive2d::PolyPolygonStrokePrimitive2D ( basegfx::B2DPolyPolygon( aLinePolygon ), drawinglayer::attribute::LineAttribute( aColor ), drawinglayer::attribute::StrokeAttribute( aStrokePattern ) ); - aSeq[ aSeq.size( ) - 1 ] = drawinglayer::primitive2d::Primitive2DReference( pLine ); return aSeq; } @@ -3683,15 +3680,14 @@ void SwColumnFrame::PaintBreak( ) const aRect.Right(), aRect.Top() + nTextOff ); } - drawinglayer::primitive2d::TextSimplePortionPrimitive2D * pText = + aSeq.push_back( new drawinglayer::primitive2d::TextSimplePortionPrimitive2D( aTextMatrix, aBreakText, 0, aBreakText.getLength(), std::vector< double >(), aFontAttr, lang::Locale(), - aLineColor ); - aSeq.push_back( drawinglayer::primitive2d::Primitive2DReference( pText ) ); + aLineColor ) ); ProcessPrimitives( aSeq ); } @@ -6660,10 +6656,8 @@ static drawinglayer::primitive2d::Primitive2DContainer lcl_CreatePageAreaDelimit aPolygon.append( aBPoint ); aPolygon.append( aBPoint + aVertVector * nLineLength ); - drawinglayer::primitive2d::PolygonHairlinePrimitive2D* pLine = - new drawinglayer::primitive2d::PolygonHairlinePrimitive2D( + aSeq[i] = new drawinglayer::primitive2d::PolygonHairlinePrimitive2D( aPolygon, aLineColor ); - aSeq[i] = drawinglayer::primitive2d::Primitive2DReference( pLine ); } return aSeq; @@ -6682,10 +6676,8 @@ static drawinglayer::primitive2d::Primitive2DContainer lcl_CreateRectangleDelimi aPolygon.append( basegfx::B2DPoint( rRect.Left(), rRect.Bottom() ) ); aPolygon.setClosed( true ); - drawinglayer::primitive2d::PolygonHairlinePrimitive2D* pLine = - new drawinglayer::primitive2d::PolygonHairlinePrimitive2D( + aSeq[0] = new drawinglayer::primitive2d::PolygonHairlinePrimitive2D( aPolygon, aLineColor ); - aSeq[0] = drawinglayer::primitive2d::Primitive2DReference( pLine ); return aSeq; } @@ -6715,10 +6707,8 @@ static drawinglayer::primitive2d::Primitive2DContainer lcl_CreateColumnAreaDelim aPolygon.append( aBPoint ); aPolygon.append( aBPoint + aVertVector * nLineLength ); - drawinglayer::primitive2d::PolygonHairlinePrimitive2D* pLine = - new drawinglayer::primitive2d::PolygonHairlinePrimitive2D( + aSeq[i] = new drawinglayer::primitive2d::PolygonHairlinePrimitive2D( aPolygon, aLineColor ); - aSeq[i] = drawinglayer::primitive2d::Primitive2DReference( pLine ); } return aSeq; diff --git a/sw/source/core/swg/SwXMLTextBlocks1.cxx b/sw/source/core/swg/SwXMLTextBlocks1.cxx index 75786448d64b..0297d68fa442 100644 --- a/sw/source/core/swg/SwXMLTextBlocks1.cxx +++ b/sw/source/core/swg/SwXMLTextBlocks1.cxx @@ -197,11 +197,10 @@ ErrCode SwXMLTextBlocks::GetMacroTable( sal_uInt16 nIdx, // create descriptor and reference to it. Either // both or neither must be kept because of the // reference counting! - SvMacroTableEventDescriptor* pDescriptor = + rtl::Reference<SvMacroTableEventDescriptor> pDescriptor = new SvMacroTableEventDescriptor(aAutotextEvents); - uno::Reference<XNameReplace> xReplace = pDescriptor; Sequence<Any> aFilterArguments( 1 ); - aFilterArguments[0] <<= xReplace; + aFilterArguments[0] <<= uno::Reference<XNameReplace>(pDescriptor); // get filter OUString sFilterComponent = bOasis diff --git a/sw/source/core/txtnode/fmtatr2.cxx b/sw/source/core/txtnode/fmtatr2.cxx index 2ce3928a1c71..a474f7a639cf 100644 --- a/sw/source/core/txtnode/fmtatr2.cxx +++ b/sw/source/core/txtnode/fmtatr2.cxx @@ -296,13 +296,12 @@ bool SwFormatINetFormat::QueryValue( uno::Any& rVal, sal_uInt8 nMemberId ) const case MID_URL_HYPERLINKEVENTS: { // create (and return) event descriptor - SwHyperlinkEventDescriptor* pEvents = + rtl::Reference<SwHyperlinkEventDescriptor> pEvents = new SwHyperlinkEventDescriptor(); pEvents->copyMacrosFromINetFormat(*this); - uno::Reference<container::XNameReplace> xNameReplace(pEvents); // all others return a string; so we just set rVal here and exit - rVal <<= xNameReplace; + rVal <<= uno::Reference<container::XNameReplace>(pEvents); } break; default: diff --git a/sw/source/core/unocore/unobkm.cxx b/sw/source/core/unocore/unobkm.cxx index 853418742a72..99ddb365bf78 100644 --- a/sw/source/core/unocore/unobkm.cxx +++ b/sw/source/core/unocore/unobkm.cxx @@ -704,7 +704,7 @@ SwXFieldmark::CreateXFieldmark(SwDoc & rDoc, ::sw::mark::IMark *const pMark, if (!xMark.is()) { // FIXME: These belong in XTextFieldsSupplier - SwXFieldmark* pXBkmk = nullptr; + rtl::Reference<SwXFieldmark> pXBkmk; if (dynamic_cast< ::sw::mark::TextFieldmark* >(pMark)) pXBkmk = new SwXFieldmark(false, &rDoc); else if (dynamic_cast< ::sw::mark::CheckboxFieldmark* >(pMark)) @@ -716,7 +716,7 @@ SwXFieldmark::CreateXFieldmark(SwDoc & rDoc, ::sw::mark::IMark *const pMark, else pXBkmk = new SwXFieldmark(isReplacementObject, &rDoc); - xMark.set(static_cast<::cppu::OWeakObject*>(pXBkmk), uno::UNO_QUERY); // work around ambiguous base + xMark.set(static_cast<::cppu::OWeakObject*>(pXBkmk.get()), uno::UNO_QUERY); // work around ambiguous base pXBkmk->registerInMark(*pXBkmk, pMarkBase); } return xMark; diff --git a/sw/source/core/unocore/unochart.cxx b/sw/source/core/unocore/unochart.cxx index 143f4e9eec61..6d06ad82b402 100644 --- a/sw/source/core/unocore/unochart.cxx +++ b/sw/source/core/unocore/unochart.cxx @@ -859,7 +859,7 @@ uno::Reference< chart2::data::XDataSource > SwChartDataProvider::Impl_createData uno::Reference<chart2::data::XLabeledDataSequence>* pLDS = aLDS.getArray(); for (sal_Int32 i = 0; i < nNumLDS; ++i) { - SwChartLabeledDataSequence* pLabeledDtaSeq = new SwChartLabeledDataSequence; + rtl::Reference<SwChartLabeledDataSequence> pLabeledDtaSeq = new SwChartLabeledDataSequence; pLabeledDtaSeq->setLabel(pLabelSeqs[i]); pLabeledDtaSeq->setValues(pDataSeqs[i]); pLDS[i] = pLabeledDtaSeq; @@ -2604,11 +2604,9 @@ uno::Reference< util::XCloneable > SAL_CALL SwChartLabeledDataSequence::createCl if (m_bDisposed) throw lang::DisposedException(); - uno::Reference< util::XCloneable > xRes; - uno::Reference< util::XCloneable > xDataCloneable( m_xData, uno::UNO_QUERY ); uno::Reference< util::XCloneable > xLabelsCloneable( m_xLabels, uno::UNO_QUERY ); - SwChartLabeledDataSequence *pRes = new SwChartLabeledDataSequence(); + rtl::Reference<SwChartLabeledDataSequence > pRes = new SwChartLabeledDataSequence(); if (xDataCloneable.is()) { uno::Reference< chart2::data::XDataSequence > xDataClone( xDataCloneable->createClone(), uno::UNO_QUERY ); @@ -2620,8 +2618,7 @@ uno::Reference< util::XCloneable > SAL_CALL SwChartLabeledDataSequence::createCl uno::Reference< chart2::data::XDataSequence > xLabelsClone( xLabelsCloneable->createClone(), uno::UNO_QUERY ); pRes->setLabel( xLabelsClone ); } - xRes = pRes; - return xRes; + return pRes; } OUString SAL_CALL SwChartLabeledDataSequence::getImplementationName( ) diff --git a/sw/source/core/unocore/unocoll.cxx b/sw/source/core/unocore/unocoll.cxx index a6287cbd714d..9eaefe985b6f 100644 --- a/sw/source/core/unocore/unocoll.cxx +++ b/sw/source/core/unocore/unocoll.cxx @@ -555,9 +555,7 @@ SwXServiceProvider::MakeInstance(SwServiceType nObjectType, SwDoc & rDoc) case SwServiceType::VbaObjectProvider : #if HAVE_FEATURE_SCRIPTING { - SwVbaObjectForCodeNameProvider* pObjProv = - new SwVbaObjectForCodeNameProvider(rDoc.GetDocShell()); - xRet = static_cast<cppu::OWeakObject*>(pObjProv); + xRet = static_cast<cppu::OWeakObject*>(new SwVbaObjectForCodeNameProvider(rDoc.GetDocShell())); } #endif break; @@ -566,8 +564,7 @@ SwXServiceProvider::MakeInstance(SwServiceType nObjectType, SwDoc & rDoc) { if (rDoc.GetDocShell() && ooo::vba::isAlienWordDoc(*rDoc.GetDocShell())) { - SwVbaCodeNameProvider* pObjProv = new SwVbaCodeNameProvider(rDoc.GetDocShell()); - xRet = static_cast<cppu::OWeakObject*>(pObjProv); + xRet = static_cast<cppu::OWeakObject*>(new SwVbaCodeNameProvider(rDoc.GetDocShell())); } } #endif diff --git a/sw/source/core/unocore/unodraw.cxx b/sw/source/core/unocore/unodraw.cxx index 781a62d78a81..cf1059dd9fbc 100644 --- a/sw/source/core/unocore/unodraw.cxx +++ b/sw/source/core/unocore/unodraw.cxx @@ -360,7 +360,7 @@ uno::Reference< drawing::XShape > SwFmDrawPage::CreateShape( SdrObject *pObj ) c } uno::Reference< XUnoTunnel > xShapeTunnel(xRet, uno::UNO_QUERY); //don't create an SwXShape if it already exists - SwXShape* pShape = nullptr; + rtl::Reference<SwXShape> pShape; if(xShapeTunnel.is()) pShape = reinterpret_cast< SwXShape * >( sal::static_int_cast< sal_IntPtr >( xShapeTunnel->getSomething(SwXShape::getUnoTunnelId()) )); @@ -373,10 +373,9 @@ uno::Reference< drawing::XShape > SwFmDrawPage::CreateShape( SdrObject *pObj ) c pShape = new SwXGroupShape(xCreate, nullptr); else pShape = new SwXShape(xCreate, nullptr); - uno::Reference<beans::XPropertySet> xPrSet = pShape; - xRet.set(xPrSet, uno::UNO_QUERY); + xRet = pShape; } - const_cast<std::vector<SwXShape*>*>(&m_vShapes)->push_back(pShape); + const_cast<std::vector<SwXShape*>*>(&m_vShapes)->push_back(pShape.get()); pShape->m_pPage = this; } return xRet; @@ -472,17 +471,16 @@ uno::Sequence< OUString > SwXDrawPage::getSupportedServiceNames() } SwXDrawPage::SwXDrawPage(SwDoc* pDc) : - m_pDoc(pDc), - m_pDrawPage(nullptr) + m_pDoc(pDc) { } SwXDrawPage::~SwXDrawPage() { - if(m_xPageAgg.is()) + if(m_pDrawPage.is()) { uno::Reference< uno::XInterface > xInt; - m_xPageAgg->setDelegator(xInt); + m_pDrawPage->setDelegator(xInt); } } @@ -756,7 +754,7 @@ uno::Reference< drawing::XShapeGroup > SwXDrawPage::group(const uno::Reference< if(!m_pDoc || !xShapes.is()) throw uno::RuntimeException(); uno::Reference< drawing::XShapeGroup > xRet; - if(m_xPageAgg.is()) + if(m_pDrawPage.is()) { SwFmDrawPage* pPage = GetSvxPage(); @@ -802,7 +800,7 @@ void SwXDrawPage::ungroup(const uno::Reference< drawing::XShapeGroup > & rShapeG SolarMutexGuard aGuard; if(!m_pDoc) throw uno::RuntimeException(); - if(!m_xPageAgg.is()) + if(!m_pDrawPage.is()) return; SwFmDrawPage* pPage = GetSvxPage(); @@ -823,7 +821,7 @@ void SwXDrawPage::ungroup(const uno::Reference< drawing::XShapeGroup > & rShapeG SwFmDrawPage* SwXDrawPage::GetSvxPage() { - if(!m_xPageAgg.is() && m_pDoc) + if(!m_pDrawPage.is() && m_pDoc) { SolarMutexGuard aGuard; // #i52858# @@ -834,14 +832,11 @@ SwFmDrawPage* SwXDrawPage::GetSvxPage() // We need a Ref to the object during queryInterface or else // it will be deleted m_pDrawPage = new SwFmDrawPage(pPage); - uno::Reference< drawing::XDrawPage > xPage = m_pDrawPage; - uno::Any aAgg = xPage->queryInterface(cppu::UnoType<uno::XAggregation>::get()); - aAgg >>= m_xPageAgg; } - if( m_xPageAgg.is() ) - m_xPageAgg->setDelegator( static_cast<cppu::OWeakObject*>(this) ); + if( m_pDrawPage.is() ) + m_pDrawPage->setDelegator( static_cast<cppu::OWeakObject*>(this) ); } - return m_pDrawPage; + return m_pDrawPage.get(); } /** diff --git a/sw/source/core/unocore/unoframe.cxx b/sw/source/core/unocore/unoframe.cxx index c853a6653d3b..ee69f96187dd 100644 --- a/sw/source/core/unocore/unoframe.cxx +++ b/sw/source/core/unocore/unoframe.cxx @@ -3290,11 +3290,8 @@ uno::Reference< text::XTextCursor > SwXTextFrame::createTextCursor() throw aExcept; } - SwXTextCursor *const pXCursor = new SwXTextCursor( - *pFormat->GetDoc(), this, CursorType::Frame, *aPam.GetPoint()); - aRef = static_cast<text::XWordCursor*>(pXCursor); - - return aRef; + return static_cast<text::XWordCursor*>(new SwXTextCursor( + *pFormat->GetDoc(), this, CursorType::Frame, *aPam.GetPoint())); } uno::Reference< text::XTextCursor > SwXTextFrame::createTextCursorByRange(const uno::Reference< text::XTextRange > & aTextPosition) diff --git a/sw/source/core/unocore/unoftn.cxx b/sw/source/core/unocore/unoftn.cxx index 2cf0d0b507f9..5d1923d799e8 100644 --- a/sw/source/core/unocore/unoftn.cxx +++ b/sw/source/core/unocore/unoftn.cxx @@ -423,13 +423,11 @@ SwXFootnote::createTextCursor() SwTextFootnote const*const pTextFootnote = rFormat.GetTextFootnote(); SwPosition aPos( *pTextFootnote->GetStartNode() ); - SwXTextCursor *const pXCursor = + rtl::Reference<SwXTextCursor> pXCursor = new SwXTextCursor(*GetDoc(), this, CursorType::Footnote, aPos); auto& rUnoCursor(pXCursor->GetCursor()); rUnoCursor.Move(fnMoveForward, GoInNode); - const uno::Reference< text::XTextCursor > xRet = - static_cast<text::XWordCursor*>(pXCursor); - return xRet; + return static_cast<text::XWordCursor*>(pXCursor.get()); } uno::Reference< text::XTextCursor > SAL_CALL diff --git a/sw/source/core/unocore/unoobj.cxx b/sw/source/core/unocore/unoobj.cxx index 964471ded48c..43d976a20dba 100644 --- a/sw/source/core/unocore/unoobj.cxx +++ b/sw/source/core/unocore/unoobj.cxx @@ -1658,11 +1658,11 @@ SwXTextCursor::getStart() if (CursorType::Meta == m_pImpl->m_eType) { // return cursor to prevent modifying SwXTextRange for META - SwXTextCursor * const pXCursor( + rtl::Reference<SwXTextCursor> pXCursor( new SwXTextCursor(rUnoCursor.GetDoc(), xParent, CursorType::Meta, *rUnoCursor.GetPoint()) ); pXCursor->gotoStart(false); - xRet = static_cast<text::XWordCursor*>(pXCursor); + xRet = static_cast<text::XWordCursor*>(pXCursor.get()); } else { @@ -1684,11 +1684,11 @@ SwXTextCursor::getEnd() if (CursorType::Meta == m_pImpl->m_eType) { // return cursor to prevent modifying SwXTextRange for META - SwXTextCursor * const pXCursor( + rtl::Reference<SwXTextCursor> pXCursor( new SwXTextCursor(rUnoCursor.GetDoc(), xParent, CursorType::Meta, *rUnoCursor.GetPoint()) ); pXCursor->gotoEnd(false); - xRet = static_cast<text::XWordCursor*>(pXCursor); + xRet = static_cast<text::XWordCursor*>(pXCursor.get()); } else { diff --git a/sw/source/core/unocore/unoportenum.cxx b/sw/source/core/unocore/unoportenum.cxx index 748091ff4252..cdfe6fa9b168 100644 --- a/sw/source/core/unocore/unoportenum.cxx +++ b/sw/source/core/unocore/unoportenum.cxx @@ -407,7 +407,7 @@ lcl_ExportFieldMark( ::sw::mark::IFieldmark* pFieldmark = nullptr; pFieldmark = rDoc.getIDocumentMarkAccess()-> getFieldmarkAt(*pUnoCursor->GetMark()); - SwXTextPortion* pPortion = new SwXTextPortion( + rtl::Reference<SwXTextPortion> pPortion = new SwXTextPortion( pUnoCursor, i_xParentText, PORTION_FIELD_START); xRef = pPortion; if (pFieldmark) @@ -419,16 +419,15 @@ lcl_ExportFieldMark( else if (CH_TXT_ATR_FIELDSEP == Char) { // TODO how to get the field? - SwXTextPortion* pPortion = new SwXTextPortion( + xRef = new SwXTextPortion( pUnoCursor, i_xParentText, PORTION_FIELD_SEP); - xRef = pPortion; } else if (CH_TXT_ATR_FIELDEND == Char) { ::sw::mark::IFieldmark* pFieldmark = nullptr; pFieldmark = rDoc.getIDocumentMarkAccess()-> getFieldmarkAt(*pUnoCursor->GetMark()); - SwXTextPortion* pPortion = new SwXTextPortion( + rtl::Reference<SwXTextPortion> pPortion = new SwXTextPortion( pUnoCursor, i_xParentText, PORTION_FIELD_END); xRef = pPortion; if (pFieldmark) @@ -441,7 +440,7 @@ lcl_ExportFieldMark( { ::sw::mark::IFieldmark* pFieldmark = rDoc.getIDocumentMarkAccess()->getFieldmarkAt(*pUnoCursor->GetMark()); - SwXTextPortion* pPortion = new SwXTextPortion( + rtl::Reference<SwXTextPortion> pPortion = new SwXTextPortion( pUnoCursor, i_xParentText, PORTION_FIELD_START_END); xRef = pPortion; if (pFieldmark) @@ -472,7 +471,7 @@ lcl_CreateRefMarkPortion( xContent = SwXReferenceMark::CreateXReferenceMark(rDoc, &rRefMark); } - SwXTextPortion* pPortion = nullptr; + rtl::Reference<SwXTextPortion> pPortion; if (!bEnd) { pPortion = new SwXTextPortion(pUnoCursor, xParent, PORTION_REFMARK_START); @@ -494,7 +493,7 @@ lcl_InsertRubyPortion( const SwUnoCursor * const pUnoCursor, const SwTextAttr & rAttr, const bool bEnd) { - SwXTextPortion* pPortion = new SwXTextPortion(pUnoCursor, + rtl::Reference<SwXTextPortion> pPortion = new SwXTextPortion(pUnoCursor, static_txtattr_cast<const SwTextRuby&>(rAttr), xParent, bEnd); rPortions.emplace_back(pPortion); pPortion->SetCollapsed(rAttr.End() == nullptr); @@ -512,7 +511,7 @@ lcl_CreateTOXMarkPortion( const Reference<XTextContent> xContent = SwXDocumentIndexMark::CreateXDocumentIndexMark(rDoc, & rTOXMark); - SwXTextPortion* pPortion = nullptr; + rtl::Reference<SwXTextPortion> pPortion; if (!bEnd) { pPortion = new SwXTextPortion(pUnoCursor, xParent, PORTION_TOXMARK_START); @@ -536,7 +535,7 @@ lcl_CreateMetaPortion( const uno::Reference<rdf::XMetadatable> xMeta( SwXMeta::CreateXMeta( *static_cast<SwFormatMeta &>(rAttr.GetAttr()).GetMeta(), xParent, std::move(pPortions))); - SwXTextPortion * pPortion(nullptr); + rtl::Reference<SwXTextPortion> pPortion; if (RES_TXTATR_META == rAttr.Which()) { const uno::Reference<text::XTextContent> xContent(xMeta, @@ -604,7 +603,7 @@ static void lcl_ExportBookmark( // - this is the start or end (depending on bOnlyFrameStarts) // of a collapsed bookmark at the same position as an at-char // anchored frame - SwXTextPortion* pPortion = + rtl::Reference<SwXTextPortion> pPortion = new SwXTextPortion(pUnoCursor, xParent, bEnd ? PORTION_BOOKMARK_END : PORTION_BOOKMARK_START); rPortions.emplace_back(pPortion); pPortion->SetBookmark(pPtr->xBookmark); @@ -613,7 +612,7 @@ static void lcl_ExportBookmark( } else if (BkmType::End == pPtr->nBkmType && !bOnlyFrameStarts) { - SwXTextPortion* pPortion = + rtl::Reference<SwXTextPortion> pPortion = new SwXTextPortion(pUnoCursor, xParent, PORTION_BOOKMARK_END); rPortions.emplace_back(pPortion); pPortion->SetBookmark(pPtr->xBookmark); @@ -812,10 +811,10 @@ lcl_ExportHints( pUnoCursor->Right(1); if( *pUnoCursor->GetMark() == *pUnoCursor->GetPoint() ) break; - SwXTextPortion* pPortion; - xRef = pPortion = + rtl::Reference<SwXTextPortion> pPortion = new SwXTextPortion( pUnoCursor, xParent, PORTION_FIELD); + xRef = pPortion; Reference<XTextField> const xField = SwXTextField::CreateXTextField(&rDoc, &pAttr->GetFormatField()); @@ -834,14 +833,14 @@ lcl_ExportHints( ::sw::mark::IMark* pAnnotationMark = pTextAnnotationField ? pTextAnnotationField->GetAnnotationMark() : nullptr; if ( pAnnotationMark != nullptr ) { - SwXTextPortion* pPortion = new SwXTextPortion( pUnoCursor, xParent, PORTION_ANNOTATION_END ); + rtl::Reference<SwXTextPortion> pPortion = new SwXTextPortion( pUnoCursor, xParent, PORTION_ANNOTATION_END ); pPortion->SetBookmark(SwXBookmark::CreateXBookmark( rDoc, pAnnotationMark)); xRef = pPortion; } else { - SwXTextPortion* pPortion = new SwXTextPortion( pUnoCursor, xParent, PORTION_ANNOTATION ); + rtl::Reference<SwXTextPortion> pPortion = new SwXTextPortion( pUnoCursor, xParent, PORTION_ANNOTATION ); Reference<XTextField> xField = SwXTextField::CreateXTextField(&rDoc, &pAttr->GetFormatField()); @@ -859,7 +858,7 @@ lcl_ExportHints( pAttr->GetFormatField().GetField()->ExpandField(true, nullptr).getLength() + 2 ); if( *pUnoCursor->GetMark() == *pUnoCursor->GetPoint() ) break; - SwXTextPortion* pPortion = + rtl::Reference<SwXTextPortion> pPortion = new SwXTextPortion( pUnoCursor, xParent, PORTION_FIELD); xRef = pPortion; Reference<XTextField> xField = @@ -892,9 +891,9 @@ lcl_ExportHints( pUnoCursor->Right(1); if( *pUnoCursor->GetMark() == *pUnoCursor->GetPoint() ) break; - SwXTextPortion* pPortion; - xRef = pPortion = new SwXTextPortion( + rtl::Reference<SwXTextPortion> pPortion = new SwXTextPortion( pUnoCursor, xParent, PORTION_FOOTNOTE); + xRef = pPortion; Reference<XFootnote> xContent = SwXFootnotes::GetObject(rDoc, pAttr->GetFootnote()); pPortion->SetFootnote(xContent); @@ -1175,7 +1174,7 @@ static void lcl_ExportAnnotationStarts( bool bFrameStart = rFramePositions.find(nIndex) != rFramePositions.end(); if (bFrameStart || !bOnlyFrame) { - SwXTextPortion* pPortion = + rtl::Reference<SwXTextPortion> pPortion = new SwXTextPortion( pUnoCursor, xParent, PORTION_ANNOTATION ); pPortion->SetTextField( pPtr->mxAnnotationField ); rPortions.emplace_back(pPortion); @@ -1238,7 +1237,7 @@ static sal_Int32 lcl_ExportFrames( auto pFrame = static_cast<SwFrameFormat*>(i_rFrames.front().pFrameClient->GetRegisteredIn()); if (pFrame) // Frame could be disposed { - SwXTextPortion* pPortion = new SwXTextPortion(i_pUnoCursor, i_xParent, *pFrame ); + rtl::Reference<SwXTextPortion> pPortion = new SwXTextPortion(i_pUnoCursor, i_xParent, *pFrame ); rPortions.emplace_back(pPortion); } i_rFrames.pop_front(); diff --git a/sw/source/core/unocore/unoredline.cxx b/sw/source/core/unocore/unoredline.cxx index df3ad38cfffd..f1c7a6d3fe10 100644 --- a/sw/source/core/unocore/unoredline.cxx +++ b/sw/source/core/unocore/unoredline.cxx @@ -94,7 +94,7 @@ uno::Reference<text::XTextCursor> SwXRedlineText::createTextCursor() SolarMutexGuard aGuard; SwPosition aPos(aNodeIndex); - SwXTextCursor *const pXCursor = + rtl::Reference<SwXTextCursor> pXCursor = new SwXTextCursor(*GetDoc(), this, CursorType::Redline, aPos); auto& rUnoCursor(pXCursor->GetCursor()); rUnoCursor.Move(fnMoveForward, GoInNode); @@ -128,7 +128,7 @@ uno::Reference<text::XTextCursor> SwXRedlineText::createTextCursor() throw aExcept; } - return static_cast<text::XWordCursor*>(pXCursor); + return static_cast<text::XWordCursor*>(pXCursor.get()); } uno::Reference<text::XTextCursor> SwXRedlineText::createTextCursorByRange( @@ -532,7 +532,6 @@ uno::Reference< text::XTextCursor > SwXRedline::createTextCursor() if(!pDoc) throw uno::RuntimeException(); - uno::Reference< text::XTextCursor > xRet; SwNodeIndex* pNodeIndex = pRedline->GetContentIdx(); if(!pNodeIndex) { @@ -540,7 +539,7 @@ uno::Reference< text::XTextCursor > SwXRedline::createTextCursor() } SwPosition aPos(*pNodeIndex); - SwXTextCursor *const pXCursor = + rtl::Reference<SwXTextCursor> pXCursor = new SwXTextCursor(*pDoc, this, CursorType::Redline, aPos); auto& rUnoCursor(pXCursor->GetCursor()); rUnoCursor.Move(fnMoveForward, GoInNode); @@ -556,9 +555,8 @@ uno::Reference< text::XTextCursor > SwXRedline::createTextCursor() } if(pCont) rUnoCursor.GetPoint()->nContent.Assign(pCont, 0); - xRet = static_cast<text::XWordCursor*>(pXCursor); - return xRet; + return static_cast<text::XWordCursor*>(pXCursor.get()); } uno::Reference< text::XTextCursor > SwXRedline::createTextCursorByRange( diff --git a/sw/source/core/unocore/unorefmk.cxx b/sw/source/core/unocore/unorefmk.cxx index 62b34a61cd4f..a87dc245a8e3 100644 --- a/sw/source/core/unocore/unorefmk.cxx +++ b/sw/source/core/unocore/unorefmk.cxx @@ -137,8 +137,8 @@ SwXReferenceMark::CreateXReferenceMark( } if (!xMark.is()) { - SwXReferenceMark *const pMark(new SwXReferenceMark(&rDoc, pMarkFormat)); - xMark.set(pMark); + rtl::Reference<SwXReferenceMark> pMark(new SwXReferenceMark(&rDoc, pMarkFormat)); + xMark = pMark; if (pMarkFormat) { pMarkFormat->SetXRefMark(xMark); diff --git a/sw/source/core/unocore/unosect.cxx b/sw/source/core/unocore/unosect.cxx index 422619dae051..ada86e6df4ca 100644 --- a/sw/source/core/unocore/unosect.cxx +++ b/sw/source/core/unocore/unosect.cxx @@ -206,7 +206,7 @@ SwXTextSection::CreateXTextSection( } if ( !xSection.is() ) { - SwXTextSection *const pNew = new SwXTextSection(pFormat, bIndexHeader); + rtl::Reference<SwXTextSection> pNew = new SwXTextSection(pFormat, bIndexHeader); xSection.set(pNew); if (pFormat) { diff --git a/sw/source/core/unocore/unotbl.cxx b/sw/source/core/unocore/unotbl.cxx index 6392d16cd786..b03f513a1e70 100644 --- a/sw/source/core/unocore/unotbl.cxx +++ b/sw/source/core/unocore/unotbl.cxx @@ -117,7 +117,7 @@ namespace { FindUnoInstanceHint(Tcoretype* pCore) : m_pCore(pCore), m_pResult(nullptr) {}; const Tcoretype* const m_pCore; - mutable Tunotype* m_pResult; + mutable rtl::Reference<Tunotype> m_pResult; }; SwFrameFormat* lcl_EnsureCoreConnected(SwFrameFormat* pFormat, cppu::OWeakObject* pObject) { @@ -551,7 +551,7 @@ void SwRangeDescriptor::Normalize() std::swap(nLeft, nRight); } -static SwXCell* lcl_CreateXCell(SwFrameFormat* pFormat, sal_Int32 nColumn, sal_Int32 nRow) +static rtl::Reference<SwXCell> lcl_CreateXCell(SwFrameFormat* pFormat, sal_Int32 nColumn, sal_Int32 nRow) { const OUString sCellName = sw_GetCellName(nColumn, nRow); SwTable* pTable = SwTable::FindTable(pFormat); @@ -941,11 +941,11 @@ uno::Reference<text::XTextCursor> SwXCell::createTextCursor() throw uno::RuntimeException(); const SwStartNode* pSttNd = m_pStartNode ? m_pStartNode : m_pBox->GetSttNd(); SwPosition aPos(*pSttNd); - SwXTextCursor* const pXCursor = + rtl::Reference<SwXTextCursor> const pXCursor = new SwXTextCursor(*GetDoc(), this, CursorType::TableText, aPos); auto& rUnoCursor(pXCursor->GetCursor()); rUnoCursor.Move(fnMoveForward, GoInNode); - return static_cast<text::XWordCursor*>(pXCursor); + return static_cast<text::XWordCursor*>(pXCursor.get()); } uno::Reference<text::XTextCursor> SwXCell::createTextCursorByRange(const uno::Reference< text::XTextRange > & xTextPosition) @@ -1137,7 +1137,7 @@ void SwXCell::Notify(const SfxHint& rHint) } } -SwXCell* SwXCell::CreateXCell(SwFrameFormat* pTableFormat, SwTableBox* pBox, SwTable *pTable ) +rtl::Reference<SwXCell> SwXCell::CreateXCell(SwFrameFormat* pTableFormat, SwTableBox* pBox, SwTable *pTable ) { if(!pTableFormat || !pBox) return nullptr; @@ -1149,7 +1149,7 @@ SwXCell* SwXCell::CreateXCell(SwFrameFormat* pTableFormat, SwTableBox* pBox, SwT size_t const nPos = it - pTable->GetTabSortBoxes().begin(); FindUnoInstanceHint<SwTableBox, SwXCell> aHint{pBox}; pTableFormat->GetNotifier().Broadcast(aHint); - return aHint.m_pResult ? aHint.m_pResult : new SwXCell(pTableFormat, pBox, nPos); + return aHint.m_pResult ? aHint.m_pResult.get() : new SwXCell(pTableFormat, pBox, nPos); } /** search if a box exists in a table @@ -3232,10 +3232,9 @@ rtl::Reference<SwXCellRange> SwXCellRange::CreateXCellRange( sw::UnoCursorPointer const& pCursor, SwFrameFormat& rFrameFormat, SwRangeDescriptor const & rDesc) { - SwXCellRange *const pCellRange(new SwXCellRange(pCursor, rFrameFormat, rDesc)); - uno::Reference<table::XCellRange> xCellRange(pCellRange); + rtl::Reference<SwXCellRange> pCellRange(new SwXCellRange(pCursor, rFrameFormat, rDesc)); // need a permanent Reference to initialize m_wThis - pCellRange->m_pImpl->m_wThis = xCellRange; + pCellRange->m_pImpl->m_wThis = uno::Reference<table::XCellRange>(pCellRange); return pCellRange; } @@ -3269,7 +3268,7 @@ SwXCellRange::getCellByPosition(sal_Int32 nColumn, sal_Int32 nRow) if(nColumn >= 0 && nRow >= 0 && m_pImpl->GetColumnCount() > nColumn && m_pImpl->GetRowCount() > nRow ) { - SwXCell* pXCell = lcl_CreateXCell(pFormat, + rtl::Reference<SwXCell> pXCell = lcl_CreateXCell(pFormat, m_pImpl->m_RangeDescriptor.nLeft + nColumn, m_pImpl->m_RangeDescriptor.nTop + nRow); if(pXCell) @@ -3920,7 +3919,7 @@ uno::Any SwXTableRows::getByIndex(sal_Int32 nIndex) pFrameFormat->GetNotifier().Broadcast(aHint); if(!aHint.m_pResult) aHint.m_pResult = new SwXTextTableRow(pFrameFormat, pLine); - uno::Reference<beans::XPropertySet> xRet = static_cast<beans::XPropertySet*>(aHint.m_pResult); + uno::Reference<beans::XPropertySet> xRet = static_cast<beans::XPropertySet*>(aHint.m_pResult.get()); return uno::makeAny(xRet); } diff --git a/sw/source/core/unocore/unotext.cxx b/sw/source/core/unocore/unotext.cxx index 4c0f0afda5f6..651413ad7929 100644 --- a/sw/source/core/unocore/unotext.cxx +++ b/sw/source/core/unocore/unotext.cxx @@ -2539,8 +2539,7 @@ uno::Reference<text::XText> SwXHeadFootText::CreateXHeadFootText( uno::Reference<text::XText> xText(rHeadFootFormat.GetXObject(), uno::UNO_QUERY); if(!xText.is()) { - const auto pXHFT(new SwXHeadFootText(rHeadFootFormat, bIsHeader)); - xText.set(pXHFT); + xText = new SwXHeadFootText(rHeadFootFormat, bIsHeader); rHeadFootFormat.SetXObject(xText); } return xText; @@ -2624,7 +2623,7 @@ SwXHeadFootText::createTextCursor() const SwFormatContent& rFlyContent = rHeadFootFormat.GetContent(); const SwNode& rNode = rFlyContent.GetContentIdx()->GetNode(); SwPosition aPos(rNode); - SwXTextCursor *const pXCursor = new SwXTextCursor(*GetDoc(), this, + rtl::Reference<SwXTextCursor> pXCursor = new SwXTextCursor(*GetDoc(), this, (m_pImpl->m_bIsHeader) ? CursorType::Header : CursorType::Footer, aPos); auto& rUnoCursor(pXCursor->GetCursor()); rUnoCursor.Move(fnMoveForward, GoInNode); @@ -2654,7 +2653,7 @@ SwXHeadFootText::createTextCursor() aExcept.Message = "no text available"; throw aExcept; } - return static_cast<text::XWordCursor*>(pXCursor); + return static_cast<text::XWordCursor*>(pXCursor.get()); } uno::Reference<text::XTextCursor> SAL_CALL SwXHeadFootText::createTextCursorByRange( diff --git a/sw/source/filter/ww8/ww8par.cxx b/sw/source/filter/ww8/ww8par.cxx index 10430ebdefc1..f872e84f2629 100644 --- a/sw/source/filter/ww8/ww8par.cxx +++ b/sw/source/filter/ww8/ww8par.cxx @@ -5593,13 +5593,12 @@ namespace uno::Reference< task::XInteractionHandler > xHandler( rMedium.GetInteractionHandler() ); if( xHandler.is() ) { - ::comphelper::DocPasswordRequest* pRequest = new ::comphelper::DocPasswordRequest( + rtl::Reference<::comphelper::DocPasswordRequest> pRequest = new ::comphelper::DocPasswordRequest( ::comphelper::DocPasswordRequestType::MS, task::PasswordRequestMode_PASSWORD_ENTER, INetURLObject(rMedium.GetOrigURL()) .GetLastName(INetURLObject::DecodeMechanism::WithCharset)); - uno::Reference< task::XInteractionRequest > xRequest( pRequest ); - xHandler->handle( xRequest ); + xHandler->handle( pRequest ); if( pRequest->isPassword() ) aPassw = pRequest->getPassword(); diff --git a/sw/source/filter/ww8/ww8par5.cxx b/sw/source/filter/ww8/ww8par5.cxx index 7c67e6702d3a..88b952099e6a 100644 --- a/sw/source/filter/ww8/ww8par5.cxx +++ b/sw/source/filter/ww8/ww8par5.cxx @@ -2372,11 +2372,11 @@ bool CanUseRemoteLink(const OUString &rGrfName) task::InteractionHandler::createWithParent(comphelper::getProcessComponentContext(), nullptr)); uno::Reference< ucb::XProgressHandler > xProgress; - ::ucbhelper::CommandEnvironment* pCommandEnv = + rtl::Reference<::ucbhelper::CommandEnvironment> pCommandEnv = new ::ucbhelper::CommandEnvironment(new comphelper::SimpleFileAccessInteraction( xIH ), xProgress); ::ucbhelper::Content aCnt(rGrfName, - static_cast< ucb::XCommandEnvironment* >(pCommandEnv), + static_cast< ucb::XCommandEnvironment* >(pCommandEnv.get()), comphelper::getProcessComponentContext()); if ( !INetURLObject( rGrfName ).isAnyKnownWebDAVScheme() ) diff --git a/sw/source/filter/xml/XMLRedlineImportHelper.cxx b/sw/source/filter/xml/XMLRedlineImportHelper.cxx index d368b812a199..aae8843adc59 100644 --- a/sw/source/filter/xml/XMLRedlineImportHelper.cxx +++ b/sw/source/filter/xml/XMLRedlineImportHelper.cxx @@ -476,11 +476,11 @@ Reference<XTextCursor> XMLRedlineImportHelper::CreateRedlineTextSection( // create (UNO-) cursor SwPosition aPos(*pRedlineNode); - SwXTextCursor *const pXCursor = + rtl::Reference<SwXTextCursor> pXCursor = new SwXTextCursor(*pDoc, pXText, CursorType::Redline, aPos); pXCursor->GetCursor().Move(fnMoveForward, GoInNode); // cast to avoid ambiguity - xReturn = static_cast<text::XWordCursor*>(pXCursor); + xReturn = static_cast<text::XWordCursor*>(pXCursor.get()); } // else: unknown redline -> Ignore diff --git a/sw/source/ui/dbui/dbinsdlg.cxx b/sw/source/ui/dbui/dbinsdlg.cxx index 15a77cdabb82..a48dfeea4726 100644 --- a/sw/source/ui/dbui/dbinsdlg.cxx +++ b/sw/source/ui/dbui/dbinsdlg.cxx @@ -212,9 +212,8 @@ SwInsertDBColAutoPilot::SwInsertDBColAutoPilot( SwView& rView, { SwWrtShell& rSh = pView->GetWrtShell(); SvNumberFormatter* pNumFormatr = rSh.GetNumberFormatter(); - SvNumberFormatsSupplierObj* pNumFormat = new SvNumberFormatsSupplierObj( pNumFormatr ); - Reference< util::XNumberFormatsSupplier > xDocNumFormatsSupplier = pNumFormat; - Reference< util::XNumberFormats > xDocNumberFormats = xDocNumFormatsSupplier->getNumberFormats(); + rtl::Reference<SvNumberFormatsSupplierObj> pNumFormat = new SvNumberFormatsSupplierObj( pNumFormatr ); + Reference< util::XNumberFormats > xDocNumberFormats = pNumFormat->getNumberFormats(); Reference< util::XNumberFormatTypes > xDocNumberFormatTypes(xDocNumberFormats, UNO_QUERY); Reference<XPropertySet> xSourceProps(xDataSource, UNO_QUERY); diff --git a/sw/source/ui/dbui/mmaddressblockpage.cxx b/sw/source/ui/dbui/mmaddressblockpage.cxx index 876f5e5bf27d..a75bd92bf467 100644 --- a/sw/source/ui/dbui/mmaddressblockpage.cxx +++ b/sw/source/ui/dbui/mmaddressblockpage.cxx @@ -1546,10 +1546,9 @@ css::uno::Reference<css::datatransfer::dnd::XDropTarget> AddressMultiLineEdit::G if (!m_xDropTarget.is()) { auto xRealDropTarget = GetDrawingArea()->get_drop_target(); - DropTargetListener* pProxy = new DropTargetListener(xRealDropTarget, m_pParentDialog); - uno::Reference<css::datatransfer::dnd::XDropTargetListener> xListener(pProxy); - xRealDropTarget->addDropTargetListener(xListener); - m_xDropTarget = uno::Reference<css::datatransfer::dnd::XDropTarget>(pProxy); + rtl::Reference<DropTargetListener> pProxy = new DropTargetListener(xRealDropTarget, m_pParentDialog); + xRealDropTarget->addDropTargetListener(pProxy); + m_xDropTarget = pProxy; } return m_xDropTarget; } diff --git a/sw/source/ui/dbui/mmoutputtypepage.cxx b/sw/source/ui/dbui/mmoutputtypepage.cxx index 7a8730acfe34..d55275d02ff7 100644 --- a/sw/source/ui/dbui/mmoutputtypepage.cxx +++ b/sw/source/ui/dbui/mmoutputtypepage.cxx @@ -396,8 +396,7 @@ void SwSendMailDialog::IterateMails() pCurrentMailDescriptor = m_pImpl->GetNextDescriptor(); continue; } - SwMailMessage* pMessage = new SwMailMessage; - uno::Reference< mail::XMailMessage > xMessage = pMessage; + rtl::Reference<SwMailMessage> pMessage = new SwMailMessage; if(m_pConfigItem->IsMailReplyTo()) pMessage->setReplyToAddress(m_pConfigItem->GetMailReplyTo()); pMessage->addRecipient( pCurrentMailDescriptor->sEMail ); @@ -444,7 +443,7 @@ void SwSendMailDialog::IterateMails() } while (nPos >= 0); } - m_pImpl->xMailDispatcher->enqueueMailMessage( xMessage ); + m_pImpl->xMailDispatcher->enqueueMailMessage( pMessage ); pCurrentMailDescriptor = m_pImpl->GetNextDescriptor(); } UpdateTransferStatus(); diff --git a/sw/source/ui/vba/vbadocuments.cxx b/sw/source/ui/vba/vbadocuments.cxx index 5c8dea110a85..1478a1f17caf 100644 --- a/sw/source/ui/vba/vbadocuments.cxx +++ b/sw/source/ui/vba/vbadocuments.cxx @@ -22,6 +22,7 @@ #include <com/sun/star/frame/XModel.hpp> #include <tools/urlobj.hxx> +#include <rtl/ref.hxx> #include "vbadocument.hxx" #include "vbadocuments.hxx" @@ -37,7 +38,7 @@ getDocument( uno::Reference< uno::XComponentContext > const & xContext, const un if( !xDoc.is() ) return uno::Any(); - SwVbaDocument *pWb = new SwVbaDocument( uno::Reference< XHelperInterface >( aApplication, uno::UNO_QUERY_THROW ), xContext, xDoc ); + rtl::Reference<SwVbaDocument> pWb = new SwVbaDocument( uno::Reference< XHelperInterface >( aApplication, uno::UNO_QUERY_THROW ), xContext, xDoc ); return uno::Any( uno::Reference< word::XDocument > (pWb) ); } diff --git a/sw/source/uibase/dbui/dbmgr.cxx b/sw/source/uibase/dbui/dbmgr.cxx index b7805d8b5707..b7a4dda755c4 100644 --- a/sw/source/uibase/dbui/dbmgr.cxx +++ b/sw/source/uibase/dbui/dbmgr.cxx @@ -950,13 +950,13 @@ static SfxObjectShell* lcl_CreateWorkingDocument( return xWorkObjectShell.get(); } -static SwMailMessage* lcl_CreateMailFromDoc( +static rtl::Reference<SwMailMessage> lcl_CreateMailFromDoc( const SwMergeDescriptor &rMergeDescriptor, const OUString &sFileURL, const OUString &sMailRecipient, const OUString &sMailBodyMimeType, rtl_TextEncoding sMailEncoding, const OUString &sAttachmentMimeType ) { - SwMailMessage* pMessage = new SwMailMessage; + rtl::Reference<SwMailMessage> pMessage = new SwMailMessage; if( rMergeDescriptor.pMailMergeConfigItem->IsMailReplyTo() ) pMessage->setReplyToAddress(rMergeDescriptor.pMailMergeConfigItem->GetMailReplyTo()); pMessage->addRecipient( sMailRecipient ); @@ -1744,9 +1744,8 @@ sal_uLong SwDBManager::GetColumnFormat( uno::Reference< sdbc::XDataSource> const } if(xSource.is() && xConnection.is() && xColumn.is() && pNFormatr) { - SvNumberFormatsSupplierObj* pNumFormat = new SvNumberFormatsSupplierObj( pNFormatr ); - uno::Reference< util::XNumberFormatsSupplier > xDocNumFormatsSupplier = pNumFormat; - uno::Reference< util::XNumberFormats > xDocNumberFormats = xDocNumFormatsSupplier->getNumberFormats(); + rtl::Reference<SvNumberFormatsSupplierObj> pNumFormat = new SvNumberFormatsSupplierObj( pNFormatr ); + uno::Reference< util::XNumberFormats > xDocNumberFormats = pNumFormat->getNumberFormats(); uno::Reference< util::XNumberFormatTypes > xDocNumberFormatTypes(xDocNumberFormats, uno::UNO_QUERY); css::lang::Locale aLocale( LanguageTag( nLanguage ).getLocale()); diff --git a/sw/source/uibase/dochdl/swdtflvr.cxx b/sw/source/uibase/dochdl/swdtflvr.cxx index dbb641f08e41..1e0e01acbc59 100644 --- a/sw/source/uibase/dochdl/swdtflvr.cxx +++ b/sw/source/uibase/dochdl/swdtflvr.cxx @@ -3268,7 +3268,7 @@ bool SwTransferable::PasteFileList( TransferableDataHelper& rData, // iterate over the filelist for( sal_uLong n = 0, nEnd = aFileList.Count(); n < nEnd; ++n ) { - TransferDataContainer* pHlp = new TransferDataContainer; + rtl::Reference<TransferDataContainer> pHlp = new TransferDataContainer; pHlp->CopyString( SotClipboardFormatId::SIMPLE_FILE, aFileList.GetFile( n )); TransferableDataHelper aData( pHlp ); diff --git a/sw/source/uibase/docvw/AnnotationWin2.cxx b/sw/source/uibase/docvw/AnnotationWin2.cxx index 8d0546a6d972..cee5d859ae57 100644 --- a/sw/source/uibase/docvw/AnnotationWin2.cxx +++ b/sw/source/uibase/docvw/AnnotationWin2.cxx @@ -1380,14 +1380,11 @@ void SwAnnotationWin::ChangeSidebarItem( SwSidebarItem const & rSidebarItem ) css::uno::Reference< css::accessibility::XAccessible > SwAnnotationWin::CreateAccessible() { - SidebarWinAccessible* pAcc( new SidebarWinAccessible( *this, + rtl::Reference<SidebarWinAccessible> pAcc( new SidebarWinAccessible( *this, mrView.GetWrtShell(), mrSidebarItem ) ); - css::uno::Reference< css::awt::XWindowPeer > xWinPeer( pAcc ); - SetWindowPeer( xWinPeer, pAcc ); - - css::uno::Reference< css::accessibility::XAccessible > xAcc( xWinPeer, css::uno::UNO_QUERY ); - return xAcc; + SetWindowPeer( pAcc, pAcc.get() ); + return pAcc; } } // eof of namespace sw::sidebarwindows diff --git a/sw/source/uibase/docvw/DashedLine.cxx b/sw/source/uibase/docvw/DashedLine.cxx index eb7d59066e2c..629f77330aa7 100644 --- a/sw/source/uibase/docvw/DashedLine.cxx +++ b/sw/source/uibase/docvw/DashedLine.cxx @@ -69,10 +69,8 @@ void SwDashedLine::Paint(vcl::RenderContext& rRenderContext, const tools::Rectan const basegfx::BColor aOtherColor = basegfx::utils::hsl2rgb(aHslLine); // Compute the plain line - drawinglayer::primitive2d::PolygonHairlinePrimitive2D * pPlainLine = - new drawinglayer::primitive2d::PolygonHairlinePrimitive2D(aPolygon, aOtherColor); + aSeq[0] = new drawinglayer::primitive2d::PolygonHairlinePrimitive2D(aPolygon, aOtherColor); - aSeq[0] = drawinglayer::primitive2d::Primitive2DReference(pPlainLine); // Dashed line in twips aStrokePattern.push_back(3); aStrokePattern.push_back(3); @@ -81,14 +79,12 @@ void SwDashedLine::Paint(vcl::RenderContext& rRenderContext, const tools::Rectan } // Compute the dashed line primitive - drawinglayer::primitive2d::PolyPolygonStrokePrimitive2D * pLine = + aSeq[aSeq.size() - 1] = new drawinglayer::primitive2d::PolyPolygonStrokePrimitive2D( basegfx::B2DPolyPolygon(aPolygon), drawinglayer::attribute::LineAttribute(m_pColorFn().getBColor()), drawinglayer::attribute::StrokeAttribute(aStrokePattern)); - aSeq[aSeq.size() - 1] = drawinglayer::primitive2d::Primitive2DReference(pLine); - pProcessor->process(aSeq); } diff --git a/sw/source/uibase/docvw/SidebarWinAcc.cxx b/sw/source/uibase/docvw/SidebarWinAcc.cxx index 9ca77ffdc1ba..4e52b471aa4b 100644 --- a/sw/source/uibase/docvw/SidebarWinAcc.cxx +++ b/sw/source/uibase/docvw/SidebarWinAcc.cxx @@ -130,13 +130,12 @@ void SidebarWinAccessible::ChangeSidebarItem( const SwSidebarItem& rSidebarItem css::uno::Reference< css::accessibility::XAccessibleContext > SidebarWinAccessible::CreateAccessibleContext() { - SidebarWinAccessibleContext* pAccContext = + rtl::Reference<SidebarWinAccessibleContext> pAccContext = new SidebarWinAccessibleContext( mrSidebarWin, mrViewShell, mpAnchorFrame ); - css::uno::Reference< css::accessibility::XAccessibleContext > xAcc( pAccContext ); bAccContextCreated = true; - return xAcc; + return pAccContext; } } // end of namespace sw::sidebarwindows diff --git a/sw/source/uibase/table/chartins.cxx b/sw/source/uibase/table/chartins.cxx index f2d78c2bf1fb..8c1737f11305 100644 --- a/sw/source/uibase/table/chartins.cxx +++ b/sw/source/uibase/table/chartins.cxx @@ -209,11 +209,10 @@ SwInsertChart::SwInsertChart( const Link<css::ui::dialogs::DialogClosedEvent*, v } } - ::svt::DialogClosedListener* pListener = new ::svt::DialogClosedListener(); + rtl::Reference<::svt::DialogClosedListener> pListener = new ::svt::DialogClosedListener(); pListener->SetDialogClosedLink( rLink ); - css::uno::Reference<css::ui::dialogs::XDialogClosedListener> xListener( pListener ); - xDialog->startExecuteModal( xListener ); + xDialog->startExecuteModal( pListener ); } else { diff --git a/sw/source/uibase/uno/unotxdoc.cxx b/sw/source/uibase/uno/unotxdoc.cxx index 2ba12a2f6943..4eb4e50e697e 100644 --- a/sw/source/uibase/uno/unotxdoc.cxx +++ b/sw/source/uibase/uno/unotxdoc.cxx @@ -381,9 +381,6 @@ SwXTextDocument::SwXTextDocument(SwDocShell* pShell) m_bObjectValid(pShell != nullptr), - m_pDrawPage(nullptr), - mxXDrawPage(), - m_pBodyText(nullptr), mxXNumberingRules(), mxXFootnotes(), mxXFootnoteSettings(), @@ -456,10 +453,9 @@ void SwXTextDocument::GetNumberFormatter() { if ( m_pDocShell->GetDoc() ) { - SvNumberFormatsSupplierObj* pNumFormat = new SvNumberFormatsSupplierObj( + rtl::Reference<SvNumberFormatsSupplierObj> pNumFormat = new SvNumberFormatsSupplierObj( m_pDocShell->GetDoc()->GetNumberFormatter()); - Reference< util::XNumberFormatsSupplier > xTmp = pNumFormat; - m_xNumFormatAgg.set(xTmp, UNO_QUERY); + m_xNumFormatAgg = pNumFormat; } if(m_xNumFormatAgg.is()) m_xNumFormatAgg->setDelegator(static_cast<cppu::OWeakObject*>(static_cast<SwXTextDocumentBaseClass*>(this))); @@ -489,8 +485,7 @@ Reference< XText > SwXTextDocument::getText() throw DisposedException("", static_cast< XTextDocument* >(this)); if(!m_xBodyText.is()) { - m_pBodyText = new SwXBodyText(m_pDocShell->GetDoc()); - m_xBodyText = m_pBodyText; + m_xBodyText = new SwXBodyText(m_pDocShell->GetDoc()); } return m_xBodyText; } @@ -1337,17 +1332,16 @@ Reference< drawing::XDrawPage > SwXTextDocument::getDrawPage() SolarMutexGuard aGuard; if(!IsValid()) throw DisposedException("", static_cast< XTextDocument* >(this)); - if(!mxXDrawPage.is()) + if(!m_xDrawPage.is()) { - m_pDrawPage = new SwXDrawPage(m_pDocShell->GetDoc()); - mxXDrawPage = m_pDrawPage; + m_xDrawPage = new SwXDrawPage(m_pDocShell->GetDoc()); // Create a Reference to trigger the complete initialization of the // object. Otherwise in some corner cases it would get initialized // at ::InitNewDoc -> which would get called during // close() or dispose() -> n#681746 - uno::Reference<lang::XComponent> xTriggerInit( mxXDrawPage, uno::UNO_QUERY ); + uno::Reference<lang::XComponent> xTriggerInit( static_cast<cppu::OWeakObject*>(m_xDrawPage.get()), uno::UNO_QUERY ); } - return mxXDrawPage; + return m_xDrawPage; } namespace { @@ -1478,11 +1472,7 @@ void SwXTextDocument::InitNewDoc() mxXEmbeddedObjects.clear(); } - if(m_xBodyText.is()) - { - m_xBodyText = nullptr; - m_pBodyText = nullptr; - } + m_xBodyText = nullptr; if(m_xNumFormatAgg.is()) { @@ -1522,14 +1512,13 @@ void SwXTextDocument::InitNewDoc() mxXTextSections.clear(); } - if(mxXDrawPage.is()) + if(m_xDrawPage.is()) { // #i91798#, #i91895# // dispose XDrawPage here. We are the owner and know that it is no longer in a valid condition. - uno::Reference<lang::XComponent> xComp( mxXDrawPage, uno::UNO_QUERY ); - xComp->dispose(); - m_pDrawPage->InvalidateSwDoc(); - mxXDrawPage.clear(); + Reference<XComponent>(static_cast<cppu::OWeakObject*>(m_xDrawPage.get()), UNO_QUERY_THROW)->dispose(); + m_xDrawPage->InvalidateSwDoc(); + m_xDrawPage.clear(); } if ( mxXNumberingRules.is() ) diff --git a/sw/source/uibase/uno/unotxvw.cxx b/sw/source/uibase/uno/unotxvw.cxx index 589ad2fc8644..e6621293391d 100644 --- a/sw/source/uibase/uno/unotxvw.cxx +++ b/sw/source/uibase/uno/unotxvw.cxx @@ -1725,12 +1725,12 @@ SwXTextView::getTransferableForTextRange(uno::Reference<text::XTextRange> const& //force immediate shell update GetView()->StopShellTimer(); SwWrtShell& rSh = GetView()->GetWrtShell(); - SwTransferable *const pTransfer = new SwTransferable(rSh); + rtl::Reference<SwTransferable> pTransfer = new SwTransferable(rSh); const bool bLockedView = rSh.IsViewLocked(); rSh.LockView( true ); pTransfer->PrepareForCopyTextRange(aPam); rSh.LockView( bLockedView ); - return uno::Reference<datatransfer::XTransferable>(pTransfer); + return pTransfer; } uno::Reference< datatransfer::XTransferable > SAL_CALL SwXTextView::getTransferable() @@ -1748,12 +1748,12 @@ uno::Reference< datatransfer::XTransferable > SAL_CALL SwXTextView::getTransfera } else { - SwTransferable* pTransfer = new SwTransferable( rSh ); + rtl::Reference<SwTransferable> pTransfer = new SwTransferable( rSh ); const bool bLockedView = rSh.IsViewLocked(); rSh.LockView( true ); //lock visible section pTransfer->PrepareForCopy(); rSh.LockView( bLockedView ); - return uno::Reference< datatransfer::XTransferable >( pTransfer ); + return pTransfer; } } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits