summaryrefslogtreecommitdiff
path: root/writerfilter/source/dmapper/DomainMapperTableHandler.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'writerfilter/source/dmapper/DomainMapperTableHandler.cxx')
-rw-r--r--writerfilter/source/dmapper/DomainMapperTableHandler.cxx16
1 files changed, 15 insertions, 1 deletions
diff --git a/writerfilter/source/dmapper/DomainMapperTableHandler.cxx b/writerfilter/source/dmapper/DomainMapperTableHandler.cxx
index 7b8d9cd9a42d..b4002d7fd795 100644
--- a/writerfilter/source/dmapper/DomainMapperTableHandler.cxx
+++ b/writerfilter/source/dmapper/DomainMapperTableHandler.cxx
@@ -116,9 +116,17 @@ void DomainMapperTableHandler::startTable(unsigned int nRows,
PropertyMapPtr lcl_SearchParentStyleSheetAndMergeProperties(const StyleSheetEntryPtr pStyleSheet, StyleSheetTablePtr pStyleSheetTable)
{
PropertyMapPtr pRet;
+
+ if (!pStyleSheet)
+ return pRet;
+
if(!pStyleSheet->sBaseStyleIdentifier.isEmpty())
{
const StyleSheetEntryPtr pParentStyleSheet = pStyleSheetTable->FindStyleSheetByISTD( pStyleSheet->sBaseStyleIdentifier );
+ //a loop in the style hierarchy, bail out
+ if (pParentStyleSheet == pStyleSheet)
+ return pRet;
+
pRet = lcl_SearchParentStyleSheetAndMergeProperties( pParentStyleSheet, pStyleSheetTable );
}
else
@@ -126,7 +134,10 @@ PropertyMapPtr lcl_SearchParentStyleSheetAndMergeProperties(const StyleSheetEntr
pRet.reset( new PropertyMap );
}
- pRet->InsertProps(pStyleSheet->pProperties);
+ if (pRet)
+ {
+ pRet->InsertProps(pStyleSheet->pProperties);
+ }
return pRet;
}
@@ -291,6 +302,9 @@ namespace
bool lcl_extractTableBorderProperty(PropertyMapPtr pTableProperties, const PropertyIds nId, TableInfo& rInfo, table::BorderLine2& rLine)
{
+ if (!pTableProperties)
+ return false;
+
PropertyMap::iterator aTblBorderIter = pTableProperties->find(nId);
if( aTblBorderIter != pTableProperties->end() )
{