Resolves: tdf#112696 survive missing SwDrawContact

its removed when the object was removed from the page to be reinserted
as as a group member

Change-Id: I8edeb89ae07b73572b65413817212a79ef8957b3
Reviewed-on: https://gerrit.libreoffice.org/63579
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
diff --git a/sw/source/core/frmedt/feshview.cxx b/sw/source/core/frmedt/feshview.cxx
index 787db5f..1d00cd5 100644
--- a/sw/source/core/frmedt/feshview.cxx
+++ b/sw/source/core/frmedt/feshview.cxx
@@ -2241,6 +2241,11 @@ RndStdIds SwFEShell::GetAnchorId() const
                break;
            }
            SwDrawContact *pContact = static_cast<SwDrawContact*>(GetUserCall(pObj));
            if (!pContact)
            {
                nRet = RndStdIds::UNKNOWN;
                break;
            }
            RndStdIds nId = pContact->GetFormat()->GetAnchor().GetAnchorId();
            if ( nRet == RndStdIds(SHRT_MAX) )
                nRet = nId;
@@ -2345,11 +2350,13 @@ bool SwFEShell::IsGroupSelected()
            SdrObject *pObj = rMrkList.GetMark( i )->GetMarkedSdrObj();
            // consider 'virtual' drawing objects.
            // Thus, use corresponding method instead of checking type.
            if ( pObj->IsGroupObject() &&
                 // --> #i38505# No ungroup allowed for 3d objects
                 !pObj->Is3DObj() &&
                 RndStdIds::FLY_AS_CHAR != static_cast<SwDrawContact*>(GetUserCall(pObj))->
                                      GetFormat()->GetAnchor().GetAnchorId() )
            if (!pObj->IsGroupObject())
                continue;
            // --> #i38505# No ungroup allowed for 3d objects
            if (pObj->Is3DObj())
                continue;
            SwDrawContact *pContact = static_cast<SwDrawContact*>(GetUserCall(pObj));
            if (!pContact || RndStdIds::FLY_AS_CHAR != pContact->GetFormat()->GetAnchor().GetAnchorId())
            {
                return true;
            }