[Libreoffice-commits] core.git: svtools/source
Stephan Bergmann
sbergman at redhat.com
Sat Feb 22 03:56:50 PST 2014
svtools/source/config/miscopt.cxx | 3 +++
1 file changed, 3 insertions(+)
New commits:
commit d41c58164f8e743b9bf7a8983174f71771872472
Author: Stephan Bergmann <sbergman at redhat.com>
Date: Sat Feb 22 12:49:04 2014 +0100
Strategic SolarMutexGuard
...seen CppunitTest_dbaccess_dialog_save fail with
> abort
> __assert_rtn
> ImplDbgTestSolarMutex at vcl/source/app/dbggui.cxx:1678
> DbgFunc at tools/source/debug/debug.cxx:1123
> DbgTestSolarMutex at debug.hxx:286
> OutputDevice::ImplGetGraphics at vcl/source/gdi/outdev.cxx:525
> OutputDevice::GetFontCharMap at vcl/source/gdi/outdev3.cxx:7740
> OutputDevice::HasGlyphs at vcl/source/gdi/outdev3.cxx:7810
> Window::ImplCheckUIFont at vcl/source/window/window.cxx:447
> Window::ImplUpdateGlobalSettings at vcl/source/window/window.cxx:471
> Application::MergeSystemSettings at vcl/source/app/svapp.cxx:495
> SvtMiscOptions_Impl::SetIconTheme at svtools/source/config/miscopt.cxx:592
> SvtMiscOptions_Impl::SetIconThemeAutomatically at svtools/source/config/miscopt.cxx:934
> SvtMiscOptions_Impl::Load at svtools/source/config/miscopt.cxx:514
> SvtMiscOptions_Impl at svtools/source/config/miscopt.cxx:299
> SvtMiscOptions_Impl at svtools/source/config/miscopt.cxx:425
> SvtMiscOptions at svtools/source/config/miscopt.cxx:753
> SvtMiscOptions at svtools/source/config/miscopt.cxx:756
> connectivity::DriversConfigImpl::Load at connectivity/source/commontools/DriversConfig.cxx:106
> connectivity::DriversConfigImpl::getInstalledDrivers at DriversConfig.hxx:53
> connectivity::DriversConfig::getURLs at connectivity/source/commontools/DriversConfig.cxx:243
> ODsnTypeCollection at dbaccess/source/core/misc/dsntypes.cxx:60
> ODsnTypeCollection at dbaccess/source/core/misc/dsntypes.cxx:71
> DatasourceURLListener at dbaccess/source/filter/xml/xmlfilter.cxx:183
> DatasourceURLListener at dbaccess/source/filter/xml/xmlfilter.cxx:183
> dbaxml::ODBFilter::implImport at dbaccess/source/filter/xml/xmlfilter.cxx:451
> dbaxml::ODBFilter::filter at dbaccess/source/filter/xml/xmlfilter.cxx:404
> non-virtual thunk to dbaxml::ODBFilter::filterat dbaccess/source/filter/xml/xmlfilter.cxx:415
> dbaccess::ODatabaseDocument::impl_import_nolck_throw at dbaccess/source/core/dataaccess/databasedocument.cxx:520
> dbaccess::ODatabaseDocument::load at dbaccess/source/core/dataaccess/databasedocument.cxx:585
> non-virtual thunk to dbaccess::ODatabaseDocument::loadat dbaccess/source/core/dataaccess/databasedocument.cxx:602
> dbaxml::DBContentLoader::load at dbaccess/source/filter/xml/dbloader2.cxx:484
> non-virtual thunk to dbaxml::DBContentLoader::loadat dbaccess/source/filter/xml/dbloader2.cxx:553
> framework::LoadEnv::impl_loadContent at framework/source/loadenv/loadenv.cxx:1177
> framework::LoadEnv::startLoading at framework/source/loadenv/loadenv.cxx:401
> framework::LoadEnv::loadComponentFromURL at framework/source/loadenv/loadenv.cxx:172
> framework::Desktop::loadComponentFromURL at framework/source/services/desktop.cxx:603
> non-virtual thunk to framework::Desktop::loadComponentFromURLat framework/source/services/desktop.cxx:604
> unotest::MacrosTest::loadFromDesktop at unotest/source/cpp/macros_test.cxx:43
> DialogSaveTest::test at dbaccess/qa/extras/dialog-save.cxx:73
> CppUnit::TestCaller<DialogSaveTest>::runTest at TestCaller.h:166
> CppUnit::TestCaseMethodFunctor::operatorat TestCase.cpp:32
> (anonymous namespace)::Prot::protect at unotest/source/cpp/unobootstrapprotector/unobootstrapprotector.cxx:88
> CppUnit::ProtectorChain::ProtectFunctor::operatorat ProtectorChain.cpp:20
> (anonymous namespace)::Prot::protect at unotest/source/cpp/unoexceptionprotector/unoexceptionprotector.cxx:64
> CppUnit::ProtectorChain::ProtectFunctor::operatorat ProtectorChain.cpp:20
> CppUnit::DefaultProtector::protect at DefaultProtector.cpp:15
> CppUnit::ProtectorChain::ProtectFunctor::operatorat ProtectorChain.cpp:20
> CppUnit::ProtectorChain::protect at ProtectorChain.cpp:77
> CppUnit::TestResult::protect at TestResult.cpp:181
> CppUnit::TestCase::run at TestCase.cpp:91
> CppUnit::TestComposite::doRunChildTests at TestComposite.cpp:64
> CppUnit::TestComposite::run at TestComposite.cpp:23
> CppUnit::TestComposite::doRunChildTests at TestComposite.cpp:64
> CppUnit::TestComposite::run at TestComposite.cpp:23
> CppUnit::TestRunner::WrappingSuite::run at TestRunner.cpp:47
> CppUnit::TestResult::runTest at TestResult.cpp:148
> CppUnit::TestRunner::run at TestRunner.cpp:96
> (anonymous namespace)::ProtectedFixtureFunctor::run at sal/cppunittester/cppunittester.cxx:150
> sal_main at sal/cppunittester/cppunittester.cxx:242
> main at sal/cppunittester/cppunittester.cxx:166
Change-Id: I217499b41027449df634945c4b260aafdfc4bff4
diff --git a/svtools/source/config/miscopt.cxx b/svtools/source/config/miscopt.cxx
index 0d3ac13..7ace27c 100644
--- a/svtools/source/config/miscopt.cxx
+++ b/svtools/source/config/miscopt.cxx
@@ -743,6 +743,9 @@ sal_Int32 SvtMiscOptions::m_nRefCount = 0 ;
//*****************************************************************************************************************
SvtMiscOptions::SvtMiscOptions()
{
+ // SvtMiscOptions_Impl ctor indirectly calls code that requires locked
+ // SolarMutex; lock it first:
+ SolarMutexGuard g;
// Global access, must be guarded (multithreading!).
MutexGuard aGuard( GetInitMutex() );
// Increase our refcount ...
More information about the Libreoffice-commits
mailing list