summaryrefslogtreecommitdiff
path: root/framework/source/fwi/classes/protocolhandlercache.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'framework/source/fwi/classes/protocolhandlercache.cxx')
-rw-r--r--framework/source/fwi/classes/protocolhandlercache.cxx24
1 files changed, 12 insertions, 12 deletions
diff --git a/framework/source/fwi/classes/protocolhandlercache.cxx b/framework/source/fwi/classes/protocolhandlercache.cxx
index 9288536480d9..1879554c7bed 100644
--- a/framework/source/fwi/classes/protocolhandlercache.cxx
+++ b/framework/source/fwi/classes/protocolhandlercache.cxx
@@ -68,8 +68,8 @@ PatternHash::const_iterator findPatternKey(PatternHash const * hash, const OUStr
That means it use two static member list to hold all necessary information
and a ref count mechanism to create/destroy it on demand.
*/
-std::unique_ptr<HandlerHash> HandlerCache::s_pHandler;
-std::unique_ptr<PatternHash> HandlerCache::s_pPattern;
+std::optional<HandlerHash> HandlerCache::s_pHandler;
+std::optional<PatternHash> HandlerCache::s_pPattern;
sal_Int32 HandlerCache::m_nRefCount = 0;
HandlerCFGAccess* HandlerCache::s_pConfig = nullptr;
@@ -86,8 +86,8 @@ HandlerCache::HandlerCache()
if (m_nRefCount==0)
{
- s_pHandler.reset(new HandlerHash);
- s_pPattern.reset(new PatternHash);
+ s_pHandler.emplace();
+ s_pPattern.emplace();
s_pConfig = new HandlerCFGAccess(PACKAGENAME_PROTOCOLHANDLER);
s_pConfig->read(*s_pHandler, *s_pPattern);
s_pConfig->setCache(this);
@@ -129,7 +129,7 @@ bool HandlerCache::search( const OUString& sURL, ProtocolHandler* pReturn ) cons
SolarMutexGuard aGuard;
- PatternHash::const_iterator pItem = findPatternKey(s_pPattern.get(), sURL);
+ PatternHash::const_iterator pItem = findPatternKey(s_pPattern ? &*s_pPattern : nullptr, sURL);
if (pItem != s_pPattern->end())
{
*pReturn = (*s_pHandler)[pItem->second];
@@ -150,12 +150,12 @@ bool HandlerCache::search( const css::util::URL& aURL, ProtocolHandler* pReturn
return search( aURL.Complete, pReturn );
}
-void HandlerCache::takeOver(std::unique_ptr<HandlerHash> pHandler, std::unique_ptr<PatternHash> pPattern)
+void HandlerCache::takeOver(HandlerHash aHandler, PatternHash aPattern)
{
SolarMutexGuard aGuard;
- s_pHandler = std::move(pHandler);
- s_pPattern = std::move(pPattern);
+ s_pHandler = std::move(aHandler);
+ s_pPattern = std::move(aPattern);
}
/**
@@ -240,12 +240,12 @@ void HandlerCFGAccess::read( HandlerHash& rHandlerHash, PatternHash& rPatternHas
void HandlerCFGAccess::Notify(const css::uno::Sequence< OUString >& /*lPropertyNames*/)
{
- std::unique_ptr<HandlerHash> pHandler(new HandlerHash);
- std::unique_ptr<PatternHash> pPattern(new PatternHash);
+ HandlerHash aHandler;
+ PatternHash aPattern;
- read(*pHandler, *pPattern);
+ read(aHandler, aPattern);
if (m_pCache)
- m_pCache->takeOver(std::move(pHandler), std::move(pPattern));
+ m_pCache->takeOver(std::move(aHandler), std::move(aPattern));
}
void HandlerCFGAccess::ImplCommit()