fix shutdown crash when SfxApplication has already been destroyed

See e.g. http://crashreport.libreoffice.org/stats/crash_details/dc1ae6ff-923e-44f6-99a9-84893039efd7

Change-Id: I3b5a24bfb62977ca922bf3bececb6676691bf6ea
Reviewed-on: https://gerrit.libreoffice.org/57789
Tested-by: Jenkins
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
(cherry picked from commit 715fcaff01ed048c52c69264a7a0fb773dd57b32)
Reviewed-on: https://gerrit.libreoffice.org/57808
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
diff --git a/sfx2/source/doc/objxtor.cxx b/sfx2/source/doc/objxtor.cxx
index a717481..88270d1 100644
--- a/sfx2/source/doc/objxtor.cxx
+++ b/sfx2/source/doc/objxtor.cxx
@@ -313,13 +313,13 @@ SfxObjectShell::~SfxObjectShell()
    DELETEZ( pImpl->pReloadTimer );

    SfxApplication *pSfxApp = SfxGetpApp();
    if ( USHRT_MAX != pImpl->nVisualDocumentNumber )
    if ( USHRT_MAX != pImpl->nVisualDocumentNumber && pSfxApp )
        pSfxApp->ReleaseIndex(pImpl->nVisualDocumentNumber);

    // Destroy Basic-Manager
    pImpl->aBasicManager.reset( nullptr );

    if ( pSfxApp->GetDdeService() )
    if ( pSfxApp && pSfxApp->GetDdeService() )
        pSfxApp->RemoveDdeTopic( this );

    pImpl->pBaseModel.set( nullptr );