Related: tdf#147448 Scope owning mutex before it gets destroyed

Change-Id: I9bacffe1d075431427fb3bf01e4bf30ba6fbc201
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130574
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
(cherry picked from commit aaa75591b0c0c7b097e2794a0b24ec7d0e0fa07f)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130553
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
diff --git a/sc/source/core/data/documen2.cxx b/sc/source/core/data/documen2.cxx
index 9a3a2fb..6cfae15 100644
--- a/sc/source/core/data/documen2.cxx
+++ b/sc/source/core/data/documen2.cxx
@@ -337,7 +337,11 @@ ScDocument::~ScDocument()
    if ( pRefreshTimerControl )
    {   // To be sure there isn't anything running do it with a protector,
        // this ensures also that nothing needs the control anymore.
        ScRefreshTimerProtector aProt( GetRefreshTimerControlAddress() );
        {
            // Use a scope on its own because it is undefined behaviour if a
            // mutex is destroyed while still owned.
            ScRefreshTimerProtector aProt( GetRefreshTimerControlAddress() );
        }
        pRefreshTimerControl.reset();
    }