sw/source/filter/ww8/ww8scan.cxx | 16 +++++++++------- sw/source/filter/ww8/ww8scan.hxx | 5 ++--- 2 files changed, 11 insertions(+), 10 deletions(-)
New commits: commit 8b8fb4ac654c8f847c35b93d701ba3475662ea69 Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Wed Jul 25 12:23:43 2018 +0100 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Wed Jul 25 14:56:34 2018 +0200 convert pFontA to std::vector Change-Id: I8045047a963930c4a0dca2d1eaa0dcb6362b8e53 Reviewed-on: https://gerrit.libreoffice.org/57971 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/sw/source/filter/ww8/ww8scan.cxx b/sw/source/filter/ww8/ww8scan.cxx index fa0c778ac906..97be35a40288 100644 --- a/sw/source/filter/ww8/ww8scan.cxx +++ b/sw/source/filter/ww8/ww8scan.cxx @@ -7171,7 +7171,6 @@ namespace } WW8Fonts::WW8Fonts( SvStream& rSt, WW8Fib const & rFib ) - : pFontA(nullptr), nMax(0) { // Attention: MacWord-Documents have their Fontnames // always in ANSI, even if eStructCharSet == CHARSET_MAC !! @@ -7199,10 +7198,11 @@ WW8Fonts::WW8Fonts( SvStream& rSt, WW8Fib const & rFib ) ww::WordVersion eVersion = rFib.GetFIBVersion(); + sal_uInt16 nMax(0); if( eVersion >= ww::eWW8 ) { // bVer8: read the count of strings in nMax - rSt.ReadUInt16( nMax ); + rSt.ReadUInt16(nMax); } // Ver8: skip undefined uint16 @@ -7224,11 +7224,11 @@ WW8Fonts::WW8Fonts( SvStream& rSt, WW8Fib const & rFib ) nMax = std::min(nMax, nCalcMax); } - if( nMax ) + if (nMax) { // allocate Index Array - pFontA.reset( new WW8_FFN[ nMax ] ); - WW8_FFN* p = pFontA.get(); + m_aFontA.resize(nMax); + WW8_FFN* p = m_aFontA.data(); if( eVersion <= ww::eWW2 ) { @@ -7426,14 +7426,16 @@ WW8Fonts::WW8Fonts( SvStream& rSt, WW8Fib const & rFib ) nMax = std::min(nMax, nValidFonts); } } + m_aFontA.resize(nMax); + m_aFontA.shrink_to_fit(); } const WW8_FFN* WW8Fonts::GetFont( sal_uInt16 nNum ) const { - if( !pFontA || nNum >= nMax ) + if (nNum >= m_aFontA.size()) return nullptr; - return &pFontA[ nNum ]; + return &m_aFontA[nNum]; } // Search after a header/footer for a index in the ww list from header/footer diff --git a/sw/source/filter/ww8/ww8scan.hxx b/sw/source/filter/ww8/ww8scan.hxx index b7ec4eaac322..4297be8c6382 100644 --- a/sw/source/filter/ww8/ww8scan.hxx +++ b/sw/source/filter/ww8/ww8scan.hxx @@ -1581,13 +1581,12 @@ private: WW8Fonts(const WW8Fonts&) = delete; WW8Fonts& operator=(const WW8Fonts&) = delete; - std::unique_ptr<WW8_FFN[]> pFontA; // Array of Pointers to Font Description - sal_uInt16 nMax; // Array-Size + std::vector<WW8_FFN> m_aFontA; // Array of Pointers to Font Description public: WW8Fonts( SvStream& rSt, WW8Fib const & rFib ); const WW8_FFN* GetFont( sal_uInt16 nNum ) const; - sal_uInt16 GetMax() const { return nMax; } + sal_uInt16 GetMax() const { return m_aFontA.size(); } }; typedef sal_uInt8 HdFtFlags; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits