desktop/source/app/app.cxx | 6 ++++-- reportdesign/source/core/api/Section.cxx | 2 ++ 2 files changed, 6 insertions(+), 2 deletions(-)
New commits: commit a2a9c84deff54321da0042212bae86ede25dd7e2 Author: Michael Stahl <mst...@redhat.com> Date: Fri Dec 5 22:24:14 2014 +0100 fdo#85112: reportdesign: fix SolarMutex assertion A bit tricky, but all of the UNO wrappers for SdrObjects etc. in svx use the SolarMutex for locking, so it's reasonable to expect that reportdesign code also has to lock SolarMutex when it manipulates these. Change-Id: I3cade8f53d7655e249b82673c87238d5a17256cb diff --git a/reportdesign/source/core/api/Section.cxx b/reportdesign/source/core/api/Section.cxx index e70bb3b..71993ad 100644 --- a/reportdesign/source/core/api/Section.cxx +++ b/reportdesign/source/core/api/Section.cxx @@ -34,6 +34,7 @@ #include "ReportDefinition.hxx" #include "Shape.hxx" #include <svx/unoshape.hxx> +#include <vcl/svapp.hxx> #include "RptObject.hxx" #include "ReportDrawPage.hxx" #include <comphelper/property.hxx> @@ -197,6 +198,7 @@ sal_Bool SAL_CALL OSection::supportsService( const OUString& _rServiceName ) thr void OSection::init() { + SolarMutexGuard g; // lock while manipulating SdrModel uno::Reference< report::XReportDefinition> xReport = getReportDefinition(); ::boost::shared_ptr<rptui::OReportModel> pModel = OReportDefinition::getSdrModel(xReport); assert(pModel && "No model set at the report definition!"); commit dce74be2bab7a6924578e8f6f6ce37aa593cc481 Author: Michael Stahl <mst...@redhat.com> Date: Fri Dec 5 20:57:20 2014 +0100 desktop: avoid starting with new writer doc if OOO_DISABLE_RECOVERY set Better to show the start center, same as when --norestore is given. Change-Id: I726a8b7d227b646180fe16ee9c302a329a7fa36c diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx index f5722e4..f71aa9b 100644 --- a/desktop/source/app/app.cxx +++ b/desktop/source/app/app.cxx @@ -2290,10 +2290,11 @@ void Desktop::OpenClients() bool bCrashed = false; bool bExistsRecoveryData = false; bool bExistsSessionData = false; + bool const bDisableRecovery = getenv("OOO_DISABLE_RECOVERY") != nullptr; impl_checkRecoveryState(bCrashed, bExistsRecoveryData, bExistsSessionData); - if ( !getenv ("OOO_DISABLE_RECOVERY") && + if ( !bDisableRecovery && ( ( bExistsRecoveryData ) || // => crash with files => recovery ( bCrashed ) // => crash without files => error report @@ -2324,7 +2325,8 @@ void Desktop::OpenClients() SAL_WARN( "desktop.app", "Registration of session listener failed" << e.Message); } - if ( !bExistsRecoveryData && xSessionListener.is() ) + // in bDisableRecovery case call doRestore() to prevent new Writer doc + if ((!bExistsRecoveryData || bDisableRecovery) && xSessionListener.is()) { // session management try _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits