Kaydet (Commit) 62ddce42 authored tarafından Xisco Fauli's avatar Xisco Fauli Kaydeden (comit) Noel Grandin

tdf#89329: use unique_ptr for pImpl in xmlcnitm

Change-Id: Iec37e509b78e58e90591bad26735ff31462eaf5c
Reviewed-on: https://gerrit.libreoffice.org/25328Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarNoel Grandin <noelgrandin@gmail.com>
üst a890e318
...@@ -30,28 +30,27 @@ using namespace ::com::sun::star::xml; ...@@ -30,28 +30,27 @@ using namespace ::com::sun::star::xml;
SvXMLAttrContainerItem::SvXMLAttrContainerItem( sal_uInt16 _nWhich ) : SvXMLAttrContainerItem::SvXMLAttrContainerItem( sal_uInt16 _nWhich ) :
SfxPoolItem( _nWhich ) SfxPoolItem( _nWhich ),
pImpl( new SvXMLAttrContainerData )
{ {
pImpl = new SvXMLAttrContainerData;
} }
SvXMLAttrContainerItem::SvXMLAttrContainerItem( SvXMLAttrContainerItem::SvXMLAttrContainerItem(
const SvXMLAttrContainerItem& rItem ) : const SvXMLAttrContainerItem& rItem ) :
SfxPoolItem( rItem ) SfxPoolItem( rItem ),
pImpl( new SvXMLAttrContainerData( *rItem.pImpl ) )
{ {
pImpl = new SvXMLAttrContainerData( *rItem.pImpl );
} }
SvXMLAttrContainerItem::~SvXMLAttrContainerItem() SvXMLAttrContainerItem::~SvXMLAttrContainerItem()
{ {
delete pImpl;
} }
bool SvXMLAttrContainerItem::operator==( const SfxPoolItem& rItem ) const bool SvXMLAttrContainerItem::operator==( const SfxPoolItem& rItem ) const
{ {
DBG_ASSERT( dynamic_cast< const SvXMLAttrContainerItem* >(&rItem) != nullptr, DBG_ASSERT( dynamic_cast< const SvXMLAttrContainerItem* >(&rItem) != nullptr,
"SvXMLAttrContainerItem::operator ==(): Bad type"); "SvXMLAttrContainerItem::operator ==(): Bad type");
return *pImpl == *static_cast<const SvXMLAttrContainerItem&>(rItem).pImpl; return *pImpl.get() == *static_cast<const SvXMLAttrContainerItem&>(rItem).pImpl.get();
} }
bool SvXMLAttrContainerItem::GetPresentation( bool SvXMLAttrContainerItem::GetPresentation(
...@@ -73,7 +72,7 @@ sal_uInt16 SvXMLAttrContainerItem::GetVersion( sal_uInt16 /*nFileFormatVersion*/ ...@@ -73,7 +72,7 @@ sal_uInt16 SvXMLAttrContainerItem::GetVersion( sal_uInt16 /*nFileFormatVersion*/
bool SvXMLAttrContainerItem::QueryValue( css::uno::Any& rVal, sal_uInt8 /*nMemberId*/ ) const bool SvXMLAttrContainerItem::QueryValue( css::uno::Any& rVal, sal_uInt8 /*nMemberId*/ ) const
{ {
Reference<XNameContainer> xContainer = Reference<XNameContainer> xContainer =
new SvUnoAttributeContainer( new SvXMLAttrContainerData( *pImpl ) ); new SvUnoAttributeContainer( new SvXMLAttrContainerData( *pImpl.get() ) );
rVal.setValue( &xContainer, cppu::UnoType<XNameContainer>::get()); rVal.setValue( &xContainer, cppu::UnoType<XNameContainer>::get());
return true; return true;
...@@ -94,8 +93,7 @@ bool SvXMLAttrContainerItem::PutValue( const css::uno::Any& rVal, sal_uInt8 /*nM ...@@ -94,8 +93,7 @@ bool SvXMLAttrContainerItem::PutValue( const css::uno::Any& rVal, sal_uInt8 /*nM
if( pContainer ) if( pContainer )
{ {
delete pImpl; pImpl.reset( new SvXMLAttrContainerData( * pContainer->GetContainerImpl() ) );
pImpl = new SvXMLAttrContainerData( * pContainer->GetContainerImpl() );
} }
else else
{ {
...@@ -147,7 +145,7 @@ bool SvXMLAttrContainerItem::PutValue( const css::uno::Any& rVal, sal_uInt8 /*nM ...@@ -147,7 +145,7 @@ bool SvXMLAttrContainerItem::PutValue( const css::uno::Any& rVal, sal_uInt8 /*nM
} }
if( nAttr == nCount ) if( nAttr == nCount )
pImpl = pNewImpl.release(); pImpl.reset( pNewImpl.release() );
else else
return false; return false;
} }
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
#include <svl/poolitem.hxx> #include <svl/poolitem.hxx>
#include <editeng/editengdllapi.h> #include <editeng/editengdllapi.h>
#include <memory>
class SvXMLNamespaceMap; class SvXMLNamespaceMap;
...@@ -30,7 +31,7 @@ class SvXMLAttrContainerData; ...@@ -30,7 +31,7 @@ class SvXMLAttrContainerData;
class EDITENG_DLLPUBLIC SvXMLAttrContainerItem: public SfxPoolItem class EDITENG_DLLPUBLIC SvXMLAttrContainerItem: public SfxPoolItem
{ {
SvXMLAttrContainerData *pImpl; std::unique_ptr<SvXMLAttrContainerData> pImpl;
public: public:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment