[Libreoffice-commits] core.git: sc/source
Eike Rathke (via logerrit)
logerrit at kemper.freedesktop.org
Tue May 25 21:16:48 UTC 2021
sc/source/ui/docshell/docsh4.cxx | 10 ++++++++++
1 file changed, 10 insertions(+)
New commits:
commit 807f3508c9319d7f94820ea1282e306594418fce
Author: Eike Rathke <erack at redhat.com>
AuthorDate: Tue May 25 22:33:46 2021 +0200
Commit: Eike Rathke <erack at 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 <erack at 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() );
More information about the Libreoffice-commits
mailing list