diff --git a/filter/source/graphicfilter/idxf/dxf2mtf.cxx b/filter/source/graphicfilter/idxf/dxf2mtf.cxx index a30da0c25912..692151d4012b 100644 --- a/filter/source/graphicfilter/idxf/dxf2mtf.cxx +++ b/filter/source/graphicfilter/idxf/dxf2mtf.cxx @@ -574,7 +574,7 @@ void DXF2GDIMetaFile::DrawHatchEntity(const DXFHatchEntity & rE, const DXFTransf { for ( std::deque::size_type i = 0; i < rPathData.aEdges.size(); i++ ) { - const DXFEdgeType* pEdge = rPathData.aEdges[ i ]; + const DXFEdgeType* pEdge = rPathData.aEdges[ i ].get(); switch( pEdge->nEdgeType ) { case 1 : diff --git a/filter/source/graphicfilter/idxf/dxfentrd.cxx b/filter/source/graphicfilter/idxf/dxfentrd.cxx index 8c8eb309b4c0..9995ef8270d7 100644 --- a/filter/source/graphicfilter/idxf/dxfentrd.cxx +++ b/filter/source/graphicfilter/idxf/dxfentrd.cxx @@ -562,8 +562,6 @@ DXFBoundaryPathData::DXFBoundaryPathData() : DXFBoundaryPathData::~DXFBoundaryPathData() { - for (auto i: aEdges) - delete i; } bool DXFBoundaryPathData::EvaluateGroup( DXFGroupReader & rDGR ) @@ -619,10 +617,10 @@ bool DXFBoundaryPathData::EvaluateGroup( DXFGroupReader & rDGR ) sal_Int32 nEdgeType = rDGR.GetI(); switch( nEdgeType ) { - case 1 : aEdges.push_back( new DXFEdgeTypeLine() ); break; - case 2 : aEdges.push_back( new DXFEdgeTypeCircularArc() ); break; - case 3 : aEdges.push_back( new DXFEdgeTypeEllipticalArc() ); break; - case 4 : aEdges.push_back( new DXFEdgeTypeSpline() ); break; + case 1 : aEdges.emplace_back( new DXFEdgeTypeLine() ); break; + case 2 : aEdges.emplace_back( new DXFEdgeTypeCircularArc() ); break; + case 3 : aEdges.emplace_back( new DXFEdgeTypeEllipticalArc() ); break; + case 4 : aEdges.emplace_back( new DXFEdgeTypeSpline() ); break; } } else if ( aEdges.size() ) diff --git a/filter/source/graphicfilter/idxf/dxfentrd.hxx b/filter/source/graphicfilter/idxf/dxfentrd.hxx index 85dbd32b2c5e..849ffeca6cd4 100644 --- a/filter/source/graphicfilter/idxf/dxfentrd.hxx +++ b/filter/source/graphicfilter/idxf/dxfentrd.hxx @@ -412,7 +412,7 @@ struct DXFBoundaryPathData sal_Int32 nPointIndex; std::unique_ptr pP; - std::deque aEdges; + std::deque> aEdges; DXFBoundaryPathData(); ~DXFBoundaryPathData();