sw/source/core/text/guess.hxx | 14 +++++++------- sw/source/core/text/portxt.cxx | 3 +-- 2 files changed, 8 insertions(+), 9 deletions(-)
New commits: commit 18a60a034abd3862ea28451f94cf2d3c7bb25307 Author: Caolán McNamara <caol...@redhat.com> Date: Sun Jan 15 20:33:17 2017 +0000 crashtesting: fix a badzillion writer layout crashes e.g. fdo80788-1.odt Invalid read of size 2 at 0x3C031438: SwLinePortion::IsParaPortion() const (porlin.hxx:132) by 0x3C05EC56: SwTextFormatter::BuildPortions(SwTextFormatInfo&) (itrform2.cxx:679) by 0x3C05F2A2: SwTextFormatter::FormatLine(int) (itrform2.cxx:1550) Address 0x3576189e is 30 bytes inside a block of size 40 free'd at 0x4C2ED4A: free (vg_replace_malloc.c:530) by 0x4E56939: rtl_freeMemory_SYSTEM(void*) (alloc_global.cxx:279) by 0x4E56978: rtl_freeMemory (alloc_global.cxx:349) by 0x4E5501B: rtl_cache_free (alloc_cache.cxx:1230) by 0xDACE741: FixedMemPool::Free(void*) (mempool.cxx:49) by 0x3C043AB8: SwTextPortion::operator delete(void*, unsigned long) (portxt.hxx:55) by 0x3C043B05: SwHangingPortion::~SwHangingPortion() (porrst.hxx:98) by 0x3C043F47: std::default_delete<SwHangingPortion>::operator()(SwHangingPortion*) const (unique_ptr.h:76) by 0x3C044070: std::unique_ptr<SwHangingPortion, std::default_delete<SwHangingPortion> >::reset(SwHangingPortion*) (unique_ptr.h:344) by 0x3C0888C3: std::unique_ptr<SwHangingPortion, std::default_delete<SwHangingPortion> >::operator=(decltype(nullptr)) (unique_ptr.h:280) by 0x3C0888DB: SwTextGuess::ClearHangingPortion() (guess.hxx:51) since... commit a706bb06d5326e7a997dd1d71f3f947bd0ad28e6 Date: Wed Jan 11 14:26:47 2017 +0200 new loplugin: useuniqueptr: sw part 1 Change-Id: I614029474d684ddcccd4f4a5e9787fe6c19d8fd2 diff --git a/sw/source/core/text/guess.hxx b/sw/source/core/text/guess.hxx index 9fd797d..feea8af 100644 --- a/sw/source/core/text/guess.hxx +++ b/sw/source/core/text/guess.hxx @@ -48,7 +48,7 @@ public: bool AlternativeSpelling( const SwTextFormatInfo &rInf, const sal_Int32 nPos ); SwHangingPortion* GetHangingPortion() const { return pHanging.get(); } - void ClearHangingPortion() { pHanging = nullptr; } + SwHangingPortion* ReleaseHangingPortion() { return pHanging.release(); } sal_uInt16 BreakWidth() const { return nBreakWidth; } sal_Int32 CutPos() const { return nCutPos; } sal_Int32 BreakStart() const { return nBreakStart; } diff --git a/sw/source/core/text/portxt.cxx b/sw/source/core/text/portxt.cxx index 2c200c0..bd32236 100644 --- a/sw/source/core/text/portxt.cxx +++ b/sw/source/core/text/portxt.cxx @@ -340,9 +340,8 @@ bool SwTextPortion::Format_( SwTextFormatInfo &rInf ) { Width( aGuess.BreakWidth() ); SetLen( aGuess.BreakPos() - rInf.GetIdx() ); - Insert( aGuess.GetHangingPortion() ); aGuess.GetHangingPortion()->SetAscent( GetAscent() ); - aGuess.ClearHangingPortion(); + Insert( aGuess.ReleaseHangingPortion() ); } // breakPos >= index else if ( aGuess.BreakPos() >= rInf.GetIdx() && aGuess.BreakPos() != COMPLETE_STRING ) commit e50b785b5eeb7a3f3deedf1125c205d6abec8ac3 Author: Caolán McNamara <caol...@redhat.com> Date: Sun Jan 15 20:29:36 2017 +0000 ditch the irritating inline keyword Change-Id: I65cdb5a5ba3e5d1ebb852b7e0d3d58b2b2fbbbcd diff --git a/sw/source/core/text/guess.hxx b/sw/source/core/text/guess.hxx index 75bc915..9fd797d 100644 --- a/sw/source/core/text/guess.hxx +++ b/sw/source/core/text/guess.hxx @@ -47,13 +47,13 @@ public: const sal_uInt16 nHeight ); bool AlternativeSpelling( const SwTextFormatInfo &rInf, const sal_Int32 nPos ); - inline SwHangingPortion* GetHangingPortion() const { return pHanging.get(); } - inline void ClearHangingPortion() { pHanging = nullptr; } - inline sal_uInt16 BreakWidth() const { return nBreakWidth; } - inline sal_Int32 CutPos() const { return nCutPos; } - inline sal_Int32 BreakStart() const { return nBreakStart; } - inline sal_Int32 BreakPos() const {return nBreakPos; } - inline sal_Int32 FieldDiff() const {return nFieldDiff; } + SwHangingPortion* GetHangingPortion() const { return pHanging.get(); } + void ClearHangingPortion() { pHanging = nullptr; } + sal_uInt16 BreakWidth() const { return nBreakWidth; } + sal_Int32 CutPos() const { return nCutPos; } + sal_Int32 BreakStart() const { return nBreakStart; } + sal_Int32 BreakPos() const {return nBreakPos; } + sal_Int32 FieldDiff() const {return nFieldDiff; } const css::uno::Reference< css::linguistic2::XHyphenatedWord >& HyphWord() const { return xHyphWord; } };
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits