Kaydet (Commit) 242129b9 authored tarafından Noel Grandin's avatar Noel Grandin

loplugin:useuniqueptr in WW8PLCFx_Fc_FKP

Change-Id: If1a8a0301a94c6303f7fe0db52fb3e5ae8c04715
Reviewed-on: https://gerrit.libreoffice.org/58021
Tested-by: Jenkins
Reviewed-by: 's avatarNoel Grandin <noel.grandin@collabora.co.uk>
üst c9c97b4e
...@@ -3019,7 +3019,7 @@ private: ...@@ -3019,7 +3019,7 @@ private:
long mnPo; long mnPo;
public: public:
explicit SamePos(long nPo) : mnPo(nPo) {} explicit SamePos(long nPo) : mnPo(nPo) {}
bool operator()(const WW8PLCFx_Fc_FKP::WW8Fkp *pFkp) bool operator()(const std::unique_ptr<WW8PLCFx_Fc_FKP::WW8Fkp>& pFkp)
{return mnPo == pFkp->GetFilePos();} {return mnPo == pFkp->GetFilePos();}
}; };
...@@ -3079,21 +3079,20 @@ bool WW8PLCFx_Fc_FKP::NewFkp() ...@@ -3079,21 +3079,20 @@ bool WW8PLCFx_Fc_FKP::NewFkp()
std::find_if(maFkpCache.begin(), maFkpCache.end(), SamePos(nPo)); std::find_if(maFkpCache.begin(), maFkpCache.end(), SamePos(nPo));
if (aIter != maFkpCache.end()) if (aIter != maFkpCache.end())
{ {
pFkp = *aIter; pFkp = aIter->get();
pFkp->Reset(GetStartFc()); pFkp->Reset(GetStartFc());
} }
else else
{ {
pFkp = new WW8Fkp(GetFIB(), pFKPStrm, pDataStrm, nPo, pFkp = new WW8Fkp(GetFIB(), pFKPStrm, pDataStrm, nPo,
pFkpSizeTab[ ePLCF ], ePLCF, GetStartFc()); pFkpSizeTab[ ePLCF ], ePLCF, GetStartFc());
maFkpCache.push_back(pFkp); maFkpCache.push_back(std::unique_ptr<WW8Fkp>(pFkp));
if (maFkpCache.size() > eMaxCache) if (maFkpCache.size() > eMaxCache)
{ {
WW8Fkp* pCachedFkp = maFkpCache.front(); WW8Fkp* pCachedFkp = maFkpCache.front().get();
if (!pCachedFkp->IsMustRemainCache()) if (!pCachedFkp->IsMustRemainCache())
{ {
delete pCachedFkp;
maFkpCache.pop_front(); maFkpCache.pop_front();
} }
} }
...@@ -3113,23 +3112,21 @@ WW8PLCFx_Fc_FKP::WW8PLCFx_Fc_FKP(SvStream* pSt, SvStream* pTableSt, ...@@ -3113,23 +3112,21 @@ WW8PLCFx_Fc_FKP::WW8PLCFx_Fc_FKP(SvStream* pSt, SvStream* pTableSt,
long nLenStruct = (8 > rFib.m_nVersion) ? 2 : 4; long nLenStruct = (8 > rFib.m_nVersion) ? 2 : 4;
if (ePl == CHP) if (ePl == CHP)
{ {
pPLCF = new WW8PLCF(*pTableSt, rFib.m_fcPlcfbteChpx, rFib.m_lcbPlcfbteChpx, pPLCF.reset(new WW8PLCF(*pTableSt, rFib.m_fcPlcfbteChpx, rFib.m_lcbPlcfbteChpx,
nLenStruct, GetStartFc(), rFib.m_pnChpFirst, rFib.m_cpnBteChp); nLenStruct, GetStartFc(), rFib.m_pnChpFirst, rFib.m_cpnBteChp));
} }
else else
{ {
pPLCF = new WW8PLCF(*pTableSt, rFib.m_fcPlcfbtePapx, rFib.m_lcbPlcfbtePapx, pPLCF.reset(new WW8PLCF(*pTableSt, rFib.m_fcPlcfbtePapx, rFib.m_lcbPlcfbtePapx,
nLenStruct, GetStartFc(), rFib.m_pnPapFirst, rFib.m_cpnBtePap); nLenStruct, GetStartFc(), rFib.m_pnPapFirst, rFib.m_cpnBtePap));
} }
} }
WW8PLCFx_Fc_FKP::~WW8PLCFx_Fc_FKP() WW8PLCFx_Fc_FKP::~WW8PLCFx_Fc_FKP()
{ {
auto aEnd = maFkpCache.end(); maFkpCache.clear();
for (auto aIter = maFkpCache.begin(); aIter != aEnd; ++aIter) pPLCF.reset();
delete *aIter; pPCDAttrs.reset();
delete pPLCF;
delete pPCDAttrs;
} }
sal_uInt32 WW8PLCFx_Fc_FKP::GetIdx() const sal_uInt32 WW8PLCFx_Fc_FKP::GetIdx() const
...@@ -3339,8 +3336,8 @@ WW8PLCFx_Cp_FKP::WW8PLCFx_Cp_FKP( SvStream* pSt, SvStream* pTableSt, ...@@ -3339,8 +3336,8 @@ WW8PLCFx_Cp_FKP::WW8PLCFx_Cp_FKP( SvStream* pSt, SvStream* pTableSt,
*/ */
if (pPcd) if (pPcd)
{ {
pPCDAttrs = rSBase.m_pPLCFx_PCDAttrs ? new WW8PLCFx_PCDAttrs( pPCDAttrs.reset( rSBase.m_pPLCFx_PCDAttrs ? new WW8PLCFx_PCDAttrs(
*rSBase.m_pWw8Fib, pPcd.get(), &rSBase) : nullptr; *rSBase.m_pWw8Fib, pPcd.get(), &rSBase) : nullptr);
} }
pPieceIter = rSBase.m_pPieceIter; pPieceIter = rSBase.m_pPieceIter;
......
...@@ -584,7 +584,7 @@ public: ...@@ -584,7 +584,7 @@ public:
private: private:
SvStream* pFKPStrm; // input file SvStream* pFKPStrm; // input file
SvStream* pDataStrm; // input file SvStream* pDataStrm; // input file
WW8PLCF* pPLCF; std::unique_ptr<WW8PLCF> pPLCF;
protected: protected:
WW8Fkp* pFkp; WW8Fkp* pFkp;
private: private:
...@@ -601,7 +601,7 @@ private: ...@@ -601,7 +601,7 @@ private:
== 10 : 18549 pap, 47 chp == 10 : 18549 pap, 47 chp
== 5 : 18515 pap, 47 chp == 5 : 18515 pap, 47 chp
*/ */
std::list<WW8Fkp*> maFkpCache; std::list<std::unique_ptr<WW8Fkp>> maFkpCache;
enum Limits {eMaxCache = 50000}; enum Limits {eMaxCache = 50000};
bool NewFkp(); bool NewFkp();
...@@ -611,7 +611,7 @@ private: ...@@ -611,7 +611,7 @@ private:
protected: protected:
ePLCFT ePLCF; ePLCFT ePLCF;
WW8PLCFx_PCDAttrs* pPCDAttrs; std::unique_ptr<WW8PLCFx_PCDAttrs> pPCDAttrs;
public: public:
WW8PLCFx_Fc_FKP( SvStream* pSt, SvStream* pTableSt, SvStream* pDataSt, WW8PLCFx_Fc_FKP( SvStream* pSt, SvStream* pTableSt, SvStream* pDataSt,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment