summaryrefslogtreecommitdiff
path: root/lotuswordpro
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2018-03-01 11:04:41 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2018-03-05 07:33:07 +0100
commit23c6774691d6c745a21762765dc5036c7484e800 (patch)
treea7b206966550659e55ca44f1fe8497b7e09b5a0b /lotuswordpro
parent7d782a4b8b70a8846f78d71632f679f80f9208a5 (diff)
loplugin:useuniqueptr in LwpPara
to simplify the management, use a std::vector instead of an embedded linked list for LwpParaProperty Change-Id: Ib09c6609967552a74d5cb2a43565104bf3f5c036 Reviewed-on: https://gerrit.libreoffice.org/50738 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'lotuswordpro')
-rw-r--r--lotuswordpro/source/filter/lwppara.cxx49
-rw-r--r--lotuswordpro/source/filter/lwppara.hxx12
-rw-r--r--lotuswordpro/source/filter/lwppara1.cxx14
-rw-r--r--lotuswordpro/source/filter/lwpparaproperty.cxx3
-rw-r--r--lotuswordpro/source/filter/lwpparaproperty.hxx9
5 files changed, 27 insertions, 60 deletions
diff --git a/lotuswordpro/source/filter/lwppara.cxx b/lotuswordpro/source/filter/lwppara.cxx
index d84fbb59d8b8..0175e54ae08a 100644
--- a/lotuswordpro/source/filter/lwppara.cxx
+++ b/lotuswordpro/source/filter/lwppara.cxx
@@ -103,7 +103,6 @@ LwpPara::LwpPara(LwpObjectHeader const & objHdr, LwpSvStream* pStrm)
, m_nOrdinal(0)
, m_nFlags(0)
, m_nLevel(0)
- , m_pProps(nullptr)
, m_pBreaks(nullptr)
, m_pIndentOverride(nullptr)
, m_FontID(0)
@@ -122,21 +121,6 @@ LwpPara::LwpPara(LwpObjectHeader const & objHdr, LwpSvStream* pStrm)
LwpPara::~LwpPara()
{
- if (m_pBreaks)
- {
- delete m_pBreaks;
- m_pBreaks = nullptr;
- }
-
- delete m_pIndentOverride;
-
- LwpParaProperty* pNextProp;
- while(m_pProps)
- {
- pNextProp = m_pProps->GetNext();
- delete m_pProps;
- m_pProps = pNextProp;
- }
}
void LwpPara::Read()
@@ -323,31 +307,29 @@ void LwpPara::RegisterStyle()
if (pParaStyle && pParaStyle->GetIndent())
{
std::unique_ptr<LwpIndentOverride> pIndentOverride(GetParaStyle()->GetIndent()->clone());
- delete m_pIndentOverride;
- m_pIndentOverride = pIndentOverride.release();
+ m_pIndentOverride = std::move(pIndentOverride);
}
std::unique_ptr<XFParaStyle> xOverStyle;
bool noSpacing = true;
LwpParaProperty* pBulletProps = nullptr, *pNumberingProps = nullptr;
- if (m_pProps != nullptr)
+ if (!m_vProps.empty())
{
bool noIndent = true;
xOverStyle.reset(new XFParaStyle);
*xOverStyle = *pBaseStyle;
xOverStyle->SetStyleName("");
- LwpParaProperty* pProps = m_pProps;
sal_uInt32 PropType;
LwpParaStyle& rParaStyle = dynamic_cast<LwpParaStyle&>(*m_ParaStyle.obj());
- while (pProps)
+ for (auto & pProps : m_vProps)
{
PropType = pProps->GetType();
switch(PropType)
{
case PP_LOCAL_ALIGN:
{
- LwpAlignmentOverride *pAlignment = static_cast<LwpParaAlignProperty*>(pProps)->GetAlignment();
+ LwpAlignmentOverride *pAlignment = static_cast<LwpParaAlignProperty*>(pProps.get())->GetAlignment();
if (pAlignment)
{
if (!rParaStyle.GetAlignment())
@@ -366,20 +348,20 @@ void LwpPara::RegisterStyle()
case PP_LOCAL_INDENT:
{
noIndent = false;
- LwpIndentOverride *pIndent = static_cast<LwpParaIndentProperty*>(pProps)->GetIndent();
+ LwpIndentOverride *pIndent = static_cast<LwpParaIndentProperty*>(pProps.get())->GetIndent();
if (pIndent)
{
if (!rParaStyle.GetIndent())
OverrideIndent(nullptr, pIndent, xOverStyle.get());
else
- OverrideIndent(m_pIndentOverride, pIndent, xOverStyle.get());
+ OverrideIndent(m_pIndentOverride.get(), pIndent, xOverStyle.get());
}
break;
}
case PP_LOCAL_SPACING:
{
noSpacing = false;
- LwpSpacingOverride *pSpacing = static_cast<LwpParaSpacingProperty*>(pProps)->GetSpacing();
+ LwpSpacingOverride *pSpacing = static_cast<LwpParaSpacingProperty*>(pProps.get())->GetSpacing();
if (pSpacing)
{
if (!rParaStyle.GetSpacing())
@@ -395,22 +377,22 @@ void LwpPara::RegisterStyle()
}
case PP_LOCAL_BORDER:
{
- OverrideParaBorder(pProps, xOverStyle.get());
+ OverrideParaBorder(pProps.get(), xOverStyle.get());
break;
}
case PP_LOCAL_BREAKS:
{
- OverrideParaBreaks(pProps, xOverStyle.get());
+ OverrideParaBreaks(pProps.get(), xOverStyle.get());
break;
}
case PP_LOCAL_BULLET:
{
- pBulletProps = pProps;
+ pBulletProps = pProps.get();
break;
}
case PP_LOCAL_NUMBERING:
{
- pNumberingProps = pProps;
+ pNumberingProps = pProps.get();
break;
}
case PP_LOCAL_TABRACK:
@@ -419,7 +401,7 @@ void LwpPara::RegisterStyle()
}
case PP_LOCAL_BACKGROUND:
{
- LwpBackgroundOverride* pBGOver = static_cast<LwpParaBackGroundProperty*>(pProps)->GetBackground();
+ LwpBackgroundOverride* pBGOver = static_cast<LwpParaBackGroundProperty*>(pProps.get())->GetBackground();
if (pBGOver)
{
LwpBackgroundStuff& rBGStuff = pBGOver->GetBGStuff();
@@ -446,14 +428,13 @@ void LwpPara::RegisterStyle()
default:
break;
}
- pProps = pProps->GetNext();
}
if (noIndent && m_pIndentOverride)
{
if (m_pIndentOverride->IsUseRelative() && GetParent())
{
- OverrideIndent(nullptr,m_pIndentOverride,xOverStyle.get());
+ OverrideIndent(nullptr,m_pIndentOverride.get(),xOverStyle.get());
}
}
if (!m_ParentStyleName.isEmpty())
@@ -469,7 +450,7 @@ void LwpPara::RegisterStyle()
{
xOverStyle.reset(new XFParaStyle);
*xOverStyle = *pBaseStyle;
- OverrideIndent(nullptr,m_pIndentOverride,xOverStyle.get());
+ OverrideIndent(nullptr,m_pIndentOverride.get(),xOverStyle.get());
if (!m_ParentStyleName.isEmpty())
xOverStyle->SetParentStyleName(m_ParentStyleName);
m_StyleName = pXFStyleManager->AddStyle(xOverStyle.release()).m_pStyle->GetStyleName();
@@ -511,7 +492,7 @@ void LwpPara::RegisterStyle()
}
else if (!m_xBullOver->IsEditable())
{
- m_aBulletStyleName = pBulletStyleMgr->RegisterBulletStyle(this, m_xBullOver.get(), m_pIndentOverride);
+ m_aBulletStyleName = pBulletStyleMgr->RegisterBulletStyle(this, m_xBullOver.get(), m_pIndentOverride.get());
}
// test codes
diff --git a/lotuswordpro/source/filter/lwppara.hxx b/lotuswordpro/source/filter/lwppara.hxx
index ef44a214d1dd..1a688304937d 100644
--- a/lotuswordpro/source/filter/lwppara.hxx
+++ b/lotuswordpro/source/filter/lwppara.hxx
@@ -199,18 +199,18 @@ protected:
sal_uInt16 m_nFlags;
sal_uInt16 m_nLevel;
LwpFribPtr m_Fribs;
- LwpParaProperty* m_pProps;
+ std::vector< std::unique_ptr<LwpParaProperty> > m_vProps;
//LwpForked3NotifyList* m_NotifyList; //not saved
OUString m_StyleName;
OUString m_ParentStyleName;//Add to support toc
- LwpBreaksOverride* m_pBreaks;
+ std::unique_ptr<LwpBreaksOverride> m_pBreaks;
OUString m_AftPageBreakName;
OUString m_BefPageBreakName;
OUString m_AftColumnBreakName;
OUString m_BefColumnBreakName;
- LwpIndentOverride* m_pIndentOverride;
+ std::unique_ptr<LwpIndentOverride> m_pIndentOverride;
OUString m_Content;//for silver bullet,get text of first frib
sal_uInt32 m_FontID;//for silver bullet
OUString m_AllText;//get all text in this paragraph
@@ -327,13 +327,11 @@ inline void LwpPara::SetXFContainer(XFContentContainer* pCont)
}
inline LwpIndentOverride* LwpPara::GetIndent()
{
- return m_pIndentOverride;
+ return m_pIndentOverride.get();
}
inline void LwpPara::SetIndent(LwpIndentOverride* pIndentOverride)
{
- if (m_pIndentOverride)
- delete m_pIndentOverride;
- m_pIndentOverride = pIndentOverride;
+ m_pIndentOverride.reset( pIndentOverride );
}
inline LwpObjectID& LwpPara::GetStoryID()
{
diff --git a/lotuswordpro/source/filter/lwppara1.cxx b/lotuswordpro/source/filter/lwppara1.cxx
index 14c1e7244f14..d31decf5df73 100644
--- a/lotuswordpro/source/filter/lwppara1.cxx
+++ b/lotuswordpro/source/filter/lwppara1.cxx
@@ -400,8 +400,7 @@ void LwpPara::OverrideParaBreaks(LwpParaProperty* pProps, XFParaStyle* pOverStyl
}
// save the breaks
- delete m_pBreaks;
- m_pBreaks = pFinalBreaks.release();
+ m_pBreaks.reset( pFinalBreaks.release() );
XFStyleManager* pXFStyleManager = LwpGlobalMgr::GetInstance()->GetXFStyleManager();
if (m_pBreaks->IsKeepWithNext())
@@ -554,16 +553,11 @@ void LwpPara::OverrideParaNumbering(LwpParaProperty const * pProps)
**************************************************************************/
LwpParaProperty* LwpPara::GetProperty(sal_uInt32 nPropType)
{
- LwpParaProperty* pProps = m_pProps;
- while(pProps)
- {
- if(pProps->GetType() == nPropType)
+ for (auto & i : m_vProps)
+ if(i->GetType() == nPropType)
{
- return pProps;
+ return i.get();
}
- pProps = pProps->GetNext();
-
- }
return nullptr;
}
diff --git a/lotuswordpro/source/filter/lwpparaproperty.cxx b/lotuswordpro/source/filter/lwpparaproperty.cxx
index 4df55a5bbec8..a60b291c1959 100644
--- a/lotuswordpro/source/filter/lwpparaproperty.cxx
+++ b/lotuswordpro/source/filter/lwpparaproperty.cxx
@@ -130,8 +130,7 @@ void LwpPara::ReadPropertyList(LwpObjectStream* pFile)
// Stick it at the beginning of the list
if (NewProp)
{
- NewProp->insert(m_pProps, nullptr);
- m_pProps = NewProp;
+ m_vProps.emplace(m_vProps.begin(), NewProp);
}
}
}
diff --git a/lotuswordpro/source/filter/lwpparaproperty.hxx b/lotuswordpro/source/filter/lwpparaproperty.hxx
index 89bd4cd52820..4c97f011c9ba 100644
--- a/lotuswordpro/source/filter/lwpparaproperty.hxx
+++ b/lotuswordpro/source/filter/lwpparaproperty.hxx
@@ -84,19 +84,14 @@
#define PP_LOCAL_KINSOKU 0x4b494e53UL /* "KINS" */
#define PP_PROPLIST 0x50524f50UL /* "PROP" */
-class LwpParaProperty : public LwpDLList
+class LwpParaProperty
{
public:
LwpParaProperty(){}
+ virtual ~LwpParaProperty() {}
virtual sal_uInt32 GetType() = 0;
- inline LwpParaProperty* GetNext();
};
-inline LwpParaProperty* LwpParaProperty::GetNext()
-{
- return static_cast<LwpParaProperty*>(LwpDLList::GetNext());
-}
-
//align/indent/spacing
//TO DO:border/background etc