summaryrefslogtreecommitdiff
path: root/lotuswordpro
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2015-12-10 15:45:29 +0000
committerCaolán McNamara <caolanm@redhat.com>2015-12-10 15:45:55 +0000
commitdb40b5c71c9e5c1019fb6de0f0e5b39a39b37e1d (patch)
treeb1ba207c680a9c31e3d5f913c3ce9e292d8522d6 /lotuswordpro
parent68fb533ed190d09b080b99fc80f5026afeae968d (diff)
guard against missing range
Change-Id: Icdb0694b9c1771a475368aeeb4cb11f4ba8b84f3 (cherry picked from commit 1aff042d88b2d6d3c3b7ed9db4b36bed640a0f06)
Diffstat (limited to 'lotuswordpro')
-rw-r--r--lotuswordpro/source/filter/lwptablelayout.cxx68
1 files changed, 37 insertions, 31 deletions
diff --git a/lotuswordpro/source/filter/lwptablelayout.cxx b/lotuswordpro/source/filter/lwptablelayout.cxx
index c709b631c609..c3aabeede7a8 100644
--- a/lotuswordpro/source/filter/lwptablelayout.cxx
+++ b/lotuswordpro/source/filter/lwptablelayout.cxx
@@ -1122,44 +1122,50 @@ void LwpTableLayout::PutCellVals(LwpFoundry* pFoundry, LwpObjectID aTableID)
pTableRange = pTableRange->GetNext();
}
- if (pTableRange)
- {
- LwpCellRange* pRange = static_cast<LwpCellRange*>(pTableRange->GetCellRangeID().obj().get());
- LwpFolder* pFolder = static_cast<LwpFolder*>(pRange->GetFolderID().obj().get());
- LwpObjectID aRowListID = pFolder->GetChildHeadID();
- LwpRowList* pRowList = static_cast<LwpRowList*>(aRowListID.obj().get());
+ if (!pTableRange)
+ return;
+
+ LwpCellRange* pRange = static_cast<LwpCellRange*>(pTableRange->GetCellRangeID().obj().get());
+ if (!pRange)
+ return;
+
+ LwpFolder* pFolder = static_cast<LwpFolder*>(pRange->GetFolderID().obj().get());
+ if (!pFolder)
+ return;
- //loop the rowlist
- while( nullptr!=pRowList)
+ LwpObjectID aRowListID = pFolder->GetChildHeadID();
+ LwpRowList* pRowList = static_cast<LwpRowList*>(aRowListID.obj().get());
+
+ //loop the rowlist
+ while( nullptr!=pRowList)
+ {
+ sal_uInt16 nRowID = pRowList->GetRowID();
{
- sal_uInt16 nRowID = pRowList->GetRowID();
+ LwpCellList* pCellList = static_cast<LwpCellList*>(pRowList->GetChildHeadID().obj().get());
+ //loop the cellList
+ while( nullptr!=pCellList)
{
- LwpCellList* pCellList = static_cast<LwpCellList*>(pRowList->GetChildHeadID().obj().get());
- //loop the cellList
- while( nullptr!=pCellList)
- {
- {//put cell
- sal_uInt16 nColID = pCellList->GetColumnID();
-
- XFCell* pCell = GetCellsMap(nRowID,static_cast<sal_uInt8>(nColID));
- if (pCell)
- {
- pCellList->Convert(pCell, this);
-
- //process paragraph
- PostProcessParagraph(pCell, nRowID, nColID);
- }
- else
- {
- //Hidden cell would not be in cellsmap
- assert(false);
- }
+ {//put cell
+ sal_uInt16 nColID = pCellList->GetColumnID();
+
+ XFCell* pCell = GetCellsMap(nRowID,static_cast<sal_uInt8>(nColID));
+ if (pCell)
+ {
+ pCellList->Convert(pCell, this);
+
+ //process paragraph
+ PostProcessParagraph(pCell, nRowID, nColID);
+ }
+ else
+ {
+ //Hidden cell would not be in cellsmap
+ assert(false);
}
- pCellList = static_cast<LwpCellList*>(pCellList->GetNextID().obj().get());
}
+ pCellList = static_cast<LwpCellList*>(pCellList->GetNextID().obj().get());
}
- pRowList = static_cast<LwpRowList*>(pRowList->GetNextID().obj().get());
}
+ pRowList = static_cast<LwpRowList*>(pRowList->GetNextID().obj().get());
}
}catch (...) {