summaryrefslogtreecommitdiff
path: root/writerfilter/source/dmapper/NumberingManager.cxx
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2020-08-28 21:14:30 +0100
committerCaolán McNamara <caolanm@redhat.com>2020-08-29 11:19:45 +0200
commit2c11d73ccce3e705c88c877c167be0acaef5b350 (patch)
treed2581a5b082f3e07dd9d5aa44e042dc90ad7aa87 /writerfilter/source/dmapper/NumberingManager.cxx
parentd784e711c102f204552c3c816636da01b1085f61 (diff)
ofz#25268 Null-dereference
Change-Id: I1b5a738bb1dfccb64b8d0520ffa4ba2cbff00026 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/101583 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'writerfilter/source/dmapper/NumberingManager.cxx')
-rw-r--r--writerfilter/source/dmapper/NumberingManager.cxx27
1 files changed, 17 insertions, 10 deletions
diff --git a/writerfilter/source/dmapper/NumberingManager.cxx b/writerfilter/source/dmapper/NumberingManager.cxx
index 5735542cba16..4e66b5aff0ea 100644
--- a/writerfilter/source/dmapper/NumberingManager.cxx
+++ b/writerfilter/source/dmapper/NumberingManager.cxx
@@ -525,7 +525,9 @@ void ListDef::CreateNumberingRules( DomainMapper& rDMapper,
auto aLvlProps = comphelper::sequenceToContainer< std::vector<beans::PropertyValue> >(aProps[nLevel]);
// Get the char style
- uno::Sequence< beans::PropertyValue > aAbsCharStyleProps = pAbsLevel->GetCharStyleProperties( );
+ auto aAbsCharStyleProps = pAbsLevel
+ ? pAbsLevel->GetCharStyleProperties()
+ : uno::Sequence<beans::PropertyValue>();
if ( pLevel )
{
uno::Sequence< beans::PropertyValue >& rAbsCharStyleProps = aAbsCharStyleProps;
@@ -548,7 +550,9 @@ void ListDef::CreateNumberingRules( DomainMapper& rDMapper,
// Get the prefix / suffix / Parent numbering
// and add them to the level properties
- OUString sText = pAbsLevel->GetBulletChar( );
+ OUString sText = pAbsLevel
+ ? pAbsLevel->GetBulletChar()
+ : OUString();
// Inherit <w:lvlText> from the abstract level in case the override would be empty.
if (pLevel && !pLevel->GetBulletChar().isEmpty())
sText = pLevel->GetBulletChar( );
@@ -568,7 +572,7 @@ void ListDef::CreateNumberingRules( DomainMapper& rDMapper,
m_xNumRules->replaceByIndex(nLevel, uno::makeAny(comphelper::containerToSequence(aLvlProps)));
// Handle the outline level here
- if ( pAbsLevel->isOutlineNumbering())
+ if (pAbsLevel && pAbsLevel->isOutlineNumbering())
{
uno::Reference< text::XChapterNumberingSupplier > xOutlines (
xFactory, uno::UNO_QUERY_THROW );
@@ -581,14 +585,17 @@ void ListDef::CreateNumberingRules( DomainMapper& rDMapper,
xOutlineRules->replaceByIndex(nLevel, uno::makeAny(comphelper::containerToSequence(aLvlProps)));
}
- // first level without default outline paragraph style
- const tools::SvRef< StyleSheetEntry >& aParaStyle = pAbsLevel->GetParaStyle();
- if ( WW_OUTLINE_MAX + 1 == m_nDefaultParentLevels && ( !aParaStyle ||
- aParaStyle->sConvertedStyleName.getLength() != RTL_CONSTASCII_LENGTH( "Heading 1" ) ||
- !aParaStyle->sConvertedStyleName.startsWith("Heading ") ||
- aParaStyle->sConvertedStyleName[ RTL_CONSTASCII_LENGTH( "Heading " ) ] - u'1' != nLevel ) )
+ if (pAbsLevel)
{
- m_nDefaultParentLevels = nLevel;
+ // first level without default outline paragraph style
+ const tools::SvRef< StyleSheetEntry >& aParaStyle = pAbsLevel->GetParaStyle();
+ if ( WW_OUTLINE_MAX + 1 == m_nDefaultParentLevels && ( !aParaStyle ||
+ aParaStyle->sConvertedStyleName.getLength() != RTL_CONSTASCII_LENGTH( "Heading 1" ) ||
+ !aParaStyle->sConvertedStyleName.startsWith("Heading ") ||
+ aParaStyle->sConvertedStyleName[ RTL_CONSTASCII_LENGTH( "Heading " ) ] - u'1' != nLevel ) )
+ {
+ m_nDefaultParentLevels = nLevel;
+ }
}
nLevel++;