sw/source/core/doc/docfld.cxx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
New commits: commit 4a128f336a146a12c28bb9f3bdfa24d2198d85dc Author: Noel Grandin <noel.gran...@collabora.co.uk> Date: Thu Jul 20 17:10:50 2017 +0200 tdf#109197 crash when deleting user field variables in sw regression from: commit a706bb06d5326e7a997dd1d71f3f947bd0ad28e6 "new loplugin: useuniqueptr: sw part 1" Change-Id: I57f9c9e6d7eeccc033b71d7182c960f3d79df73c Reviewed-on: https://gerrit.libreoffice.org/40240 Reviewed-by: Michael Stahl <mst...@redhat.com> Tested-by: Jenkins <c...@libreoffice.org> 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; } } } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits