diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2015-03-24 09:02:50 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2015-03-24 09:03:15 +0100 |
commit | 2754e16702b45362c3291b65af028f9c648894dc (patch) | |
tree | 6fb86ec61921b88500c7932ba4836138fb03a0ae /sw | |
parent | 5dad2733b83297d900cec548596e5358d8335f7b (diff) |
DocxAttributeOutput::m_pSdtPrDataBindingAttrs: use std::unique_ptr
Change-Id: I13a9a2130b3d5cc4c1e6e2d299e0c7227cf80544
Diffstat (limited to 'sw')
-rw-r--r-- | sw/source/filter/ww8/docxattributeoutput.cxx | 24 | ||||
-rw-r--r-- | sw/source/filter/ww8/docxattributeoutput.hxx | 6 |
2 files changed, 9 insertions, 21 deletions
diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx index 15c4c6261aa7..737a80c0feaa 100644 --- a/sw/source/filter/ww8/docxattributeoutput.cxx +++ b/sw/source/filter/ww8/docxattributeoutput.cxx @@ -326,17 +326,12 @@ void DocxAttributeOutput::StartParagraph( ww8::WW8TableNodeInfo::Pointer_t pText m_bIsFirstParagraph = false; } -static void lcl_deleteAndResetTheLists( std::unique_ptr<sax_fastparser::FastAttributeList> &pSdtPrTokenChildren, ::sax_fastparser::FastAttributeList* &pSdtPrDataBindingAttrs, OUString& rSdtPrAlias) +static void lcl_deleteAndResetTheLists( std::unique_ptr<sax_fastparser::FastAttributeList>& pSdtPrTokenChildren, std::unique_ptr<sax_fastparser::FastAttributeList>& pSdtPrDataBindingAttrs, OUString& rSdtPrAlias) { if( pSdtPrTokenChildren ) - { pSdtPrTokenChildren.reset(0); - } if( pSdtPrDataBindingAttrs ) - { - delete pSdtPrDataBindingAttrs; - pSdtPrDataBindingAttrs = NULL; - } + pSdtPrDataBindingAttrs.reset(0); if (!rSdtPrAlias.isEmpty()) rSdtPrAlias.clear(); } @@ -603,7 +598,7 @@ void DocxAttributeOutput::EndParagraph( ww8::WW8TableNodeInfoInner::Pointer_t pT void DocxAttributeOutput::WriteSdtBlock( sal_Int32& nSdtPrToken, std::unique_ptr<sax_fastparser::FastAttributeList>& pSdtPrTokenChildren, ::sax_fastparser::FastAttributeList*& pSdtPrTokenAttributes, - ::sax_fastparser::FastAttributeList*& pSdtPrDataBindingAttrs, + std::unique_ptr<sax_fastparser::FastAttributeList>& pSdtPrDataBindingAttrs, OUString& rSdtPrAlias, bool bPara ) { @@ -659,7 +654,7 @@ void DocxAttributeOutput::WriteSdtBlock( sal_Int32& nSdtPrToken, if(( pSdtPrDataBindingAttrs ) && !m_rExport.SdrExporter().IsParagraphHasDrawing()) { - XFastAttributeListRef xAttrList( pSdtPrDataBindingAttrs ); + XFastAttributeListRef xAttrList( pSdtPrDataBindingAttrs.release() ); m_pSerializer->singleElementNS( XML_w, XML_dataBinding, xAttrList ); } @@ -693,10 +688,7 @@ void DocxAttributeOutput::WriteSdtBlock( sal_Int32& nSdtPrToken, nSdtPrToken = 0; pSdtPrTokenChildren.reset(0); if( pSdtPrDataBindingAttrs ) - { - // do not delete yet; it's in xAttrList inside the parser - pSdtPrDataBindingAttrs = NULL; - } + pSdtPrDataBindingAttrs.reset(0); rSdtPrAlias.clear(); } } @@ -8226,7 +8218,7 @@ void DocxAttributeOutput::CharGrabBag( const SfxGrabBagItem& rItem ) OUStringToOString( sValue, RTL_TEXTENCODING_UTF8 ).getStr() ); } } - else if (aPropertyValue.Name == "ooxml:CT_SdtPr_dataBinding" && m_pRunSdtPrDataBindingAttrs == NULL) + else if (aPropertyValue.Name == "ooxml:CT_SdtPr_dataBinding" && !m_pRunSdtPrDataBindingAttrs) { uno::Sequence<beans::PropertyValue> aGrabBag; aPropertyValue.Value >>= aGrabBag; @@ -8326,10 +8318,8 @@ DocxAttributeOutput::DocxAttributeOutput( DocxExport &rExport, FSHelperPtr pSeri m_setFootnote(false) , m_nParagraphSdtPrToken(0) , m_pParagraphSdtPrTokenAttributes(NULL) - , m_pParagraphSdtPrDataBindingAttrs(NULL) , m_nRunSdtPrToken(0) , m_nStateOfFlyFrame( FLY_NOT_PROCESSED ) - , m_pRunSdtPrDataBindingAttrs(NULL) , m_bParagraphSdtHasId(false) { } @@ -8338,8 +8328,6 @@ DocxAttributeOutput::~DocxAttributeOutput() { delete m_pTableWrt, m_pTableWrt = NULL; delete m_pParagraphSdtPrTokenAttributes; m_pParagraphSdtPrTokenAttributes = NULL; - delete m_pParagraphSdtPrDataBindingAttrs; m_pParagraphSdtPrDataBindingAttrs = NULL; - delete m_pRunSdtPrDataBindingAttrs; m_pRunSdtPrDataBindingAttrs = NULL; } DocxExport& DocxAttributeOutput::GetExport() diff --git a/sw/source/filter/ww8/docxattributeoutput.hxx b/sw/source/filter/ww8/docxattributeoutput.hxx index c2cf6c7b4267..a96bb22dc467 100644 --- a/sw/source/filter/ww8/docxattributeoutput.hxx +++ b/sw/source/filter/ww8/docxattributeoutput.hxx @@ -706,7 +706,7 @@ private: void WriteSdtBlock(sal_Int32& nSdtPrToken, std::unique_ptr<sax_fastparser::FastAttributeList>& pSdtPrTokenChildren, ::sax_fastparser::FastAttributeList*& pSdtPrTokenAttributes, - ::sax_fastparser::FastAttributeList*& pSdtPrDataBindingAttrs, + std::unique_ptr<sax_fastparser::FastAttributeList>& pSdtPrDataBindingAttrs, OUString& rSdtPrAlias, bool bPara); /// Closes a currently open SDT block. @@ -911,13 +911,13 @@ private: sal_Int32 m_nParagraphSdtPrToken; std::unique_ptr<sax_fastparser::FastAttributeList> m_pParagraphSdtPrTokenChildren; ::sax_fastparser::FastAttributeList *m_pParagraphSdtPrTokenAttributes; - ::sax_fastparser::FastAttributeList *m_pParagraphSdtPrDataBindingAttrs; + std::unique_ptr<sax_fastparser::FastAttributeList> m_pParagraphSdtPrDataBindingAttrs; /// members to control the existence of grabbagged SDT properties in the text run sal_Int32 m_nRunSdtPrToken; /// State of the Fly at current position FlyProcessingState m_nStateOfFlyFrame; std::unique_ptr<sax_fastparser::FastAttributeList> m_pRunSdtPrTokenChildren; - ::sax_fastparser::FastAttributeList *m_pRunSdtPrDataBindingAttrs; + std::unique_ptr<sax_fastparser::FastAttributeList> m_pRunSdtPrDataBindingAttrs; /// Value of the <w:alias> paragraph SDT element. OUString m_aParagraphSdtPrAlias; /// Same as m_aParagraphSdtPrAlias, but its content is aviailable till the SDT is closed. |