summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2021-07-29 11:22:28 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2021-07-29 14:35:44 +0200
commit6c7d6924511f3006f64fb9d3eadd289778098571 (patch)
tree297a3f410e9b3281a1799b18c98441a837b8a560
parent2e894d5053dccadc41f4c449e8fbdd3ada0c5bdc (diff)
rtl::Static -> static local
in a handful cases, like a map or a vector, we don't need init on demand at all, the default constructor can be laid out at compile time Change-Id: I2d404584b5aa23db7b1f779e160e04e72dd2aa74 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119656 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
-rw-r--r--toolkit/source/controls/geometrycontrolmodel.cxx31
-rw-r--r--tools/source/stream/strmunx.cxx10
-rw-r--r--unotools/source/config/useroptions.cxx9
-rw-r--r--unotools/source/i18n/localedatawrapper.cxx20
-rw-r--r--unotools/source/ucbhelper/tempfile.cxx7
-rw-r--r--vcl/source/control/imp_listbox.cxx18
-rw-r--r--vcl/source/filter/graphicfilter.cxx6
-rw-r--r--vcl/source/font/font.cxx10
-rw-r--r--vcl/source/gdi/graph.cxx9
-rw-r--r--vcl/source/gdi/jobset.cxx12
-rw-r--r--vcl/source/gdi/mapmod.cxx12
-rw-r--r--vcl/source/helper/canvasbitmap.cxx17
-rw-r--r--vcl/source/window/errinf.cxx33
-rw-r--r--vcl/unx/generic/printer/ppdparser.cxx13
-rw-r--r--writerfilter/source/dmapper/TagLogger.cxx11
-rw-r--r--xmlsecurity/source/component/certificatecontainer.cxx22
16 files changed, 91 insertions, 149 deletions
diff --git a/toolkit/source/controls/geometrycontrolmodel.cxx b/toolkit/source/controls/geometrycontrolmodel.cxx
index 53a7f02d45ef..ee6dfb6d2a07 100644
--- a/toolkit/source/controls/geometrycontrolmodel.cxx
+++ b/toolkit/source/controls/geometrycontrolmodel.cxx
@@ -21,7 +21,6 @@
#include <com/sun/star/beans/PropertyAttribute.hpp>
#include <com/sun/star/resource/XStringResourceResolver.hpp>
#include <osl/diagnose.h>
-#include <rtl/instance.hxx>
#include <comphelper/sequence.hxx>
#include <controls/eventcontainer.hxx>
#include <toolkit/helper/property.hxx>
@@ -438,15 +437,15 @@
typedef std::vector< ::std::vector< sal_Int32 > > IntArrayArray;
// for creating class-unique PropertySetInfo's, we need some info:
- namespace { struct ServiceSpecifierMap : public rtl::Static< HashMapString2Int, ServiceSpecifierMap > {}; }
+ namespace { HashMapString2Int gServiceSpecifierMap; }
// this one maps from a String, which is the service specifier for our
// aggregate, to a unique id
- namespace { struct AggregateProperties : public rtl::Static< PropSeqArray, AggregateProperties > {}; }
+ namespace { PropSeqArray gAggregateProperties; }
// this one contains the properties which belong to all the unique ids
// in ServiceSpecifierMap
- namespace { struct AmbiguousPropertyIds : public rtl::Static< IntArrayArray, AmbiguousPropertyIds > {}; }
+ namespace { IntArrayArray gAmbiguousPropertyIds; }
// the ids of the properties which we as well as our aggregate supply
// For such props, we let our base class handle them, and whenever such
// a prop is set, we forward this to our aggregate.
@@ -470,16 +469,14 @@
throw IllegalArgumentException();
}
- HashMapString2Int &rMap = ServiceSpecifierMap::get();
- HashMapString2Int::iterator aPropMapIdPos = rMap.find( m_sServiceSpecifier );
- if ( rMap.end() == aPropMapIdPos )
+ HashMapString2Int::iterator aPropMapIdPos = gServiceSpecifierMap.find( m_sServiceSpecifier );
+ if ( gServiceSpecifierMap.end() == aPropMapIdPos )
{
- PropSeqArray &rAggProperties = AggregateProperties::get();
- m_nPropertyMapId = rAggProperties.size();
- rAggProperties.push_back( xPI->getProperties() );
- AmbiguousPropertyIds::get().emplace_back( );
+ m_nPropertyMapId = gAggregateProperties.size();
+ gAggregateProperties.push_back( xPI->getProperties() );
+ gAmbiguousPropertyIds.emplace_back( );
- rMap[ m_sServiceSpecifier ] = m_nPropertyMapId;
+ gServiceSpecifierMap[ m_sServiceSpecifier ] = m_nPropertyMapId;
}
else
m_nPropertyMapId = aPropMapIdPos->second;
@@ -512,18 +509,18 @@
::cppu::IPropertyArrayHelper* OCommonGeometryControlModel::createArrayHelper( sal_Int32 _nId ) const
{
OSL_ENSURE( _nId == m_nPropertyMapId, "OCommonGeometryControlModel::createArrayHelper: invalid argument!" );
- OSL_ENSURE( _nId < static_cast<sal_Int32>(AggregateProperties::get().size()), "OCommonGeometryControlModel::createArrayHelper: invalid status info (1)!" );
- OSL_ENSURE( _nId < static_cast<sal_Int32>(AmbiguousPropertyIds::get().size()), "OCommonGeometryControlModel::createArrayHelper: invalid status info (2)!" );
+ OSL_ENSURE( _nId < static_cast<sal_Int32>(gAggregateProperties.size()), "OCommonGeometryControlModel::createArrayHelper: invalid status info (1)!" );
+ OSL_ENSURE( _nId < static_cast<sal_Int32>(gAmbiguousPropertyIds.size()), "OCommonGeometryControlModel::createArrayHelper: invalid status info (2)!" );
// our own properties
Sequence< Property > aProps;
OPropertyContainer::describeProperties( aProps );
// the aggregate properties
- Sequence< Property > aAggregateProps = AggregateProperties::get()[ _nId ];
+ Sequence< Property > aAggregateProps = gAggregateProperties[ _nId ];
// look for duplicates, and remember them
- IntArrayArray::value_type& rDuplicateIds = AmbiguousPropertyIds::get()[ _nId ];
+ IntArrayArray::value_type& rDuplicateIds = gAmbiguousPropertyIds[ _nId ];
// for this, sort the aggregate properties
::std::sort(
aAggregateProps.begin(),
@@ -589,7 +586,7 @@
OGeometryControlModel_Base::setFastPropertyValue_NoBroadcast( _nHandle, _rValue );
// look if this id is one we recognized as duplicate
- IntArrayArray::value_type& rDuplicateIds = AmbiguousPropertyIds::get()[ m_nPropertyMapId ];
+ IntArrayArray::value_type& rDuplicateIds = gAmbiguousPropertyIds[ m_nPropertyMapId ];
if ( std::any_of(rDuplicateIds.begin(), rDuplicateIds.end(), Int32Equal( _nHandle )) )
{
diff --git a/tools/source/stream/strmunx.cxx b/tools/source/stream/strmunx.cxx
index e034f53ac33b..6743993f112e 100644
--- a/tools/source/stream/strmunx.cxx
+++ b/tools/source/stream/strmunx.cxx
@@ -40,7 +40,7 @@ namespace {
struct LockMutex : public rtl::Static< osl::Mutex, LockMutex > {};
-struct Locks : public rtl::Static< std::map<SvFileStream const *, osl::DirectoryItem>, Locks > {};
+std::map<SvFileStream const *, osl::DirectoryItem> gLocks;
bool lockFile( const SvFileStream* pStream )
{
@@ -61,8 +61,7 @@ bool lockFile( const SvFileStream* pStream )
return true;
osl::MutexGuard aGuard( LockMutex::get() );
- auto &rLocks = Locks::get();
- for( const auto& [rLockStream, rLockItem] : rLocks )
+ for( const auto& [rLockStream, rLockItem] : gLocks )
{
if( aItem.isIdenticalTo( rLockItem ) )
{
@@ -78,15 +77,14 @@ bool lockFile( const SvFileStream* pStream )
}
}
}
- rLocks[pStream] = aItem;
+ gLocks[pStream] = aItem;
return true;
}
void unlockFile( SvFileStream const * pStream )
{
osl::MutexGuard aGuard( LockMutex::get() );
- auto &rLocks = Locks::get();
- rLocks.erase(pStream);
+ gLocks.erase(pStream);
}
}
diff --git a/unotools/source/config/useroptions.cxx b/unotools/source/config/useroptions.cxx
index bf877b790392..ffe01cca497c 100644
--- a/unotools/source/config/useroptions.cxx
+++ b/unotools/source/config/useroptions.cxx
@@ -23,7 +23,6 @@
#include <unotools/syslocale.hxx>
#include <com/sun/star/uno/Any.hxx>
#include <osl/mutex.hxx>
-#include <rtl/instance.hxx>
#include "itemholder1.hxx"
#include <cppuhelper/implbase.hxx>
@@ -282,14 +281,10 @@ SvtUserOptions::~SvtUserOptions()
xImpl->RemoveListener(this);
}
-namespace
-{
- class theUserOptionsMutex : public rtl::Static<osl::Mutex, theUserOptionsMutex>{};
-}
-
osl::Mutex& SvtUserOptions::GetInitMutex()
{
- return theUserOptionsMutex::get();
+ static osl::Mutex gMutex;
+ return gMutex;
}
OUString SvtUserOptions::GetCompany () const { return GetToken(UserOptToken::Company); }
diff --git a/unotools/source/i18n/localedatawrapper.cxx b/unotools/source/i18n/localedatawrapper.cxx
index fb70c0657a73..b6a286a07fc2 100644
--- a/unotools/source/i18n/localedatawrapper.cxx
+++ b/unotools/source/i18n/localedatawrapper.cxx
@@ -38,7 +38,6 @@
#include <comphelper/processfactory.hxx>
#include <comphelper/sequence.hxx>
-#include <rtl/instance.hxx>
#include <rtl/ustrbuf.hxx>
#include <rtl/math.hxx>
@@ -50,15 +49,8 @@ using namespace ::com::sun::star::uno;
namespace
{
- struct InstalledLocales
- : public rtl::Static<
- uno::Sequence< lang::Locale >, InstalledLocales >
- {};
-
- struct InstalledLanguageTypes
- : public rtl::Static<
- std::vector< LanguageType >, InstalledLanguageTypes >
- {};
+ uno::Sequence< lang::Locale > gInstalledLocales;
+ std::vector< LanguageType > gInstalledLanguageTypes;
}
sal_uInt8 LocaleDataWrapper::nLocaleDataChecking = 0;
@@ -279,7 +271,7 @@ css::i18n::ForbiddenCharacters LocaleDataWrapper::getForbiddenCharacters() const
css::uno::Sequence< css::lang::Locale > LocaleDataWrapper::getAllInstalledLocaleNames() const
{
- uno::Sequence< lang::Locale > &rInstalledLocales = InstalledLocales::get();
+ uno::Sequence< lang::Locale > &rInstalledLocales = gInstalledLocales;
if ( rInstalledLocales.hasElements() )
return rInstalledLocales;
@@ -300,8 +292,7 @@ css::uno::Sequence< css::lang::Locale > LocaleDataWrapper::getAllInstalledLocale
// static
css::uno::Sequence< css::lang::Locale > LocaleDataWrapper::getInstalledLocaleNames()
{
- const uno::Sequence< lang::Locale > &rInstalledLocales =
- InstalledLocales::get();
+ const uno::Sequence< lang::Locale > &rInstalledLocales = gInstalledLocales;
if ( !rInstalledLocales.hasElements() )
{
@@ -314,8 +305,7 @@ css::uno::Sequence< css::lang::Locale > LocaleDataWrapper::getInstalledLocaleNam
// static
std::vector< LanguageType > LocaleDataWrapper::getInstalledLanguageTypes()
{
- std::vector< LanguageType > &rInstalledLanguageTypes =
- InstalledLanguageTypes::get();
+ std::vector< LanguageType > &rInstalledLanguageTypes = gInstalledLanguageTypes;
if ( !rInstalledLanguageTypes.empty() )
return rInstalledLanguageTypes;
diff --git a/unotools/source/ucbhelper/tempfile.cxx b/unotools/source/ucbhelper/tempfile.cxx
index 25c15920d52b..bf41c00e2428 100644
--- a/unotools/source/ucbhelper/tempfile.cxx
+++ b/unotools/source/ucbhelper/tempfile.cxx
@@ -41,8 +41,7 @@ using namespace osl;
namespace
{
- struct TempNameBase_Impl
- : public rtl::Static< OUString, TempNameBase_Impl > {};
+ OUString gTempNameBase_Impl;
}
namespace utl
@@ -143,7 +142,7 @@ static OUString ConstructTempDir_Impl( const OUString* pParent, bool bCreatePare
if ( aName.isEmpty() )
{
- OUString &rTempNameBase_Impl = TempNameBase_Impl::get();
+ OUString &rTempNameBase_Impl = gTempNameBase_Impl;
if (rTempNameBase_Impl.isEmpty())
{
OUString ustrTempDirURL;
@@ -463,7 +462,7 @@ OUString TempFile::SetTempNameBaseDirectory( const OUString &rBaseName )
if ( bRet )
{
// append own internal directory
- OUString &rTempNameBase_Impl = TempNameBase_Impl::get();
+ OUString &rTempNameBase_Impl = gTempNameBase_Impl;
rTempNameBase_Impl = rBaseName + "/";
TempFile aBase( nullptr, true );
diff --git a/vcl/source/control/imp_listbox.cxx b/vcl/source/control/imp_listbox.cxx
index fab6e6f90c70..322578909b17 100644
--- a/vcl/source/control/imp_listbox.cxx
+++ b/vcl/source/control/imp_listbox.cxx
@@ -34,7 +34,6 @@
#include <com/sun/star/accessibility/AccessibleRole.hpp>
-#include <rtl/instance.hxx>
#include <sal/log.hxx>
#include <o3tl/safeint.hxx>
#include <osl/diagnose.h>
@@ -105,15 +104,12 @@ void ImplEntryList::SelectEntry( sal_Int32 nPos, bool bSelect )
namespace
{
- struct theSorter
- : public rtl::StaticWithInit< comphelper::string::NaturalStringSorter, theSorter >
+ comphelper::string::NaturalStringSorter& GetSorter()
{
- comphelper::string::NaturalStringSorter operator () ()
- {
- return comphelper::string::NaturalStringSorter(
- ::comphelper::getProcessComponentContext(),
- Application::GetSettings().GetLanguageTag().getLocale());
- }
+ static comphelper::string::NaturalStringSorter gSorter(
+ ::comphelper::getProcessComponentContext(),
+ Application::GetSettings().GetLanguageTag().getLocale());
+ return gSorter;
};
}
@@ -121,7 +117,7 @@ namespace vcl
{
sal_Int32 NaturalSortCompare(const OUString &rA, const OUString &rB)
{
- const comphelper::string::NaturalStringSorter &rSorter = theSorter::get();
+ const comphelper::string::NaturalStringSorter &rSorter = GetSorter();
return rSorter.compare(rA, rB);
}
}
@@ -152,7 +148,7 @@ sal_Int32 ImplEntryList::InsertEntry( sal_Int32 nPos, ImplEntryType* pNewEntry,
}
else
{
- const comphelper::string::NaturalStringSorter &rSorter = theSorter::get();
+ const comphelper::string::NaturalStringSorter &rSorter = GetSorter();
const OUString& rStr = pNewEntry->maStr;
diff --git a/vcl/source/filter/graphicfilter.cxx b/vcl/source/filter/graphicfilter.cxx
index 1be4c82e7c4e..55238a09729f 100644
--- a/vcl/source/filter/graphicfilter.cxx
+++ b/vcl/source/filter/graphicfilter.cxx
@@ -73,7 +73,6 @@
#include <com/sun/star/xml/sax/Writer.hpp>
#include <unotools/ucbstreamhelper.hxx>
#include <rtl/bootstrap.hxx>
-#include <rtl/instance.hxx>
#include <tools/svlibrary.h>
#include <comphelper/string.hxx>
#include <unotools/ucbhelper.hxx>
@@ -1919,13 +1918,12 @@ namespace
}
GraphicFilter m_aFilter;
};
-
- class theGraphicFilter : public rtl::Static<StandardGraphicFilter, theGraphicFilter> {};
}
GraphicFilter& GraphicFilter::GetGraphicFilter()
{
- return theGraphicFilter::get().m_aFilter;
+ static StandardGraphicFilter gStandardFilter;
+ return gStandardFilter.m_aFilter;
}
ErrCode GraphicFilter::LoadGraphic( const OUString &rPath, const OUString &rFilterName,
diff --git a/vcl/source/font/font.cxx b/vcl/source/font/font.cxx
index d79658894a5b..5da80236aec5 100644
--- a/vcl/source/font/font.cxx
+++ b/vcl/source/font/font.cxx
@@ -35,7 +35,6 @@
#include <algorithm>
#include <string_view>
-#include <rtl/instance.hxx>
#include <vcl/TypeSerializer.hxx>
#ifdef _WIN32
@@ -46,11 +45,14 @@ using namespace vcl;
namespace
{
- struct theGlobalDefault :
- public rtl::Static< Font::ImplType, theGlobalDefault > {};
+ Font::ImplType& GetGlobalDefault()
+ {
+ static Font::ImplType gDefault;
+ return gDefault;
+ }
}
-Font::Font() : mpImplFont(theGlobalDefault::get())
+Font::Font() : mpImplFont(GetGlobalDefault())
{
}
diff --git a/vcl/source/gdi/graph.cxx b/vcl/source/gdi/graph.cxx
index 352073455e01..283cca42026b 100644
--- a/vcl/source/gdi/graph.cxx
+++ b/vcl/source/gdi/graph.cxx
@@ -557,14 +557,9 @@ OString Graphic::getUniqueID() const
return aUniqueString;
}
-namespace {
-
-struct Id: public rtl::Static<cppu::OImplementationId, Id> {};
-
-}
-
css::uno::Sequence<sal_Int8> Graphic::getUnoTunnelId() {
- return Id::get().getImplementationId();
+ static cppu::OImplementationId gId;
+ return gId.getImplementationId();
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/source/gdi/jobset.cxx b/vcl/source/gdi/jobset.cxx
index 5777e1faa044..04ba708ef9a3 100644
--- a/vcl/source/gdi/jobset.cxx
+++ b/vcl/source/gdi/jobset.cxx
@@ -24,7 +24,6 @@
#include <vcl/jobset.hxx>
#include <jobset.h>
#include <memory>
-#include <rtl/instance.hxx>
#define JOBSET_FILE364_SYSTEM (sal_uInt16(0xFFFF))
#define JOBSET_FILE605_SYSTEM (sal_uInt16(0xFFFE))
@@ -190,11 +189,14 @@ bool ImplJobSetup::operator==( const ImplJobSetup& rImplJobSetup ) const
namespace
{
- struct theGlobalDefault :
- public rtl::Static< JobSetup::ImplType, theGlobalDefault > {};
+ JobSetup::ImplType& GetGlobalDefault()
+ {
+ static JobSetup::ImplType gDefault;
+ return gDefault;
+ }
}
-JobSetup::JobSetup() : mpData(theGlobalDefault::get())
+JobSetup::JobSetup() : mpData(GetGlobalDefault())
{
}
@@ -224,7 +226,7 @@ OUString const & JobSetup::GetPrinterName() const
bool JobSetup::IsDefault() const
{
- return mpData.same_object(theGlobalDefault::get());
+ return mpData.same_object(GetGlobalDefault());
}
SvStream& ReadJobSetup( SvStream& rIStream, JobSetup& rJobSetup )
diff --git a/vcl/source/gdi/mapmod.cxx b/vcl/source/gdi/mapmod.cxx
index 925732a66e39..c79a4392d1a8 100644
--- a/vcl/source/gdi/mapmod.cxx
+++ b/vcl/source/gdi/mapmod.cxx
@@ -23,7 +23,6 @@
#include <tools/fract.hxx>
#include <tools/stream.hxx>
#include <tools/vcompat.hxx>
-#include <rtl/instance.hxx>
#include <vcl/TypeSerializer.hxx>
struct MapMode::ImplMapMode
@@ -65,11 +64,14 @@ bool MapMode::ImplMapMode::operator==( const ImplMapMode& rImpMapMode ) const
namespace
{
- struct theGlobalDefault :
- public rtl::Static< MapMode::ImplType, theGlobalDefault > {};
+ MapMode::ImplType& GetGlobalDefault()
+ {
+ static MapMode::ImplType gDefault;
+ return gDefault;
+ }
}
-MapMode::MapMode() : mpImplMapMode(theGlobalDefault::get())
+MapMode::MapMode() : mpImplMapMode(GetGlobalDefault())
{
}
@@ -130,7 +132,7 @@ bool MapMode::operator==( const MapMode& rMapMode ) const
bool MapMode::IsDefault() const
{
- return mpImplMapMode.same_object(theGlobalDefault::get());
+ return mpImplMapMode.same_object(GetGlobalDefault());
}
MapUnit MapMode::GetMapUnit() const { return mpImplMapMode->meUnit; }
diff --git a/vcl/source/helper/canvasbitmap.cxx b/vcl/source/helper/canvasbitmap.cxx
index 49faf0a73172..1e3edd5f3996 100644
--- a/vcl/source/helper/canvasbitmap.cxx
+++ b/vcl/source/helper/canvasbitmap.cxx
@@ -25,8 +25,6 @@
#include <com/sun/star/rendering/ColorSpaceType.hpp>
#include <com/sun/star/rendering/RenderingIntent.hpp>
-#include <rtl/instance.hxx>
-
#include <tools/diagnose_ex.h>
#include <canvasbitmap.hxx>
#include <vcl/canvastools.hxx>
@@ -612,23 +610,12 @@ sal_Bool SAL_CALL VclCanvasBitmap::setIndex( const uno::Sequence< double >&, sal
return false; // read-only implementation
}
-namespace
-{
- struct PaletteColorSpaceHolder: public rtl::StaticWithInit<uno::Reference<rendering::XColorSpace>,
- PaletteColorSpaceHolder>
- {
- uno::Reference<rendering::XColorSpace> operator()()
- {
- return vcl::unotools::createStandardColorSpace();
- }
- };
-}
-
uno::Reference< rendering::XColorSpace > SAL_CALL VclCanvasBitmap::getColorSpace( )
{
// this is the method from XBitmapPalette. Return palette color
// space here
- return PaletteColorSpaceHolder::get();
+ static uno::Reference<rendering::XColorSpace> gColorSpace = vcl::unotools::createStandardColorSpace();
+ return gColorSpace;
}
sal_Int8 SAL_CALL VclCanvasBitmap::getType( )
diff --git a/vcl/source/window/errinf.cxx b/vcl/source/window/errinf.cxx
index d9c4310f0a06..cf829175edff 100644
--- a/vcl/source/window/errinf.cxx
+++ b/vcl/source/window/errinf.cxx
@@ -18,7 +18,6 @@
*/
#include <osl/diagnose.h>
-#include <rtl/instance.hxx>
#include <sal/log.hxx>
#include <tools/debug.hxx>
@@ -31,13 +30,17 @@ class ErrorHandler;
namespace {
-class TheErrorRegistry: public rtl::Static<ErrorRegistry, TheErrorRegistry> {};
+ ErrorRegistry& GetErrorRegistry()
+ {
+ static ErrorRegistry gErrorRegistry;
+ return gErrorRegistry;
+ }
}
bool ErrorStringFactory::CreateString(const ErrorInfo* pInfo, OUString& rStr)
{
- for(const ErrorHandler *pHdlr : TheErrorRegistry::get().errorHandlers)
+ for(const ErrorHandler *pHdlr : GetErrorRegistry().errorHandlers)
{
if(pHdlr->CreateString(pInfo, rStr))
return true;
@@ -56,21 +59,21 @@ ErrorRegistry::ErrorRegistry()
void ErrorRegistry::RegisterDisplay(BasicDisplayErrorFunc *aDsp)
{
- ErrorRegistry &rData = TheErrorRegistry::get();
+ ErrorRegistry &rData = GetErrorRegistry();
rData.bIsWindowDsp = false;
rData.pDsp = reinterpret_cast< DisplayFnPtr >(aDsp);
}
void ErrorRegistry::RegisterDisplay(WindowDisplayErrorFunc *aDsp)
{
- ErrorRegistry &rData = TheErrorRegistry::get();
+ ErrorRegistry &rData = GetErrorRegistry();
rData.bIsWindowDsp = true;
rData.pDsp = reinterpret_cast< DisplayFnPtr >(aDsp);
}
void ErrorRegistry::Reset()
{
- ErrorRegistry &rData = TheErrorRegistry::get();
+ ErrorRegistry &rData = GetErrorRegistry();
rData = ErrorRegistry();
}
@@ -81,7 +84,7 @@ static void aDspFunc(const OUString &rErr, const OUString &rAction)
ErrorHandler::ErrorHandler()
{
- ErrorRegistry &rData = TheErrorRegistry::get();
+ ErrorRegistry &rData = GetErrorRegistry();
rData.errorHandlers.insert(rData.errorHandlers.begin(), this);
if(!rData.pDsp)
@@ -90,7 +93,7 @@ ErrorHandler::ErrorHandler()
ErrorHandler::~ErrorHandler()
{
- auto &rErrorHandlers = TheErrorRegistry::get().errorHandlers;
+ auto &rErrorHandlers = GetErrorRegistry().errorHandlers;
rErrorHandlers.erase( ::std::remove(rErrorHandlers.begin(), rErrorHandlers.end(), this),
rErrorHandlers.end());
}
@@ -118,7 +121,7 @@ DialogMask ErrorHandler::HandleError(ErrCode nErrCodeId, weld::Window *pParent,
if (nErrCodeId == ERRCODE_NONE || nErrCodeId == ERRCODE_ABORT)
return DialogMask::NONE;
- ErrorRegistry &rData = TheErrorRegistry::get();
+ ErrorRegistry &rData = GetErrorRegistry();
std::unique_ptr<ErrorInfo> pInfo = ErrorInfo::GetErrorInfo(nErrCodeId);
OUString aAction;
@@ -195,18 +198,18 @@ ErrorContext::ErrorContext(weld::Window *pWinP)
: pImpl( new ImplErrorContext )
{
pImpl->pWin = pWinP;
- TheErrorRegistry::get().contexts.insert(TheErrorRegistry::get().contexts.begin(), this);
+ GetErrorRegistry().contexts.insert(GetErrorRegistry().contexts.begin(), this);
}
ErrorContext::~ErrorContext()
{
- auto &rContexts = TheErrorRegistry::get().contexts;
+ auto &rContexts = GetErrorRegistry().contexts;
rContexts.erase( ::std::remove(rContexts.begin(), rContexts.end(), this), rContexts.end());
}
ErrorContext *ErrorContext::GetContext()
{
- return TheErrorRegistry::get().contexts.empty() ? nullptr : TheErrorRegistry::get().contexts.front();
+ return GetErrorRegistry().contexts.empty() ? nullptr : GetErrorRegistry().contexts.front();
}
weld::Window* ErrorContext::GetParent()
@@ -236,7 +239,7 @@ private:
void ImplDynamicErrorInfo::RegisterError(DynamicErrorInfo *pDynErrInfo)
{
// Register dynamic identifier
- ErrorRegistry& rData = TheErrorRegistry::get();
+ ErrorRegistry& rData = GetErrorRegistry();
nErrId = ErrCode(((sal_uInt32(rData.nNextError) + 1) << ERRCODE_DYNAMIC_SHIFT) +
sal_uInt32(pDynErrInfo->GetErrorCode()));
@@ -251,7 +254,7 @@ void ImplDynamicErrorInfo::RegisterError(DynamicErrorInfo *pDynErrInfo)
void ImplDynamicErrorInfo::UnRegisterError(DynamicErrorInfo const *pDynErrInfo)
{
- DynamicErrorInfo **ppDynErrInfo = TheErrorRegistry::get().ppDynErrInfo;
+ DynamicErrorInfo **ppDynErrInfo = GetErrorRegistry().ppDynErrInfo;
sal_uInt32 nIdx = ErrCode(*pDynErrInfo).GetDynamic() - 1;
DBG_ASSERT(ppDynErrInfo[nIdx] == pDynErrInfo, "ErrHdl: Error not found");
@@ -262,7 +265,7 @@ void ImplDynamicErrorInfo::UnRegisterError(DynamicErrorInfo const *pDynErrInfo)
std::unique_ptr<ErrorInfo> ImplDynamicErrorInfo::GetDynamicErrorInfo(ErrCode nId)
{
sal_uInt32 nIdx = nId.GetDynamic() - 1;
- DynamicErrorInfo* pDynErrInfo = TheErrorRegistry::get().ppDynErrInfo[nIdx];
+ DynamicErrorInfo* pDynErrInfo = GetErrorRegistry().ppDynErrInfo[nIdx];
if(pDynErrInfo && ErrCode(*pDynErrInfo)==nId)
return std::unique_ptr<ErrorInfo>(pDynErrInfo);
diff --git a/vcl/unx/generic/printer/ppdparser.cxx b/vcl/unx/generic/printer/ppdparser.cxx
index 8de73fa860b1..d049a67d60c7 100644
--- a/vcl/unx/generic/printer/ppdparser.cxx
+++ b/vcl/unx/generic/printer/ppdparser.cxx
@@ -41,7 +41,6 @@
#include <osl/thread.h>
#include <rtl/strbuf.hxx>
#include <rtl/ustrbuf.hxx>
-#include <rtl/instance.hxx>
#include <sal/log.hxx>
#include <salhelper/linkhelper.hxx>
@@ -253,7 +252,11 @@ using namespace psp;
namespace
{
- struct thePPDCache : public rtl::Static<PPDCache, thePPDCache> {};
+ PPDCache& getPPDCache()
+ {
+ static PPDCache thePPDCache;
+ return thePPDCache;
+ }
class PPDDecompressStream
{
@@ -385,7 +388,7 @@ void PPDParser::scanPPDDir( const OUString& rDir )
} const pSuffixes[] =
{ { ".PS", 3 }, { ".PPD", 4 }, { ".PS.GZ", 6 }, { ".PPD.GZ", 7 } };
- PPDCache &rPPDCache = thePPDCache::get();
+ PPDCache &rPPDCache = getPPDCache();
osl::Directory aDir( rDir );
if ( aDir.open() != osl::FileBase::E_None )
@@ -474,7 +477,7 @@ OUString PPDParser::getPPDFile( const OUString& rFile )
if( ! aStream.IsOpen() )
{
std::unordered_map< OUString, OUString >::const_iterator it;
- PPDCache &rPPDCache = thePPDCache::get();
+ PPDCache &rPPDCache = getPPDCache();
bool bRetry = true;
do
@@ -548,7 +551,7 @@ const PPDParser* PPDParser::getParser( const OUString& rFile )
<< rFile << "\" !");
- PPDCache &rPPDCache = thePPDCache::get();
+ PPDCache &rPPDCache = getPPDCache();
for( auto const & i : rPPDCache.aAllParsers )
if( i->m_aFile == aFile )
return i.get();
diff --git a/writerfilter/source/dmapper/TagLogger.cxx b/writerfilter/source/dmapper/TagLogger.cxx
index 1e9c14aa8066..607f01aaf42f 100644
--- a/writerfilter/source/dmapper/TagLogger.cxx
+++ b/writerfilter/source/dmapper/TagLogger.cxx
@@ -92,17 +92,10 @@ namespace writerfilter
#endif
-namespace {
-
-struct TheTagLogger:
- public rtl::Static<TagLogger, TheTagLogger>
-{};
-
-}
-
TagLogger& TagLogger::getInstance()
{
- return TheTagLogger::get();
+ static TagLogger theTagLogger;
+ return theTagLogger;
}
#ifdef DBG_UTIL
diff --git a/xmlsecurity/source/component/certificatecontainer.cxx b/xmlsecurity/source/component/certificatecontainer.cxx
index e311b1b600f8..e230c7b2ce83 100644
--- a/xmlsecurity/source/component/certificatecontainer.cxx
+++ b/xmlsecurity/source/component/certificatecontainer.cxx
@@ -141,30 +141,12 @@ CertificateContainer::getSupportedServiceNames( )
return { "com.sun.star.security.CertificateContainer" };
}
-namespace
-{
-struct Instance
-{
- explicit Instance(css::uno::Reference<css::uno::XComponentContext> const& context)
- : instance(new CertificateContainer(context))
- {
- }
-
- rtl::Reference<CertificateContainer> instance;
-};
-
-struct Singleton
- : public rtl::StaticWithArg<Instance, css::uno::Reference<css::uno::XComponentContext>,
- Singleton>
-{
-};
-}
-
extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
com_sun_star_security_CertificateContainer_get_implementation(
css::uno::XComponentContext* context, css::uno::Sequence<css::uno::Any> const&)
{
- return cppu::acquire(Singleton::get(context).instance.get());
+ static rtl::Reference<CertificateContainer> gContainer = new CertificateContainer(context);
+ return cppu::acquire(gContainer.get());
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */