summaryrefslogtreecommitdiff
path: root/svtools
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2014-02-22 12:49:04 +0100
committerStephan Bergmann <sbergman@redhat.com>2014-02-22 12:56:22 +0100
commitd41c58164f8e743b9bf7a8983174f71771872472 (patch)
treed4e5ead1b00afdb6fd16fb5451cd84b18b327b31 /svtools
parent661ab31de29a956705ee72971d6ba7fc57ba0ef2 (diff)
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
Diffstat (limited to 'svtools')
-rw-r--r--svtools/source/config/miscopt.cxx3
1 files changed, 3 insertions, 0 deletions
diff --git a/svtools/source/config/miscopt.cxx b/svtools/source/config/miscopt.cxx
index 0d3ac13806d9..7ace27c351a7 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 ...