diff options
author | Xisco Fauli <xiscofauli@libreoffice.org> | 2022-12-21 10:28:28 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.com> | 2022-12-21 15:34:00 +0000 |
commit | ad3a1ed90fc5a19c0191ec572f12f359f98a0958 (patch) | |
tree | 7f8add10bd1fb88ac2908ce5d68c7f5e9841475b /oox | |
parent | 8efbc3e7f667bc1f04db4bcf908df905a1f34e06 (diff) |
oox: fix crash in oox::drawingml::Transform2DContext::onCreateContext
Similar to 68a259f5af8757923be8a226631f38366fe8e37b
"tdf#152606: fix crash when opening specific pptx"
See https://crashreport.libreoffice.org/stats/signature/oox::drawingml::Transform2DContext::onCreateContext(long,oox::AttributeList%20const%20&)
Change-Id: Iac769edadb72590d8aef1ea3fc3845fce7a0bd86
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144648
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Diffstat (limited to 'oox')
-rw-r--r-- | oox/source/drawingml/transform2dcontext.cxx | 41 |
1 files changed, 22 insertions, 19 deletions
diff --git a/oox/source/drawingml/transform2dcontext.cxx b/oox/source/drawingml/transform2dcontext.cxx index 9d295d826b63..1cd67d1192db 100644 --- a/oox/source/drawingml/transform2dcontext.cxx +++ b/oox/source/drawingml/transform2dcontext.cxx @@ -328,26 +328,29 @@ ContextHandlerRef Transform2DContext::onCreateContext( sal_Int32 aElementToken, } } - // Calculate indent offsets - sal_Int32 nOffsetLeft = aUnrotatedTxXfrm.X - aPresetTextRectangle.X; - sal_Int32 nOffsetTop = aUnrotatedTxXfrm.Y - aPresetTextRectangle.Y; - sal_Int32 nOffsetRight - = aPresetTextRectangle.Width - aUnrotatedTxXfrm.Width - nOffsetLeft; - sal_Int32 nOffsetBottom - = aPresetTextRectangle.Height - aUnrotatedTxXfrm.Height - nOffsetTop; + if(mrShape.getTextBody()) + { + // Calculate indent offsets + sal_Int32 nOffsetLeft = aUnrotatedTxXfrm.X - aPresetTextRectangle.X; + sal_Int32 nOffsetTop = aUnrotatedTxXfrm.Y - aPresetTextRectangle.Y; + sal_Int32 nOffsetRight + = aPresetTextRectangle.Width - aUnrotatedTxXfrm.Width - nOffsetLeft; + sal_Int32 nOffsetBottom + = aPresetTextRectangle.Height - aUnrotatedTxXfrm.Height - nOffsetTop; - if (nOffsetLeft) - mrShape.getTextBody()->getTextProperties().moTextOffLeft - = GetCoordinate(nOffsetLeft); - if (nOffsetTop) - mrShape.getTextBody()->getTextProperties().moTextOffUpper - = GetCoordinate(nOffsetTop); - if (nOffsetRight) - mrShape.getTextBody()->getTextProperties().moTextOffRight - = GetCoordinate(nOffsetRight); - if (nOffsetBottom) - mrShape.getTextBody()->getTextProperties().moTextOffLower - = GetCoordinate(nOffsetBottom); + if (nOffsetLeft) + mrShape.getTextBody()->getTextProperties().moTextOffLeft + = GetCoordinate(nOffsetLeft); + if (nOffsetTop) + mrShape.getTextBody()->getTextProperties().moTextOffUpper + = GetCoordinate(nOffsetTop); + if (nOffsetRight) + mrShape.getTextBody()->getTextProperties().moTextOffRight + = GetCoordinate(nOffsetRight); + if (nOffsetBottom) + mrShape.getTextBody()->getTextProperties().moTextOffLower + = GetCoordinate(nOffsetBottom); + } } break; } |