summaryrefslogtreecommitdiff
path: root/lotuswordpro/source/filter/lwpdoc.cxx
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2014-06-06 16:49:17 +0200
committerStephan Bergmann <sbergman@redhat.com>2014-06-06 16:49:44 +0200
commit37183595bb3b4d58682f90fd9f6713bedcb852a2 (patch)
tree1ac1fd9d69c0d09ea204173bd77721dc01bbddeb /lotuswordpro/source/filter/lwpdoc.cxx
parent7abe976be5166845c5f43b70a0dfb38608d31356 (diff)
Fix memory leaks, by refcounting LwpObject
Change-Id: I1539597cd5bcabcbf0295d1acc320c503ad53604
Diffstat (limited to 'lotuswordpro/source/filter/lwpdoc.cxx')
-rw-r--r--lotuswordpro/source/filter/lwpdoc.cxx114
1 files changed, 57 insertions, 57 deletions
diff --git a/lotuswordpro/source/filter/lwpdoc.cxx b/lotuswordpro/source/filter/lwpdoc.cxx
index 32967258c9a5..7b421685bc88 100644
--- a/lotuswordpro/source/filter/lwpdoc.cxx
+++ b/lotuswordpro/source/filter/lwpdoc.cxx
@@ -163,8 +163,8 @@ void LwpDocument::Parse(IXFStream* pOutputStream)
ParseDocContent(pOutputStream);
}
- LwpObject* pDocSock = GetSocket()->obj( VO_DOCSOCK );
- if(pDocSock!=NULL)
+ rtl::Reference<LwpObject> pDocSock = GetSocket()->obj( VO_DOCSOCK );
+ if(pDocSock.is())
{
pDocSock->Parse(pOutputStream);
}
@@ -174,7 +174,7 @@ bool LwpDocument::IsSkippedDivision()
{
OUString sDivName;
bool ret = false;
- LwpDivInfo* pDiv = dynamic_cast<LwpDivInfo*>(GetDivInfoID()->obj(VO_DIVISIONINFO));
+ LwpDivInfo* pDiv = dynamic_cast<LwpDivInfo*>(GetDivInfoID()->obj(VO_DIVISIONINFO).get());
if (pDiv == NULL)
return true;
sDivName = pDiv->GetDivName();
@@ -186,10 +186,10 @@ bool LwpDocument::IsSkippedDivision()
|| (strClassName == STR_DivisionGroupEndnote)
|| (strClassName == STR_DocumentEndnote))
{
- LwpPageLayout* pPageLayout = dynamic_cast<LwpPageLayout*>(pDiv->GetInitialLayoutID()->obj(VO_PAGELAYOUT));
+ LwpPageLayout* pPageLayout = dynamic_cast<LwpPageLayout*>(pDiv->GetInitialLayoutID()->obj(VO_PAGELAYOUT).get());
if(pPageLayout)
{
- LwpStory* pStory = dynamic_cast<LwpStory*>(pPageLayout->GetContent()->obj(VO_STORY));
+ LwpStory* pStory = dynamic_cast<LwpStory*>(pPageLayout->GetContent()->obj(VO_STORY).get());
if(pStory)
{
//This judgement maybe have problem. If there is only one para in the story,
@@ -221,8 +221,8 @@ void LwpDocument::RegisterStyle()
RegisterFootnoteStyles();
//Register styles in other document connected with this document: next doc, children doc
- LwpObject* pDocSock = GetSocket()->obj();
- if(pDocSock!=NULL)
+ rtl::Reference<LwpObject> pDocSock = GetSocket()->obj();
+ if(pDocSock.is())
{
pDocSock->RegisterStyle();
}
@@ -233,15 +233,15 @@ void LwpDocument::RegisterStyle()
void LwpDocument::RegisterTextStyles()
{
//Register all text styles: para styles, character styles
- LwpDLVListHeadHolder* pParaStyleHolder = dynamic_cast<LwpDLVListHeadHolder*>(m_pFoundry->GetTextStyleHead()->obj());
+ LwpDLVListHeadHolder* pParaStyleHolder = dynamic_cast<LwpDLVListHeadHolder*>(m_pFoundry->GetTextStyleHead()->obj().get());
if(pParaStyleHolder)
{
- LwpTextStyle* pParaStyle = dynamic_cast<LwpTextStyle*> (pParaStyleHolder->GetHeadID()->obj());
+ LwpTextStyle* pParaStyle = dynamic_cast<LwpTextStyle*> (pParaStyleHolder->GetHeadID()->obj().get());
while(pParaStyle)
{
pParaStyle->SetFoundry(m_pFoundry);
pParaStyle->RegisterStyle();
- pParaStyle = dynamic_cast<LwpParaStyle*>(pParaStyle->GetNext()->obj());
+ pParaStyle = dynamic_cast<LwpParaStyle*>(pParaStyle->GetNext()->obj().get());
}
}
ChangeStyleName();//add by ,for click here block,05/5/26
@@ -256,15 +256,15 @@ void LwpDocument::RegisterLayoutStyles()
m_pFoundry->RegisterAllLayouts();
//set initial pagelayout in story for parsing pagelayout
- LwpDivInfo* pDivInfo = dynamic_cast<LwpDivInfo*> (m_DivInfo.obj( VO_DIVISIONINFO));
+ LwpDivInfo* pDivInfo = dynamic_cast<LwpDivInfo*> (m_DivInfo.obj( VO_DIVISIONINFO).get());
LwpPageLayout* pPageLayout = NULL;
if(pDivInfo)
{
- pPageLayout = dynamic_cast<LwpPageLayout*>(pDivInfo->GetInitialLayoutID()->obj(VO_PAGELAYOUT));
+ pPageLayout = dynamic_cast<LwpPageLayout*>(pDivInfo->GetInitialLayoutID()->obj(VO_PAGELAYOUT).get());
if(pPageLayout)
{
//In Ole division, the content of pagelayout is VO_OLEOBJECT
- LwpStory* pStory = dynamic_cast<LwpStory*>(pPageLayout->GetContent()->obj(VO_STORY));
+ LwpStory* pStory = dynamic_cast<LwpStory*>(pPageLayout->GetContent()->obj(VO_STORY).get());
if(pStory)
{
//add all the pagelayout in order into the pagelayout list;
@@ -280,16 +280,16 @@ void LwpDocument::RegisterLayoutStyles()
void LwpDocument::RegisterStylesInPara()
{
//Register all automatic styles in para
- LwpHeadContent* pContent = dynamic_cast<LwpHeadContent*> (m_pFoundry->GetContentManager()->GetContentList()->obj());
+ LwpHeadContent* pContent = dynamic_cast<LwpHeadContent*> (m_pFoundry->GetContentManager()->GetContentList()->obj().get());
if(pContent)
{
- LwpStory* pStory = dynamic_cast<LwpStory*>(pContent->GetChildHead()->obj(VO_STORY));
+ LwpStory* pStory = dynamic_cast<LwpStory*>(pContent->GetChildHead()->obj(VO_STORY).get());
while(pStory)
{
//Register the child para
pStory->SetFoundry(m_pFoundry);
pStory->RegisterStyle();
- pStory = dynamic_cast<LwpStory*>(pStory->GetNext()->obj(VO_STORY));
+ pStory = dynamic_cast<LwpStory*>(pStory->GetNext()->obj(VO_STORY).get());
}
}
}
@@ -300,16 +300,16 @@ void LwpDocument::RegisterBulletStyles()
{
//Register bullet styles
LwpDLVListHeadHolder* mBulletHead = dynamic_cast<LwpDLVListHeadHolder*>
- (m_pFoundry->GetBulletManagerID()->obj(VO_HEADHOLDER));
+ (m_pFoundry->GetBulletManagerID()->obj(VO_HEADHOLDER).get());
if( mBulletHead )
{
LwpSilverBullet* pBullet = dynamic_cast<LwpSilverBullet*>
- (mBulletHead->GetHeadID()->obj());
+ (mBulletHead->GetHeadID()->obj().get());
while(pBullet)
{
pBullet->SetFoundry(m_pFoundry);
pBullet->RegisterStyle();
- pBullet = dynamic_cast<LwpSilverBullet*> (pBullet->GetNext()->obj());
+ pBullet = dynamic_cast<LwpSilverBullet*> (pBullet->GetNext()->obj().get());
}
}
}
@@ -319,8 +319,8 @@ void LwpDocument::RegisterBulletStyles()
void LwpDocument::RegisterGraphicsStyles()
{
//Register all graphics styles, the first object should register the next;
- LwpObject* pGraphic = m_pFoundry->GetGraphicListHead()->obj(VO_GRAPHIC);
- if(pGraphic)
+ rtl::Reference<LwpObject> pGraphic = m_pFoundry->GetGraphicListHead()->obj(VO_GRAPHIC);
+ if(pGraphic.is())
{
pGraphic->SetFoundry(m_pFoundry);
pGraphic->RegisterStyle();
@@ -344,7 +344,7 @@ void LwpDocument::RegisterFootnoteStyles()
//Register footnote and endnote configuration for the entire document
if(!m_FootnoteOpts.IsNull())
{
- LwpFootnoteOptions* pFootnoteOpts = dynamic_cast<LwpFootnoteOptions*>(m_FootnoteOpts.obj());
+ LwpFootnoteOptions* pFootnoteOpts = dynamic_cast<LwpFootnoteOptions*>(m_FootnoteOpts.obj().get());
if (pFootnoteOpts)
{
pFootnoteOpts->SetMasterPage("Endnote");
@@ -356,13 +356,13 @@ void LwpDocument::RegisterFootnoteStyles()
LwpDocument* pEndnoteDiv = GetLastDivisionThatHasEndnote();
if(this == pEndnoteDiv)
{
- LwpDLVListHeadTailHolder* pHeadTail = dynamic_cast<LwpDLVListHeadTailHolder*>(GetPageHintsID()->obj());
+ LwpDLVListHeadTailHolder* pHeadTail = dynamic_cast<LwpDLVListHeadTailHolder*>(GetPageHintsID()->obj().get());
if(pHeadTail)
{
- LwpPageHint* pPageHint = dynamic_cast<LwpPageHint*>(pHeadTail->GetTail()->obj());
+ LwpPageHint* pPageHint = dynamic_cast<LwpPageHint*>(pHeadTail->GetTail()->obj().get());
if(pPageHint && !pPageHint->GetPageLayoutID()->IsNull())
{
- LwpPageLayout* pPageLayout = dynamic_cast<LwpPageLayout*>(pPageHint->GetPageLayoutID()->obj());
+ LwpPageLayout* pPageLayout = dynamic_cast<LwpPageLayout*>(pPageHint->GetPageLayoutID()->obj().get());
if(pPageLayout)
{
pPageLayout->SetFoundry(GetFoundry());
@@ -386,7 +386,7 @@ void LwpDocument::RegisterDefaultParaStyles()
LwpDocument* pFirstDoc = GetFirstDivisionWithContentsThatIsNotOLE();
if(pFirstDoc)
{
- LwpVerDocument* pVerDoc = dynamic_cast<LwpVerDocument*>(pFirstDoc->GetVerDoc()->obj());
+ LwpVerDocument* pVerDoc = dynamic_cast<LwpVerDocument*>(pFirstDoc->GetVerDoc()->obj().get());
if(pVerDoc)
{
pVerDoc->RegisterStyle();
@@ -403,11 +403,11 @@ void LwpDocument::RegisterDefaultParaStyles()
void LwpDocument::ParseDocContent(IXFStream* pOutputStream)
{
//Parse content in PageLayout
- LwpDivInfo* pDivInfo = dynamic_cast<LwpDivInfo*> (m_DivInfo.obj());
+ LwpDivInfo* pDivInfo = dynamic_cast<LwpDivInfo*> (m_DivInfo.obj().get());
if(pDivInfo==NULL) return;
- LwpObject* pLayoutObj = pDivInfo->GetInitialLayoutID()->obj();
- if(pLayoutObj==NULL)
+ rtl::Reference<LwpObject> pLayoutObj = pDivInfo->GetInitialLayoutID()->obj();
+ if(!pLayoutObj.is())
{
//master document not supported now.
return;
@@ -434,7 +434,7 @@ LwpObjectID* LwpDocument::GetValidFootnoteOpts()
*/
sal_uInt16 LwpDocument::GetEndnoteType()
{
- LwpDivInfo* pDivInfo = dynamic_cast<LwpDivInfo*>(GetDivInfoID()->obj());
+ LwpDivInfo* pDivInfo = dynamic_cast<LwpDivInfo*>(GetDivInfoID()->obj().get());
if (!pDivInfo)
return FN_DONTCARE;
OUString strClassName = pDivInfo->GetClassName();
@@ -451,10 +451,10 @@ sal_uInt16 LwpDocument::GetEndnoteType()
*/
LwpDocument* LwpDocument::GetPreviousDivision()
{
- LwpDocSock* pDocSock = dynamic_cast<LwpDocSock*>(GetSocket()->obj());
+ LwpDocSock* pDocSock = dynamic_cast<LwpDocSock*>(GetSocket()->obj().get());
if(pDocSock)
{
- return dynamic_cast<LwpDocument*>(pDocSock->GetPrevious()->obj());
+ return dynamic_cast<LwpDocument*>(pDocSock->GetPrevious()->obj().get());
}
return NULL;
}
@@ -463,10 +463,10 @@ LwpDocument* LwpDocument::GetPreviousDivision()
*/
LwpDocument* LwpDocument::GetNextDivision()
{
- LwpDocSock* pDocSock = dynamic_cast<LwpDocSock*>(GetSocket()->obj());
+ LwpDocSock* pDocSock = dynamic_cast<LwpDocSock*>(GetSocket()->obj().get());
if(pDocSock)
{
- return dynamic_cast<LwpDocument*>(pDocSock->GetNext()->obj());
+ return dynamic_cast<LwpDocument*>(pDocSock->GetNext()->obj().get());
}
return NULL;
}
@@ -475,10 +475,10 @@ LwpDocument* LwpDocument::GetPreviousDivision()
*/
LwpDocument* LwpDocument::GetParentDivision()
{
- LwpDocSock* pDocSock = dynamic_cast<LwpDocSock*>(GetSocket()->obj());
+ LwpDocSock* pDocSock = dynamic_cast<LwpDocSock*>(GetSocket()->obj().get());
if(pDocSock)
{
- return dynamic_cast<LwpDocument*>(pDocSock->GetParent()->obj());
+ return dynamic_cast<LwpDocument*>(pDocSock->GetParent()->obj().get());
}
return NULL;
}
@@ -491,7 +491,7 @@ LwpDocument* LwpDocument::GetPreviousDivision()
for (pPrev = GetPreviousDivision(); pPrev; pPrev = pPrev->GetPreviousDivision())
{
- LwpDivInfo* pDivInfo = dynamic_cast<LwpDivInfo*>(pPrev->GetDivInfoID()->obj());
+ LwpDivInfo* pDivInfo = dynamic_cast<LwpDivInfo*>(pPrev->GetDivInfoID()->obj().get());
if(pDivInfo && pDivInfo->HasContents())
return pPrev;
}
@@ -506,7 +506,7 @@ LwpDocument* LwpDocument::GetPreviousDivision()
for (pNext = GetNextDivision(); pNext; pNext = pNext->GetNextDivision())
{
- LwpDivInfo* pDivInfo = dynamic_cast<LwpDivInfo*>(pNext->GetDivInfoID()->obj());
+ LwpDivInfo* pDivInfo = dynamic_cast<LwpDivInfo*>(pNext->GetDivInfoID()->obj().get());
if(pDivInfo && pDivInfo->HasContents())
return pNext;
}
@@ -533,7 +533,7 @@ LwpDocument* LwpDocument::GetPreviousDivision()
*/
LwpDocument* LwpDocument::GetLastDivisionWithContents()
{
- LwpDivInfo* pDivInfo = dynamic_cast<LwpDivInfo*>(GetDivInfoID()->obj());
+ LwpDivInfo* pDivInfo = dynamic_cast<LwpDivInfo*>(GetDivInfoID()->obj().get());
if(pDivInfo && pDivInfo->HasContents())
{
return this;
@@ -564,7 +564,7 @@ LwpDocument* LwpDocument::GetPreviousDivision()
while (pNext)
{
- LwpDivInfo* pDivInfo = dynamic_cast<LwpDivInfo*>(pNext->GetDivInfoID()->obj());
+ LwpDivInfo* pDivInfo = dynamic_cast<LwpDivInfo*>(pNext->GetDivInfoID()->obj().get());
if (pDivInfo && pDivInfo->HasContents())
pLast = pNext;
pNext = pNext->GetNextInGroup();
@@ -578,9 +578,9 @@ LwpDocument* LwpDocument::GetPreviousDivision()
*/
LwpDocument* LwpDocument::GetLastDivision()
{
- LwpDocSock* pDocSock = dynamic_cast<LwpDocSock*>(GetSocket()->obj());
+ LwpDocSock* pDocSock = dynamic_cast<LwpDocSock*>(GetSocket()->obj().get());
if(pDocSock)
- return dynamic_cast<LwpDocument*>(pDocSock->GetChildTail()->obj());
+ return dynamic_cast<LwpDocument*>(pDocSock->GetChildTail()->obj().get());
return NULL;
}
@@ -589,9 +589,9 @@ LwpDocument* LwpDocument::GetPreviousDivision()
*/
LwpDocument* LwpDocument::GetFirstDivision()
{
- LwpDocSock* pDocSock = dynamic_cast<LwpDocSock*>(GetSocket()->obj());
+ LwpDocSock* pDocSock = dynamic_cast<LwpDocSock*>(GetSocket()->obj().get());
if(pDocSock)
- return dynamic_cast<LwpDocument*>(pDocSock->GetChildHead()->obj());
+ return dynamic_cast<LwpDocument*>(pDocSock->GetChildHead()->obj().get());
return NULL;
}
@@ -614,7 +614,7 @@ LwpDocument* LwpDocument::GetPreviousDivision()
*/
LwpDocument* LwpDocument::GetFirstDivisionWithContentsThatIsNotOLE()
{
- LwpDivInfo* pDivInfo = dynamic_cast<LwpDivInfo*>(GetDivInfoID()->obj());
+ LwpDivInfo* pDivInfo = dynamic_cast<LwpDivInfo*>(GetDivInfoID()->obj().get());
if(pDivInfo && pDivInfo->HasContents()
&& !pDivInfo->IsOleDivision())
return this;
@@ -653,7 +653,7 @@ LwpDocument* LwpDocument::GetPreviousDivision()
*/
LwpVirtualLayout* LwpDocument::GetEnSuperTableLayout()
{
- LwpHeadLayout* pHeadLayout = dynamic_cast<LwpHeadLayout*>(GetFoundry()->GetLayout()->obj());
+ LwpHeadLayout* pHeadLayout = dynamic_cast<LwpHeadLayout*>(GetFoundry()->GetLayout()->obj().get());
if(pHeadLayout)
{
return pHeadLayout->FindEnSuperTableLayout();
@@ -669,7 +669,7 @@ bool LwpDocument::GetNumberOfPages(LwpDocument* pEndDivision, sal_uInt16& nCount
if(this == pEndDivision)
return true;
- LwpDivInfo* pDivInfo = dynamic_cast<LwpDivInfo*>(m_DivInfo.obj());
+ LwpDivInfo* pDivInfo = dynamic_cast<LwpDivInfo*>(m_DivInfo.obj().get());
if(pDivInfo)
{
pDivInfo->GetNumberOfPages(nCount);
@@ -704,7 +704,7 @@ sal_uInt16 LwpDocument::GetNumberOfPagesBefore()
{
LwpDocument* pDivision = GetFirstDivision();
- LwpDivInfo* pDivInfo = dynamic_cast<LwpDivInfo*>(m_DivInfo.obj());
+ LwpDivInfo* pDivInfo = dynamic_cast<LwpDivInfo*>(m_DivInfo.obj().get());
if(pDivInfo)
nNumPages += pDivInfo->GetMaxNumberOfPages();
while(pDivision)
@@ -737,13 +737,13 @@ void LwpDocument::XFConvertFrameInPage(XFContentContainer * pCont)
{
LwpDocument* pDivision = GetFirstDivision();
- LwpDivInfo* pDivInfo = dynamic_cast<LwpDivInfo*> (GetDivInfoID()->obj());
+ LwpDivInfo* pDivInfo = dynamic_cast<LwpDivInfo*> (GetDivInfoID()->obj().get());
if(pDivInfo)
{
- LwpPageLayout* pPageLayout = dynamic_cast<LwpPageLayout*>(pDivInfo->GetInitialLayoutID()->obj());
+ LwpPageLayout* pPageLayout = dynamic_cast<LwpPageLayout*>(pDivInfo->GetInitialLayoutID()->obj().get());
if(pPageLayout)
{
- LwpStory* pStory = dynamic_cast<LwpStory*>(pPageLayout->GetContent()->obj());
+ LwpStory* pStory = dynamic_cast<LwpStory*>(pPageLayout->GetContent()->obj().get());
if(pStory)
pStory->XFConvertFrameInPage(pCont);
}
@@ -784,12 +784,12 @@ void LwpDocSock::Read()
*/
void LwpDocSock::RegisterStyle()
{
- LwpObject* pDoc = GetNext()->obj();
- if(pDoc)
+ rtl::Reference<LwpObject> pDoc = GetNext()->obj();
+ if(pDoc.is())
pDoc->RegisterStyle();
pDoc = GetChildHead()->obj();
- if(pDoc)
+ if(pDoc.is())
pDoc->RegisterStyle();
}
/**
@@ -797,12 +797,12 @@ void LwpDocSock::RegisterStyle()
*/
void LwpDocSock::Parse(IXFStream* pOutputStream)
{
- LwpObject* pDoc = GetChildHead()->obj();
- if(pDoc)
+ rtl::Reference<LwpObject> pDoc = GetChildHead()->obj();
+ if(pDoc.is())
pDoc->Parse(pOutputStream);
pDoc = GetNext()->obj();
- if(pDoc)
+ if(pDoc.is())
pDoc->Parse(pOutputStream);
}