sc/source/ui/docshell/docsh4.cxx | 10 ++++++++++ 1 file changed, 10 insertions(+)
New commits: commit 807f3508c9319d7f94820ea1282e306594418fce Author: Eike Rathke <er...@redhat.com> AuthorDate: Tue May 25 22:33:46 2021 +0200 Commit: Eike Rathke <er...@redhat.com> CommitDate: Tue May 25 23:16:10 2021 +0200 Related: tdf#81757 Do not even try to re-enter ScDocShell::Do*Recalc() That happened when loading bug doc https://bugs.documentfoundation.org/attachment.cgi?id=103462 where form selection events fire asynchronous recalcul() and BASIC Main also calls recalcul. Change-Id: Ic27fb340c7b5019453723c7cabe2122905d400f5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116133 Reviewed-by: Eike Rathke <er...@redhat.com> Tested-by: Jenkins diff --git a/sc/source/ui/docshell/docsh4.cxx b/sc/source/ui/docshell/docsh4.cxx index f716048d8399..9276a57ecfc6 100644 --- a/sc/source/ui/docshell/docsh4.cxx +++ b/sc/source/ui/docshell/docsh4.cxx @@ -1426,6 +1426,11 @@ bool ScDocShell::ExecuteChangeProtectionDialog( bool bJustQueryIfProtected ) void ScDocShell::DoRecalc( bool bApi ) { + if (m_aDocument.IsInDocShellRecalc()) + { + SAL_WARN("sc","ScDocShell::DoRecalc tries re-entering while in Recalc; probably Forms->BASIC->Dispatcher."); + return; + } ScDocShellRecalcGuard aGuard(m_aDocument); bool bDone = false; ScTabViewShell* pSh = GetBestViewShell(); @@ -1472,6 +1477,11 @@ void ScDocShell::DoRecalc( bool bApi ) void ScDocShell::DoHardRecalc() { + if (m_aDocument.IsInDocShellRecalc()) + { + SAL_WARN("sc","ScDocShell::DoHardRecalc tries re-entering while in Recalc; probably Forms->BASIC->Dispatcher."); + return; + } auto start = std::chrono::steady_clock::now(); ScDocShellRecalcGuard aGuard(m_aDocument); weld::WaitObject aWaitObj( GetActiveDialogParent() ); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits