|
 |
62140f |
From 694cc3d7e392021c5e3d6ab4522a7b1d836fef48 Mon Sep 17 00:00:00 2001
|
|
 |
62140f |
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
|
|
 |
62140f |
Date: Thu, 13 Aug 2015 10:58:06 +0100
|
|
 |
62140f |
Subject: [PATCH 4/4] convert pStatus to vector and use at to check offsets
|
|
 |
62140f |
|
|
 |
62140f |
(cherry picked from commit ea70088895ed45dc60abf18319acc1b4fa3018dd)
|
|
 |
62140f |
|
|
 |
62140f |
Change-Id: I5186f6a65bb9d5ed8a0d1ab1d71f7e2c13865411
|
|
 |
62140f |
Reviewed-on: https://gerrit.libreoffice.org/17695
|
|
 |
62140f |
Reviewed-by: David Tardon <dtardon@redhat.com>
|
|
 |
62140f |
Tested-by: David Tardon <dtardon@redhat.com>
|
|
 |
62140f |
(cherry picked from commit 92c3a5b80ac575e1c538894b7c1a4170093785b5)
|
|
 |
62140f |
---
|
|
 |
62140f |
sw/source/filter/ww8/ww8scan.cxx | 18 +++++++++---------
|
|
 |
62140f |
sw/source/filter/ww8/ww8scan.hxx | 4 ++--
|
|
 |
62140f |
2 files changed, 11 insertions(+), 11 deletions(-)
|
|
 |
62140f |
|
|
 |
62140f |
diff --git a/sw/source/filter/ww8/ww8scan.cxx b/sw/source/filter/ww8/ww8scan.cxx
|
|
 |
62140f |
index f9f88a3..2d010e0 100644
|
|
 |
62140f |
--- a/sw/source/filter/ww8/ww8scan.cxx
|
|
 |
62140f |
+++ b/sw/source/filter/ww8/ww8scan.cxx
|
|
 |
62140f |
@@ -3941,7 +3941,7 @@ void WW8ReadSTTBF(bool bVer8, SvStream& rStrm, sal_uInt32 nStart, sal_Int32 nLen
|
|
 |
62140f |
}
|
|
 |
62140f |
|
|
 |
62140f |
WW8PLCFx_Book::WW8PLCFx_Book(SvStream* pTblSt, const WW8Fib& rFib)
|
|
 |
62140f |
- : WW8PLCFx(rFib.GetFIBVersion(), false), pStatus(0), nIsEnd(0), nBookmarkId(1)
|
|
 |
62140f |
+ : WW8PLCFx(rFib.GetFIBVersion(), false), nIsEnd(0), nBookmarkId(1)
|
|
 |
62140f |
{
|
|
 |
62140f |
if( !rFib.fcPlcfbkf || !rFib.lcbPlcfbkf || !rFib.fcPlcfbkl ||
|
|
 |
62140f |
!rFib.lcbPlcfbkl || !rFib.fcSttbfbkmk || !rFib.lcbSttbfbkmk )
|
|
 |
62140f |
@@ -3966,14 +3966,12 @@ WW8PLCFx_Book::WW8PLCFx_Book(SvStream* pTblSt, const WW8Fib& rFib)
|
|
 |
62140f |
nIMax = pBook[0]->GetIMax();
|
|
 |
62140f |
if( pBook[1]->GetIMax() < nIMax )
|
|
 |
62140f |
nIMax = pBook[1]->GetIMax();
|
|
 |
62140f |
- pStatus = new eBookStatus[ nIMax ];
|
|
 |
62140f |
- memset( pStatus, 0, nIMax * sizeof( eBookStatus ) );
|
|
 |
62140f |
+ aStatus.resize(nIMax);
|
|
 |
62140f |
}
|
|
 |
62140f |
}
|
|
 |
62140f |
|
|
 |
62140f |
WW8PLCFx_Book::~WW8PLCFx_Book()
|
|
 |
62140f |
{
|
|
 |
62140f |
- delete[] pStatus;
|
|
 |
62140f |
delete pBook[1];
|
|
 |
62140f |
delete pBook[0];
|
|
 |
62140f |
}
|
|
 |
62140f |
@@ -4091,18 +4089,20 @@ long WW8PLCFx_Book::GetLen() const
|
|
 |
62140f |
return nNum;
|
|
 |
62140f |
}
|
|
 |
62140f |
|
|
 |
62140f |
-void WW8PLCFx_Book::SetStatus(sal_uInt16 nIndex, eBookStatus eStat )
|
|
 |
62140f |
+void WW8PLCFx_Book::SetStatus(sal_uInt16 nIndex, eBookStatus eStat)
|
|
 |
62140f |
{
|
|
 |
62140f |
- OSL_ENSURE(nIndex < nIMax, "set status of non existing bookmark!");
|
|
 |
62140f |
- pStatus[nIndex] = (eBookStatus)( pStatus[nIndex] | eStat );
|
|
 |
62140f |
+ SAL_WARN_IF(nIndex >= nIMax, "sw.ww8",
|
|
 |
62140f |
+ "bookmark index " << nIndex << " invalid");
|
|
 |
62140f |
+ eBookStatus eStatus = aStatus.at(nIndex);
|
|
 |
62140f |
+ aStatus[nIndex] = static_cast<eBookStatus>(eStatus | eStat);
|
|
 |
62140f |
}
|
|
 |
62140f |
|
|
 |
62140f |
eBookStatus WW8PLCFx_Book::GetStatus() const
|
|
 |
62140f |
{
|
|
 |
62140f |
- if( !pStatus )
|
|
 |
62140f |
+ if (aStatus.empty())
|
|
 |
62140f |
return BOOK_NORMAL;
|
|
 |
62140f |
long nEndIdx = GetHandle();
|
|
 |
62140f |
- return ( nEndIdx < nIMax ) ? pStatus[nEndIdx] : BOOK_NORMAL;
|
|
 |
62140f |
+ return ( nEndIdx < nIMax ) ? aStatus[nEndIdx] : BOOK_NORMAL;
|
|
 |
62140f |
}
|
|
 |
62140f |
|
|
 |
62140f |
long WW8PLCFx_Book::GetHandle() const
|
|
 |
62140f |
diff --git a/sw/source/filter/ww8/ww8scan.hxx b/sw/source/filter/ww8/ww8scan.hxx
|
|
 |
62140f |
index 1e6a43a..4d84961 100644
|
|
 |
62140f |
--- a/sw/source/filter/ww8/ww8scan.hxx
|
|
 |
62140f |
+++ b/sw/source/filter/ww8/ww8scan.hxx
|
|
 |
62140f |
@@ -734,8 +734,8 @@ class WW8PLCFx_Book : public WW8PLCFx
|
|
 |
62140f |
{
|
|
 |
62140f |
private:
|
|
 |
62140f |
WW8PLCFspecial* pBook[2]; // Start and End Position
|
|
 |
62140f |
- ::std::vector<OUString> aBookNames; // Name
|
|
 |
62140f |
- eBookStatus* pStatus;
|
|
 |
62140f |
+ std::vector<OUString> aBookNames; // Name
|
|
 |
62140f |
+ std::vector<eBookStatus> aStatus;
|
|
 |
62140f |
long nIMax; // Number of Booknotes
|
|
 |
62140f |
sal_uInt16 nIsEnd;
|
|
 |
62140f |
sal_Int32 nBookmarkId; // counter incremented by GetUniqueBookmarkName.
|
|
 |
62140f |
--
|
|
 |
62140f |
2.5.0
|
|
 |
62140f |
|