[libreoffice] 07/09: add ww8 pstatus import fix

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


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

rene pushed a commit to tag libreoffice_4.4.6_rc3-0ubuntu1
in repository libreoffice.

commit c9817783621164d977ae98170452de29aa30733d
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date:   Fri Sep 18 08:35:32 2015 +0200

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

diff --git a/changelog b/changelog
index eb214b3..2b60c5a 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,9 @@
+libreoffice (1:4.4.5~rc2-0ubuntu2) vivid; urgency=medium
+
+  * add ww8 pstatus import fix
+
+ -- Bjoern Michaelsen <bjoern.michaelsen at canonical.com>  Fri, 18 Sep 2015 08:30:48 +0200
+
 libreoffice (1:4.4.5~rc2-0ubuntu1) vivid; urgency=medium
 
   * new upstream rc
diff --git a/patches/pstatus-vector.diff b/patches/pstatus-vector.diff
new file mode 100644
index 0000000..8ea12e6
--- /dev/null
+++ b/patches/pstatus-vector.diff
@@ -0,0 +1,86 @@
+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>
+---
+ sw/source/filter/ww8/ww8scan.cxx | 18 +++++++++---------
+ sw/source/filter/ww8/ww8scan.hxx |  4 ++--
+ 2 files changed, 11 insertions(+), 11 deletions(-)
+
+diff --git a/sw/source/filter/ww8/ww8scan.cxx b/sw/source/filter/ww8/ww8scan.cxx
+--- 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];
+ }
+@@ -4122,18 +4120,20 @@ long WW8PLCFx_Book::GetLen() const
+     return nNum;
+ }
+ 
+-void WW8PLCFx_Book::SetStatus(sal_uInt16 nIndex, eBookStatus eStat )
++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
+--- a/sw/source/filter/ww8/ww8scan.hxx
++++ b/sw/source/filter/ww8/ww8scan.hxx
+@@ -734,8 +734,8 @@ class WW8PLCFx_Book : public WW8PLCFx
+ {
+ private:
+     WW8PLCFspecial* pBook[2];           // Start and End Position
+-    ::std::vector<OUString> aBookNames;   // Name
+-    eBookStatus* pStatus;
++    std::vector<OUString> aBookNames;   // Name
++    std::vector<eBookStatus> aStatus;
+     long nIMax;                         // Number of Booknotes
+     sal_uInt16 nIsEnd;
+     sal_Int32 nBookmarkId; // counter incremented by GetUniqueBookmarkName.
+-- 
+1.9.1
+
diff --git a/patches/series b/patches/series
index 0968867..b3c3940 100644
--- a/patches/series
+++ b/patches/series
@@ -29,3 +29,4 @@ gcj-no-bitness-check.diff
 lp-753627-readd-updated-Ubuntu-brand-palette-colors.diff
 kubuntu_breeze-icons.diff
 mailmerge-base.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