[Libreoffice-commits] core.git: sw/source

Caolán McNamara caolanm at redhat.com
Wed Feb 14 20:19:44 UTC 2018


 sw/source/core/unocore/unofield.cxx |  150 ++++++++++++++++++------------------
 1 file changed, 75 insertions(+), 75 deletions(-)

New commits:
commit e8508d1db58da7cb5901fa7d63c8f04da667f2f0
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed Feb 14 12:58:30 2018 +0000

    ofz#6321 Direct-leak
    
    Change-Id: I27214b1fd293885e33c95ffad854ba491d98c044
    Reviewed-on: https://gerrit.libreoffice.org/49724
    Reviewed-by: Julien Nabet <serval2412 at yahoo.fr>
    Tested-by: Jenkins <ci at libreoffice.org>

diff --git a/sw/source/core/unocore/unofield.cxx b/sw/source/core/unocore/unofield.cxx
index db1cc9b3e378..9696663301fa 100644
--- a/sw/source/core/unocore/unofield.cxx
+++ b/sw/source/core/unocore/unofield.cxx
@@ -1324,7 +1324,7 @@ void SAL_CALL SwXTextField::attach(
     SwUnoInternalPaM aPam(*pDoc);
     // this now needs to return TRUE
     ::sw::XTextRangeToSwPaM(aPam, xTextRange);
-    SwField* pField = nullptr;
+    std::unique_ptr<SwField> xField;
     switch (m_pImpl->m_nServiceId)
     {
         case SwServiceType::FieldTypeAnnotation:
@@ -1348,15 +1348,15 @@ void SAL_CALL SwXTextField::attach(
                     pPostItField->SetTextObject( m_pImpl->m_xTextObject->CreateText() );
                     pPostItField->SetPar2(m_pImpl->m_xTextObject->GetText());
                 }
-                pField = pPostItField;
+                xField.reset(pPostItField);
             }
             break;
         case SwServiceType::FieldTypeScript:
         {
             SwFieldType* pFieldType = pDoc->getIDocumentFieldsAccess().GetSysFieldType(SwFieldIds::Script);
-            pField = new SwScriptField(static_cast<SwScriptFieldType*>(pFieldType),
+            xField.reset(new SwScriptField(static_cast<SwScriptFieldType*>(pFieldType),
                     m_pImpl->m_pProps->sPar1, m_pImpl->m_pProps->sPar2,
-                    m_pImpl->m_pProps->bBool1);
+                    m_pImpl->m_pProps->bBool1));
         }
         break;
         case SwServiceType::FieldTypeDateTime:
@@ -1372,7 +1372,7 @@ void SAL_CALL SwXTextField::attach(
             SwDateTimeField *const pDTField = new SwDateTimeField(
                     static_cast<SwDateTimeFieldType*>(pFieldType),
                         nSub, m_pImpl->m_pProps->nFormat);
-            pField = pDTField;
+            xField.reset(pDTField);
             if (m_pImpl->m_pProps->fDouble > 0.)
             {
                 pDTField->SetValue(m_pImpl->m_pProps->fDouble);
@@ -1380,7 +1380,7 @@ void SAL_CALL SwXTextField::attach(
             if (m_pImpl->m_pProps->pDateTime)
             {
                 uno::Any aVal; aVal <<= *m_pImpl->m_pProps->pDateTime;
-                pField->PutValue( aVal, FIELD_PROP_DATE_TIME );
+                xField->PutValue( aVal, FIELD_PROP_DATE_TIME );
             }
             pDTField->SetOffset(m_pImpl->m_pProps->nSubType);
         }
@@ -1393,22 +1393,22 @@ void SAL_CALL SwXTextField::attach(
                 nFormat |= FF_FIXED;
             SwFileNameField *const pFNField = new SwFileNameField(
                     static_cast<SwFileNameFieldType*>(pFieldType), nFormat);
-            pField = pFNField;
+            xField.reset(pFNField);
             if (!m_pImpl->m_pProps->sPar3.isEmpty())
                 pFNField->SetExpansion(m_pImpl->m_pProps->sPar3);
             uno::Any aFormat;
             aFormat <<= m_pImpl->m_pProps->nFormat;
-            pField->PutValue( aFormat, FIELD_PROP_FORMAT );
+            xField->PutValue( aFormat, FIELD_PROP_FORMAT );
         }
         break;
         case SwServiceType::FieldTypeTemplateName:
         {
             SwFieldType* pFieldType = pDoc->getIDocumentFieldsAccess().GetSysFieldType(SwFieldIds::TemplateName);
-            pField = new SwTemplNameField(static_cast<SwTemplNameFieldType*>(pFieldType),
-                                        m_pImpl->m_pProps->nFormat);
+            xField.reset(new SwTemplNameField(static_cast<SwTemplNameFieldType*>(pFieldType),
+                                        m_pImpl->m_pProps->nFormat));
             uno::Any aFormat;
             aFormat <<= m_pImpl->m_pProps->nFormat;
-            pField->PutValue(aFormat, FIELD_PROP_FORMAT);
+            xField->PutValue(aFormat, FIELD_PROP_FORMAT);
         }
         break;
         case SwServiceType::FieldTypeChapter:
@@ -1417,11 +1417,11 @@ void SAL_CALL SwXTextField::attach(
             SwChapterField *const pChapterField = new SwChapterField(
                     static_cast<SwChapterFieldType*>(pFieldType),
                     m_pImpl->m_pProps->nUSHORT1);
-            pField = pChapterField;
+            xField.reset(pChapterField);
             pChapterField->SetLevel(m_pImpl->m_pProps->nByte1);
             uno::Any aVal;
             aVal <<= static_cast<sal_Int16>(m_pImpl->m_pProps->nUSHORT1);
-            pField->PutValue(aVal, FIELD_PROP_USHORT1 );
+            xField->PutValue(aVal, FIELD_PROP_USHORT1 );
         }
         break;
         case SwServiceType::FieldTypeAuthor:
@@ -1433,7 +1433,7 @@ void SAL_CALL SwXTextField::attach(
             SwFieldType* pFieldType = pDoc->getIDocumentFieldsAccess().GetSysFieldType(SwFieldIds::Author);
             SwAuthorField *const pAuthorField = new SwAuthorField(
                     static_cast<SwAuthorFieldType*>(pFieldType), nFormat);
-            pField = pAuthorField;
+            xField.reset(pAuthorField);
             pAuthorField->SetExpansion(m_pImpl->m_pProps->sPar1);
         }
         break;
@@ -1447,11 +1447,11 @@ void SAL_CALL SwXTextField::attach(
                     m_pImpl->m_pProps->sPar2, m_pImpl->m_pProps->sPar3,
                     static_cast<sal_uInt16>(SwServiceType::FieldTypeHiddenText == m_pImpl->m_nServiceId ?
                          TYP_HIDDENTXTFLD : TYP_CONDTXTFLD));
-            pField = pHTField;
+            xField.reset(pHTField);
             pHTField->SetValue(m_pImpl->m_pProps->bBool1);
             uno::Any aVal;
             aVal <<= m_pImpl->m_pProps->sPar4;
-            pField->PutValue(aVal, FIELD_PROP_PAR4 );
+            xField->PutValue(aVal, FIELD_PROP_PAR4 );
         }
         break;
         case SwServiceType::FieldTypeHiddenPara:
@@ -1460,36 +1460,36 @@ void SAL_CALL SwXTextField::attach(
             SwHiddenParaField *const pHPField = new SwHiddenParaField(
                     static_cast<SwHiddenParaFieldType*>(pFieldType),
                     m_pImpl->m_pProps->sPar1);
-            pField = pHPField;
+            xField.reset(pHPField);
             pHPField->SetHidden(m_pImpl->m_pProps->bBool1);
         }
         break;
         case SwServiceType::FieldTypeGetReference:
         {
             SwFieldType* pFieldType = pDoc->getIDocumentFieldsAccess().GetSysFieldType(SwFieldIds::GetRef);
-            pField = new SwGetRefField(static_cast<SwGetRefFieldType*>(pFieldType),
+            xField.reset(new SwGetRefField(static_cast<SwGetRefFieldType*>(pFieldType),
                         m_pImpl->m_pProps->sPar1,
                         m_pImpl->m_pProps->sPar4,
                         0,
                         0,
-                        0);
+                        0));
             if (!m_pImpl->m_pProps->sPar3.isEmpty())
-                static_cast<SwGetRefField*>(pField)->SetExpand(m_pImpl->m_pProps->sPar3);
+                static_cast<SwGetRefField*>(xField.get())->SetExpand(m_pImpl->m_pProps->sPar3);
             uno::Any aVal;
             aVal <<= static_cast<sal_Int16>(m_pImpl->m_pProps->nUSHORT1);
-            pField->PutValue(aVal, FIELD_PROP_USHORT1 );
+            xField->PutValue(aVal, FIELD_PROP_USHORT1 );
             aVal <<= static_cast<sal_Int16>(m_pImpl->m_pProps->nUSHORT2);
-            pField->PutValue(aVal, FIELD_PROP_USHORT2 );
+            xField->PutValue(aVal, FIELD_PROP_USHORT2 );
             aVal <<= m_pImpl->m_pProps->nSHORT1;
-            pField->PutValue(aVal, FIELD_PROP_SHORT1 );
+            xField->PutValue(aVal, FIELD_PROP_SHORT1 );
         }
         break;
         case SwServiceType::FieldTypeJumpEdit:
         {
             SwFieldType* pFieldType = pDoc->getIDocumentFieldsAccess().GetSysFieldType(SwFieldIds::JumpEdit);
-            pField = new SwJumpEditField(static_cast<SwJumpEditFieldType*>(pFieldType),
+            xField.reset(new SwJumpEditField(static_cast<SwJumpEditFieldType*>(pFieldType),
                     m_pImpl->m_pProps->nUSHORT1, m_pImpl->m_pProps->sPar2,
-                    m_pImpl->m_pProps->sPar1);
+                    m_pImpl->m_pProps->sPar1));
         }
         break;
         case SwServiceType::FieldTypeDocInfoChangeAuthor:
@@ -1528,11 +1528,11 @@ void SAL_CALL SwXTextField::attach(
             }
             if (m_pImpl->m_pProps->bBool1)
                 nSubType |= DI_SUB_FIXED;
-            pField = new SwDocInfoField(
+            xField.reset(new SwDocInfoField(
                     static_cast<SwDocInfoFieldType*>(pFieldType), nSubType,
-                    m_pImpl->m_pProps->sPar4, m_pImpl->m_pProps->nFormat);
+                    m_pImpl->m_pProps->sPar4, m_pImpl->m_pProps->nFormat));
             if (!m_pImpl->m_pProps->sPar3.isEmpty())
-                static_cast<SwDocInfoField*>(pField)->SetExpansion(m_pImpl->m_pProps->sPar3);
+                static_cast<SwDocInfoField*>(xField.get())->SetExpansion(m_pImpl->m_pProps->sPar3);
         }
         break;
         case SwServiceType::FieldTypeUserExt:
@@ -1545,7 +1545,7 @@ void SAL_CALL SwXTextField::attach(
             SwExtUserField *const pEUField = new SwExtUserField(
                 static_cast<SwExtUserFieldType*>(pFieldType),
                 m_pImpl->m_pProps->nUSHORT1, nFormat);
-            pField = pEUField;
+            xField.reset(pEUField);
             pEUField->SetExpansion(m_pImpl->m_pProps->sPar1);
         }
         break;
@@ -1564,17 +1564,17 @@ void SAL_CALL SwXTextField::attach(
             {
                 m_pImpl->m_pProps->nFormat = -1;
             }
-            pField = new SwUserField(static_cast<SwUserFieldType*>(pFieldType),
+            xField.reset(new SwUserField(static_cast<SwUserFieldType*>(pFieldType),
                                 nUserSubType,
-                                m_pImpl->m_pProps->nFormat);
+                                m_pImpl->m_pProps->nFormat));
         }
         break;
         case SwServiceType::FieldTypeRefPageSet:
         {
             SwFieldType* pFieldType = pDoc->getIDocumentFieldsAccess().GetSysFieldType(SwFieldIds::RefPageSet);
-            pField = new SwRefPageSetField( static_cast<SwRefPageSetFieldType*>(pFieldType),
+            xField.reset(new SwRefPageSetField( static_cast<SwRefPageSetFieldType*>(pFieldType),
                                 m_pImpl->m_pProps->nUSHORT1,
-                                m_pImpl->m_pProps->bBool1 );
+                                m_pImpl->m_pProps->bBool1 ));
         }
         break;
         case SwServiceType::FieldTypeRefPageGet:
@@ -1583,7 +1583,7 @@ void SAL_CALL SwXTextField::attach(
             SwRefPageGetField *const pRGField = new SwRefPageGetField(
                     static_cast<SwRefPageGetFieldType*>(pFieldType),
                     m_pImpl->m_pProps->nUSHORT1 );
-            pField = pRGField;
+            xField.reset(pRGField);
             pRGField->SetText(m_pImpl->m_pProps->sPar1);
         }
         break;
@@ -1594,11 +1594,11 @@ void SAL_CALL SwXTextField::attach(
                 static_cast<SwPageNumberFieldType*>(pFieldType), PG_RANDOM,
                 m_pImpl->m_pProps->nFormat,
                 m_pImpl->m_pProps->nUSHORT1);
-            pField = pPNField;
+            xField.reset(pPNField);
             pPNField->SetUserString(m_pImpl->m_pProps->sPar1);
             uno::Any aVal;
             aVal <<= m_pImpl->m_pProps->nSubType;
-            pField->PutValue( aVal, FIELD_PROP_SUBTYPE );
+            xField->PutValue( aVal, FIELD_PROP_SUBTYPE );
         }
         break;
         case SwServiceType::FieldTypeDDE:
