diff options
author | Caolán McNamara <caolanm@redhat.com> | 2015-12-10 15:45:29 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2015-12-10 15:45:29 +0000 |
commit | 1aff042d88b2d6d3c3b7ed9db4b36bed640a0f06 (patch) | |
tree | 33ee4e867d96000bf50ff03459baea2880f7adc3 | |
parent | 6093ba6065ea339c5c6de162294eabf0eebe3c80 (diff) |
guard against missing range
Change-Id: Icdb0694b9c1771a475368aeeb4cb11f4ba8b84f3
-rw-r--r-- | lotuswordpro/source/filter/lwptablelayout.cxx | 68 |
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 (...) { |