sw/source/uibase/uno/unotxdoc.cxx | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-)
New commits: commit 4176d652a5aa31e6ea7a1be1798819ceb0d2b007 Author: Michael Stahl <mst...@redhat.com> Date: Tue Mar 31 15:35:36 2015 +0200 sw: fix obscure crash in SwXTextDocument::getSomething() xNumFmtAgg may be null if you directly call global ServiceManager's createInstanceWithContext("com.sun.star.text.TextDocument") Change-Id: Id619a3f5c9e3f8281f9ef72db132c64287e027c4 (cherry picked from commit d360477d8740f29e2c2bc5f7bbd667df7cd26ee9) Reviewed-on: https://gerrit.libreoffice.org/15102 Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/sw/source/uibase/uno/unotxdoc.cxx b/sw/source/uibase/uno/unotxdoc.cxx index 50dc5f8..7b0b82c 100644 --- a/sw/source/uibase/uno/unotxdoc.cxx +++ b/sw/source/uibase/uno/unotxdoc.cxx @@ -263,19 +263,16 @@ sal_Int64 SAL_CALL SwXTextDocument::getSomething( const Sequence< sal_Int8 >& rI } sal_Int64 nRet = SfxBaseModel::getSomething( rId ); - if ( nRet ) + if (nRet) return nRet; - else - { - GetNumberFormatter(); - Any aNumTunnel = xNumFmtAgg->queryAggregation(cppu::UnoType<XUnoTunnel>::get()); - Reference<XUnoTunnel> xNumTunnel; - aNumTunnel >>= xNumTunnel; - if(xNumTunnel.is()) - return xNumTunnel->getSomething(rId); - } - return SfxBaseModel::getSomething( rId ); + GetNumberFormatter(); + if (!xNumFmtAgg.is()) // may happen if not valid or no SwDoc + return 0; + Any aNumTunnel = xNumFmtAgg->queryAggregation(cppu::UnoType<XUnoTunnel>::get()); + Reference<XUnoTunnel> xNumTunnel; + aNumTunnel >>= xNumTunnel; + return (xNumTunnel.is()) ? xNumTunnel->getSomething(rId) : 0; } Any SAL_CALL SwXTextDocument::queryInterface( const uno::Type& rType ) throw(RuntimeException, std::exception)
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits