Resolves: tdf#134551 ModulWindow deleted when last module removed

leaving a dangling reference to m_aName. Hold a reference until
ExecuteCommand is finished.

Change-Id: I82ac5cc73427a945c78b9317dee9edf6129bb975
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98214
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
diff --git a/basctl/source/basicide/baside2.cxx b/basctl/source/basicide/baside2.cxx
index 46014b5..f8964c9 100644
--- a/basctl/source/basicide/baside2.cxx
+++ b/basctl/source/basicide/baside2.cxx
@@ -1009,8 +1009,13 @@ void ModulWindow::ExecuteCommand (SfxRequest& rReq)
        case SID_BASICIDE_DELETECURRENT:
        {
            if (QueryDelModule(m_aName, GetFrameWeld()))
            {
                // tdf#134551 don't delete the window if last module is removed until this block
                // is complete
                VclPtr<ModulWindow> xKeepRef(this);
                if (m_aDocument.removeModule(m_aLibName, m_aName))
                    MarkDocumentModified(m_aDocument);
            }
        }
        break;
        case FID_SEARCH_OFF:
@@ -1050,7 +1055,6 @@ void ModulWindow::ExecuteGlobal (SfxRequest& rReq)
    }
}


void ModulWindow::GetState( SfxItemSet &rSet )
{
    SfxWhichIter aIter(rSet);