[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