[libreoffice] 01/03: add ww8 pstatus import fix

Rene Engelhard rene at moszumanska.debian.org
Thu Jul 27 19:17:14 UTC 2017


This is an automated email from the git hooks/post-receive script.

rene pushed a commit to tag libreoffice_3.5.7-0ubuntu9
in repository libreoffice.

commit c71a19b8d421410d4505735cdcb54784957723a0
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date:   Fri Sep 18 14:57:58 2015 +0200

    add ww8 pstatus import fix
---
 changelog                   |  6 ++++
 patches/pstatus-vector.diff | 87 +++++++++++++++++++++++++++++++++++++++++++++
 patches/series              |  1 +
 3 files changed, 94 insertions(+)

diff --git a/changelog b/changelog
index d756d1e..9762ecd 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,9 @@
+libreoffice (1:3.5.7-0ubuntu9~precise4) precise; urgency=medium
+
+  * add ww8 pstatus import fix 
+
+ -- Bjoern Michaelsen <bjoern.michaelsen at canonical.com>  Fri, 18 Sep 2015 14:56:37 +0200
+
 libreoffice (1:3.5.7-0ubuntu9~precise3) precise; urgency=medium
 
   *  add fixes for ww8 wrapping and coverity#1266485
diff --git a/patches/pstatus-vector.diff b/patches/pstatus-vector.diff
new file mode 100644
index 0000000..865d406
--- /dev/null
+++ b/patches/pstatus-vector.diff
@@ -0,0 +1,87 @@
+From 2b84a22a0d84e5d07cbaa0a406eec15fd5fb10ec Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm at redhat.com>
+Date: Thu, 13 Aug 2015 10:58:06 +0100
+Subject: [PATCH] convert pStatus to vector and use at to check offsets
+
+(cherry picked from commit ea70088895ed45dc60abf18319acc1b4fa3018dd)
+
+Change-Id: I5186f6a65bb9d5ed8a0d1ab1d71f7e2c13865411
+Reviewed-on: https://gerrit.libreoffice.org/17695
+Reviewed-by: David Tardon <dtardon at redhat.com>
+Tested-by: David Tardon <dtardon at redhat.com>
+DebianPatchName: pstatus-vector.diff
+---
+ sw/source/filter/ww8/ww8scan.cxx | 16 ++++++++--------
+ sw/source/filter/ww8/ww8scan.hxx |  4 ++--
+ 2 files changed, 10 insertions(+), 10 deletions(-)
+
+diff --git a/sw/source/filter/ww8/ww8scan.cxx b/sw/source/filter/ww8/ww8scan.cxx
+index 06993b4..3d862c8 100644
+--- a/sw/source/filter/ww8/ww8scan.cxx
++++ b/sw/source/filter/ww8/ww8scan.cxx
+@@ -3972,7 +3972,7 @@ void WW8ReadSTTBF(bool bVer8, SvStream& rStrm, sal_uInt32 nStart, sal_Int32 nLen
+ }
+ 
+ WW8PLCFx_Book::WW8PLCFx_Book(SvStream* pTblSt, const WW8Fib& rFib)
+-    : WW8PLCFx(rFib.GetFIBVersion(), false), pStatus(0), nIsEnd(0), nBookmarkId(1)
++    : WW8PLCFx(rFib.GetFIBVersion(), false), nIsEnd(0), nBookmarkId(1)
+ {
+     if( !rFib.fcPlcfbkf || !rFib.lcbPlcfbkf || !rFib.fcPlcfbkl ||
+         !rFib.lcbPlcfbkl || !rFib.fcSttbfbkmk || !rFib.lcbSttbfbkmk )
+@@ -3997,14 +3997,12 @@ WW8PLCFx_Book::WW8PLCFx_Book(SvStream* pTblSt, const WW8Fib& rFib)
+             nIMax = pBook[0]->GetIMax();
+         if( pBook[1]->GetIMax() < nIMax )
+             nIMax = pBook[1]->GetIMax();
+-        pStatus = new eBookStatus[ nIMax ];
+-        memset( pStatus, 0, nIMax * sizeof( eBookStatus ) );
++        aStatus.resize(nIMax);
+     }
+ }
+ 
+ WW8PLCFx_Book::~WW8PLCFx_Book()
+ {
+-    delete[] pStatus;
+     delete pBook[1];
+     delete pBook[0];
+ }
+@@ -4118,16 +4116,18 @@ long WW8PLCFx_Book::GetLen() const
+ 
+ void WW8PLCFx_Book::SetStatus(sal_uInt16 nIndex, eBookStatus eStat )
+ {
+-    OSL_ENSURE(nIndex < nIMax, "set status of non existing bookmark!");
+-    pStatus[nIndex] = (eBookStatus)( pStatus[nIndex] | eStat );
++    SAL_WARN_IF(nIndex >= nIMax, "sw.ww8",
++                "bookmark index " << nIndex << " invalid");
++    eBookStatus eStatus = aStatus.at(nIndex);
++    aStatus[nIndex] = static_cast<eBookStatus>(eStatus | eStat);
+ }
+ 
+ eBookStatus WW8PLCFx_Book::GetStatus() const
+ {
+-    if( !pStatus )
++    if (aStatus.empty())
+         return BOOK_NORMAL;
+     long nEndIdx = GetHandle();
+-    return ( nEndIdx < nIMax ) ? pStatus[nEndIdx] : BOOK_NORMAL;
++    return ( nEndIdx < nIMax ) ? aStatus[nEndIdx] : BOOK_NORMAL;
+ }
+ 
+ long WW8PLCFx_Book::GetHandle() const
+diff --git a/sw/source/filter/ww8/ww8scan.hxx b/sw/source/filter/ww8/ww8scan.hxx
+index a323b84..e9df6cb2 100644
+--- a/sw/source/filter/ww8/ww8scan.hxx
++++ b/sw/source/filter/ww8/ww8scan.hxx
+@@ -703,8 +703,8 @@ class WW8PLCFx_Book : public WW8PLCFx
+ {
+ private:
+     WW8PLCFspecial* pBook[2];           // Start and End Position
+-    ::std::vector<String> aBookNames;   // Name
+-    eBookStatus* pStatus;
++    std::vector<String> aBookNames;   // Name
++    std::vector<eBookStatus> aStatus;
+     long nIMax;                         // Number of Booknotes
+     sal_uInt16 nIsEnd;
+     int nBookmarkId; // counter incremented by GetUniqueBookmarkName.
+-- 
+1.9.1
+
diff --git a/patches/series b/patches/series
index a31883b..b7f033a 100644
--- a/patches/series
+++ b/patches/series
@@ -67,3 +67,4 @@ tdf-86449.diff
 LinkUpdateMode-is-a-global-setting.diff
 ww8dontwrap.diff
 coverity-1266485.diff
+pstatus-vector.diff

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-openoffice/libreoffice.git



More information about the Pkg-openoffice-commits mailing list