@@ -1607,7 +1607,7 @@ void SAL_CALL SwXTextField::attach(
                 pDoc->getIDocumentFieldsAccess().GetFieldType(SwFieldIds::Dde, m_pImpl->m_sTypeName, true);
             if (!pFieldType)
                 throw uno::RuntimeException();
-            pField = new SwDDEField( static_cast<SwDDEFieldType*>(pFieldType) );
+            xField.reset(new SwDDEField( static_cast<SwDDEFieldType*>(pFieldType) ));
         }
         break;
         case SwServiceType::FieldTypeDatabaseName:
@@ -1617,13 +1617,13 @@ void SAL_CALL SwXTextField::attach(
             aData.sDataSource = m_pImpl->m_pProps->sPar1;
             aData.sCommand = m_pImpl->m_pProps->sPar2;
             aData.nCommandType = m_pImpl->m_pProps->nSHORT1;
-            pField = new SwDBNameField(static_cast<SwDBNameFieldType*>(pFieldType), aData);
-            sal_uInt16  nSubType = pField->GetSubType();
+            xField.reset(new SwDBNameField(static_cast<SwDBNameFieldType*>(pFieldType), aData));
+            sal_uInt16  nSubType = xField->GetSubType();
             if (m_pImpl->m_pProps->bBool2)
                 nSubType &= ~nsSwExtendedSubType::SUB_INVISIBLE;
             else
                 nSubType |= nsSwExtendedSubType::SUB_INVISIBLE;
-            pField->SetSubType(nSubType);
+            xField->SetSubType(nSubType);
         }
         break;
         case SwServiceType::FieldTypeDatabaseNextSet:
