[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