diff options
author | Jacobo Aragunde Pérez <jaragunde@igalia.com> | 2014-04-30 12:14:02 +0200 |
---|---|---|
committer | Jacobo Aragunde Pérez <jaragunde@igalia.com> | 2014-04-30 16:46:11 +0200 |
commit | ae4e79e7728b39bdb98f023d950dbbfa7c4c38d4 (patch) | |
tree | 95c4aef4f5d57c55945e96b31bed61b1c8e79a37 | |
parent | 2310af236659f4fdd4c26b1e277e568d04a20687 (diff) |
oox: Code protection against empty effects
This is an extra check against clumsy programmers like me to prevent
generating incorrect documents.
Change-Id: I22261e3b6123a9a44461683519e33224f08adb5a
-rw-r--r-- | oox/source/export/drawingml.cxx | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx index a1f00fd05ddf..1fde44a0f713 100644 --- a/oox/source/export/drawingml.cxx +++ b/oox/source/export/drawingml.cxx @@ -2251,20 +2251,23 @@ void DrawingML::WriteShapeEffects( Reference< XPropertySet > rXPropSet ) } } - mpFS->startElementNS(XML_a, XML_effectLst, FSEND); - sax_fastparser::XFastAttributeListRef xAttrList( aOuterShdwAttrList ); - mpFS->startElement( nEffectToken, xAttrList ); - - if( bContainsColor ) + if( nEffectToken > 0 ) { - if( sSchemeClr.isEmpty() ) - WriteColor( nRgbClr, nAlpha ); - else - WriteColor( sSchemeClr, aTransformations ); - } + mpFS->startElementNS(XML_a, XML_effectLst, FSEND); + sax_fastparser::XFastAttributeListRef xAttrList( aOuterShdwAttrList ); + mpFS->startElement( nEffectToken, xAttrList ); - mpFS->endElement( nEffectToken ); - mpFS->endElementNS(XML_a, XML_effectLst); + if( bContainsColor ) + { + if( sSchemeClr.isEmpty() ) + WriteColor( nRgbClr, nAlpha ); + else + WriteColor( sSchemeClr, aTransformations ); + } + + mpFS->endElement( nEffectToken ); + mpFS->endElementNS(XML_a, XML_effectLst); + } } } |