@@ -1633,8 +1633,8 @@ void SAL_CALL SwXTextField::attach(
             aData.sCommand = m_pImpl->m_pProps->sPar2;
             aData.nCommandType = m_pImpl->m_pProps->nSHORT1;
             SwFieldType* pFieldType = pDoc->getIDocumentFieldsAccess().GetSysFieldType(SwFieldIds::DbNextSet);
-            pField = new SwDBNextSetField(static_cast<SwDBNextSetFieldType*>(pFieldType),
-                    m_pImpl->m_pProps->sPar3, aData);
+            xField.reset(new SwDBNextSetField(static_cast<SwDBNextSetFieldType*>(pFieldType),
+                    m_pImpl->m_pProps->sPar3, aData));
         }
         break;
         case SwServiceType::FieldTypeDatabaseNumSet:
@@ -1643,11 +1643,11 @@ void SAL_CALL SwXTextField::attach(
             aData.sDataSource = m_pImpl->m_pProps->sPar1;
             aData.sCommand = m_pImpl->m_pProps->sPar2;
             aData.nCommandType = m_pImpl->m_pProps->nSHORT1;
-            pField = new SwDBNumSetField( static_cast<SwDBNumSetFieldType*>(
+            xField.reset(new SwDBNumSetField( static_cast<SwDBNumSetFieldType*>(
                 pDoc->getIDocumentFieldsAccess().GetSysFieldType(SwFieldIds::DbNumSet)),
                 m_pImpl->m_pProps->sPar3,
                 OUString::number(m_pImpl->m_pProps->nFormat),
-                aData );
+                aData ));
         }
         break;
         case SwServiceType::FieldTypeDatabaseSetNum:
@@ -1660,14 +1660,14 @@ void SAL_CALL SwXTextField::attach(
                 new SwDBSetNumberField(static_cast<SwDBSetNumberFieldType*>(
                         pDoc->getIDocumentFieldsAccess().GetSysFieldType(SwFieldIds::DbSetNumber)), aData,
                     m_pImpl->m_pProps->nUSHORT1);
-            pField = pDBSNField;
+            xField.reset(pDBSNField);
             pDBSNField->SetSetNumber(m_pImpl->m_pProps->nFormat);
-            sal_uInt16  nSubType = pField->GetSubType();
+            sal_uInt16 nSubType = xField->GetSubType();
             if (m_pImpl->m_pProps->bBool2)
                 nSubType &= ~nsSwExtendedSubType::SUB_INVISIBLE;
             else
                 nSubType |= nsSwExtendedSubType::SUB_INVISIBLE;
-            pField->SetSubType(nSubType);
+            xField->SetSubType(nSubType);
         }
         break;
         case SwServiceType::FieldTypeDatabase:
@@ -1676,15 +1676,15 @@ void SAL_CALL SwXTextField::attach(
                 pDoc->getIDocumentFieldsAccess().GetFieldType(SwFieldIds::Database, m_pImpl->m_sTypeName, false);
             if (!pFieldType)
                 throw uno::RuntimeException();
-            pField = new SwDBField(static_cast<SwDBFieldType*>(pFieldType),
-                    m_pImpl->m_pProps->nFormat);
-            static_cast<SwDBField*>(pField)->InitContent(m_pImpl->m_pProps->sPar1);
-            sal_uInt16  nSubType = pField->GetSubType();
+            xField.reset(new SwDBField(static_cast<SwDBFieldType*>(pFieldType),
+                    m_pImpl->m_pProps->nFormat));
+            static_cast<SwDBField*>(xField.get())->InitContent(m_pImpl->m_pProps->sPar1);
+            sal_uInt16  nSubType = xField->GetSubType();
             if (m_pImpl->m_pProps->bBool2)
                 nSubType &= ~nsSwExtendedSubType::SUB_INVISIBLE;
             else
                 nSubType |= nsSwExtendedSubType::SUB_INVISIBLE;
-            pField->SetSubType(nSubType);
+            xField->SetSubType(nSubType);
         }
         break;
         case SwServiceType::FieldTypeSetExp:
@@ -1704,9 +1704,9 @@ void SAL_CALL SwXTextField::attach(
                 m_pImpl->m_pProps->sPar2,
                 m_pImpl->m_pProps->nUSHORT2 != USHRT_MAX ?  //#i79471# the field can have a number format or a number_ing_ format
                 m_pImpl->m_pProps->nUSHORT2 : m_pImpl->m_pProps->nFormat);
-            pField = pSEField;
+            xField.reset(pSEField);
 
-            sal_uInt16  nSubType = pField->GetSubType();
+            sal_uInt16  nSubType = xField->GetSubType();
             if (m_pImpl->m_pProps->bBool2)
                 nSubType &= ~nsSwExtendedSubType::SUB_INVISIBLE;
             else
@@ -1715,7 +1715,7 @@ void SAL_CALL SwXTextField::attach(
                 nSubType |= nsSwExtendedSubType::SUB_CMD;
             else
                 nSubType &= ~nsSwExtendedSubType::SUB_CMD;
-            pField->SetSubType(nSubType);
+            xField->SetSubType(nSubType);
             pSEField->SetSeqNumber(m_pImpl->m_pProps->nUSHORT1);
             pSEField->SetInputFlag(m_pImpl->m_pProps->bBool1);
             pSEField->SetPromptText(m_pImpl->m_pProps->sPar3);
@@ -1759,7 +1759,7 @@ void SAL_CALL SwXTextField::attach(
                         pDoc->getIDocumentFieldsAccess().GetSysFieldType(SwFieldIds::GetExp)),
                     m_pImpl->m_pProps->sPar1, nSubType,
                     m_pImpl->m_pProps->nFormat);
-            pField = pGEField;
+            xField.reset(pGEField);
             //TODO: evaluate SubType!
             if (!m_pImpl->m_pProps->sPar4.isEmpty())
                 pGEField->ChgExpStr(m_pImpl->m_pProps->sPar4);
@@ -1787,7 +1787,7 @@ void SAL_CALL SwXTextField::attach(
             pTextField->SetHelp(m_pImpl->m_pProps->sPar3);
             pTextField->SetToolTip(m_pImpl->m_pProps->sPar4);
 
-            pField = pTextField;
+            xField.reset(pTextField);
         }
         break;
         case SwServiceType::FieldTypeMacro:
@@ -1805,8 +1805,8 @@ void SAL_CALL SwXTextField::attach(
                 SwMacroField::CreateMacroString(aName,
                     m_pImpl->m_pProps->sPar1, m_pImpl->m_pProps->sPar3);
             }
-            pField = new SwMacroField(static_cast<SwMacroFieldType*>(pFieldType), aName,
-                                    m_pImpl->m_pProps->sPar2);
+            xField.reset(new SwMacroField(static_cast<SwMacroFieldType*>(pFieldType), aName,
+                                    m_pImpl->m_pProps->sPar2));
         }
         break;
         case SwServiceType::FieldTypePageCount:
