From 73ba3061692d826635853055cf43835aec949d97 Mon Sep 17 00:00:00 2001 From: wmayer Date: Fri, 23 Oct 2020 20:50:23 +0200 Subject: [PATCH] App: [skip ci] fix printing warning for recursive calls of Document::_commitTransaction --- src/App/Document.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/App/Document.cpp b/src/App/Document.cpp index 53941d8612ef..69988cb034f2 100644 --- a/src/App/Document.cpp +++ b/src/App/Document.cpp @@ -1218,11 +1218,16 @@ void Document::commitTransaction() { void Document::_commitTransaction(bool notify) { - if(isPerformingTransaction() || d->committing) { + if (isPerformingTransaction()) { if (FC_LOG_INSTANCE.isEnabled(FC_LOGLEVEL_LOG)) FC_WARN("Cannot commit transaction while transacting"); return; } + else if (d->committing) { + // for a recursive call return without printing a warning + return; + } + if (d->activeUndoTransaction) { Base::FlagToggler<> flag(d->committing); Application::TransactionSignaller signaller(false,true); @@ -1237,7 +1242,8 @@ void Document::_commitTransaction(bool notify) } signalCommitTransaction(*this); - if(notify) + // closeActiveTransaction() may call again _commitTransaction() + if (notify) GetApplication().closeActiveTransaction(false,id); } }