summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sw/source/core/doc/docfld.cxx5
1 files changed, 4 insertions, 1 deletions
diff --git a/sw/source/core/doc/docfld.cxx b/sw/source/core/doc/docfld.cxx
index 00eb8b0466f6..d27d6c9fce19 100644
--- a/sw/source/core/doc/docfld.cxx
+++ b/sw/source/core/doc/docfld.cxx
@@ -1135,15 +1135,18 @@ void SwDocUpdateField::RemoveFieldType( const SwFieldType& rType )
if( pFnd )
{
if( aFieldTypeTable[ n ] == pFnd )
+ {
aFieldTypeTable[ n ] = static_cast<SwCalcFieldType*>(pFnd->pNext.release());
+ delete pFnd;
+ }
else
{
SwHash* pPrev = aFieldTypeTable[ n ];
while( pPrev->pNext.get() != pFnd )
pPrev = pPrev->pNext.get();
pPrev->pNext = std::move(pFnd->pNext);
+ // no need to explicitly delete here, the embedded linked list uses unique_ptr
}
- delete pFnd;
}
}
}