diff options
Diffstat (limited to 'oox')
-rw-r--r-- | oox/source/export/drawingml.cxx | 12 | ||||
-rw-r--r-- | oox/source/export/vmlexport.cxx | 12 |
2 files changed, 8 insertions, 16 deletions
diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx index 91f4a779a984..54a7f2f6eab1 100644 --- a/oox/source/export/drawingml.cxx +++ b/oox/source/export/drawingml.cxx @@ -3457,8 +3457,7 @@ void DrawingML::WriteText(const Reference<XInterface>& rXIface, bool bBodyPr, bo const SdrTextObj* pTxtObj = dynamic_cast<SdrTextObj*>( pSdrObject ); if (pTxtObj && mpTextExport) { - const OutlinerParaObject* pParaObj = nullptr; - bool bOwnParaObj = false; + std::optional<OutlinerParaObject> pParaObj; /* #i13885# @@ -3467,18 +3466,15 @@ void DrawingML::WriteText(const Reference<XInterface>& rXIface, bool bBodyPr, bo */ if (pTxtObj->IsTextEditActive()) { - pParaObj = pTxtObj->CreateEditOutlinerParaObject().release(); - bOwnParaObj = true; + pParaObj = pTxtObj->CreateEditOutlinerParaObject(); } - else - pParaObj = pTxtObj->GetOutlinerParaObject(); + else if (pTxtObj->GetOutlinerParaObject()) + pParaObj = *pTxtObj->GetOutlinerParaObject(); if (pParaObj) { // this is reached only in case some text is attached to the shape mpTextExport->WriteOutliner(*pParaObj); - if (bOwnParaObj) - delete pParaObj; } return; } diff --git a/oox/source/export/vmlexport.cxx b/oox/source/export/vmlexport.cxx index 5b267184a291..d4243c6e07bf 100644 --- a/oox/source/export/vmlexport.cxx +++ b/oox/source/export/vmlexport.cxx @@ -1420,8 +1420,7 @@ sal_Int32 VMLExport::StartShape() const SdrTextObj* pTxtObj = dynamic_cast<const SdrTextObj*>( m_pSdrObject ); if (pTxtObj && m_pTextExport && msfilter::util::HasTextBoxContent(m_nShapeType) && !IsWaterMarkShape(m_pSdrObject->GetName()) && !lcl_isTextBox(m_pSdrObject)) { - const OutlinerParaObject* pParaObj = nullptr; - bool bOwnParaObj = false; + std::optional<OutlinerParaObject> pParaObj; /* #i13885# @@ -1430,12 +1429,11 @@ sal_Int32 VMLExport::StartShape() */ if (pTxtObj->IsTextEditActive()) { - pParaObj = pTxtObj->CreateEditOutlinerParaObject().release(); - bOwnParaObj = true; + pParaObj = pTxtObj->CreateEditOutlinerParaObject(); } - else + else if (pTxtObj->GetOutlinerParaObject()) { - pParaObj = pTxtObj->GetOutlinerParaObject(); + pParaObj = *pTxtObj->GetOutlinerParaObject(); } if( pParaObj ) @@ -1450,8 +1448,6 @@ sal_Int32 VMLExport::StartShape() m_pSerializer->startElementNS(XML_v, XML_textbox, pTextboxAttrList); m_pTextExport->WriteOutliner(*pParaObj); m_pSerializer->endElementNS(XML_v, XML_textbox); - if( bOwnParaObj ) - delete pParaObj; } } |