@@ -1829,37 +1829,37 @@ void SAL_CALL SwXTextField::attach(
                 default: break;
             }
             SwFieldType* pFieldType = pDoc->getIDocumentFieldsAccess().GetSysFieldType(SwFieldIds::DocStat);
-            pField = new SwDocStatField(
+            xField.reset(new SwDocStatField(
                     static_cast<SwDocStatFieldType*>(pFieldType),
-                    nSubType, m_pImpl->m_pProps->nUSHORT2);
+                    nSubType, m_pImpl->m_pProps->nUSHORT2));
         }
         break;
         case SwServiceType::FieldTypeBibliography:
         {
             SwAuthorityFieldType const type(pDoc);
-            pField = new SwAuthorityField(static_cast<SwAuthorityFieldType*>(
+            xField.reset(new SwAuthorityField(static_cast<SwAuthorityFieldType*>(
                         pDoc->getIDocumentFieldsAccess().InsertFieldType(type)),
-                    OUString());
+                    OUString()));
             if (m_pImpl->m_pProps->aPropSeq.getLength())
             {
                 uno::Any aVal;
                 aVal <<= m_pImpl->m_pProps->aPropSeq;
-                pField->PutValue( aVal, FIELD_PROP_PROP_SEQ );
+                xField->PutValue( aVal, FIELD_PROP_PROP_SEQ );
             }
         }
         break;
         case SwServiceType::FieldTypeCombinedCharacters:
             // create field
-            pField = new SwCombinedCharField( static_cast<SwCombinedCharFieldType*>(
+            xField.reset(new SwCombinedCharField( static_cast<SwCombinedCharFieldType*>(
                         pDoc->getIDocumentFieldsAccess().GetSysFieldType(SwFieldIds::CombinedChars)),
-                        m_pImpl->m_pProps->sPar1);
+                        m_pImpl->m_pProps->sPar1));
             break;
         case SwServiceType::FieldTypeDropdown:
         {
             SwDropDownField *const pDDField = new SwDropDownField(
                 static_cast<SwDropDownFieldType *>(
                     pDoc->getIDocumentFieldsAccess().GetSysFieldType(SwFieldIds::Dropdown)));
-            pField = pDDField;
+            xField.reset(pDDField);
 
             pDDField->SetItems(m_pImpl->m_pProps->aStrings);
             pDDField->SetSelectedItem(m_pImpl->m_pProps->sPar1);
@@ -1879,22 +1879,22 @@ void SAL_CALL SwXTextField::attach(
                 if (m_pImpl->m_pProps->bFormatIsDefault)
                     m_pImpl->m_pProps->nFormat = -1;
             }
-            pField = new SwTableField( static_cast<SwTableFieldType*>(
+            xField.reset(new SwTableField( static_cast<SwTableFieldType*>(
                 pDoc->getIDocumentFieldsAccess().GetSysFieldType(SwFieldIds::Table)),
                 m_pImpl->m_pProps->sPar2,
                 nType,
-                m_pImpl->m_pProps->nFormat);
-           static_cast<SwTableField*>(pField)->ChgExpStr(m_pImpl->m_pProps->sPar1);
+                m_pImpl->m_pProps->nFormat));
+           static_cast<SwTableField*>(xField.get())->ChgExpStr(m_pImpl->m_pProps->sPar1);
         }
         break;
         default: OSL_FAIL("What kind of type is that?");
     }
-    if (!pField)
+    if (!xField)
         throw uno::RuntimeException("no SwField created?");
-    if (pField)
+    if (xField)
     {
-        pField->SetAutomaticLanguage(!m_pImpl->m_pProps->bBool4);
-        SwFormatField aFormat( *pField );
+        xField->SetAutomaticLanguage(!m_pImpl->m_pProps->bBool4);
+        SwFormatField aFormat(*xField);
 
         UnoActionContext aCont(pDoc);
         if (aPam.HasMark() &&
@@ -1945,7 +1945,7 @@ void SAL_CALL SwXTextField::attach(
         }
 
     }
-    delete pField;
+    xField.reset();
 
     assert(m_pImpl->m_pFormatField);
     m_pImpl->m_pDoc = pDoc;


More information about the Libreoffice-commits mailing list