summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/unotools/atom.hxx4
-rw-r--r--unotools/source/misc/atom.cxx10
2 files changed, 8 insertions, 6 deletions
diff --git a/include/unotools/atom.hxx b/include/unotools/atom.hxx
index d59f67a85c28..fdc656e5b69a 100644
--- a/include/unotools/atom.hxx
+++ b/include/unotools/atom.hxx
@@ -47,7 +47,7 @@ namespace utl {
~AtomProvider();
int getAtom( const OUString&, bool bCreate = false );
- OUString getString( int ) const;
+ const OUString& getString( int ) const;
};
class UNOTOOLS_DLLPUBLIC MultiAtomProvider
@@ -59,7 +59,7 @@ namespace utl {
int getAtom( int atomClass, const OUString& rString, bool bCreate = false );
- OUString getString( int atomClass, int atom ) const;
+ const OUString& getString( int atomClass, int atom ) const;
};
}
diff --git a/unotools/source/misc/atom.cxx b/unotools/source/misc/atom.cxx
index 44ad7564ed30..85ddad4d23a9 100644
--- a/unotools/source/misc/atom.cxx
+++ b/unotools/source/misc/atom.cxx
@@ -45,11 +45,12 @@ int AtomProvider::getAtom( const OUString& rString, bool bCreate )
return m_nAtoms-1;
}
-OUString AtomProvider::getString( int nAtom ) const
+const OUString& AtomProvider::getString( int nAtom ) const
{
+ static OUString aEmpty;
std::unordered_map<int, OUString>::const_iterator it = m_aStringMap.find( nAtom );
- return it == m_aStringMap.end() ? OUString() : it->second;
+ return it == m_aStringMap.end() ? aEmpty : it->second;
}
MultiAtomProvider::MultiAtomProvider()
@@ -78,14 +79,15 @@ int MultiAtomProvider::getAtom( int atomClass, const OUString& rString, bool bCr
return INVALID_ATOM;
}
-OUString MultiAtomProvider::getString( int atomClass, int atom ) const
+const OUString& MultiAtomProvider::getString( int atomClass, int atom ) const
{
std::unordered_map<int, AtomProvider*>::const_iterator it =
m_aAtomLists.find( atomClass );
if( it != m_aAtomLists.end() )
return it->second->getString( atom );
- return OUString();
+ static OUString aEmpty;
+ return aEmpty;
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */