STL build compilation fix

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45292 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík
2007-04-07 09:25:07 +00:00
parent 153bc803a8
commit 6c4ebcda60

View File

@@ -131,7 +131,7 @@ wxSTD ostream& operator<<(wxSTD ostream& os, const wxWCharBuffer& str)
template<typename T>
static inline void DeleteStringFromConversionCache(T& hash, const wxString *s)
{
typename T::iterator i = hash.find(s);
typename T::iterator i = hash.find(wxConstCast(s, wxString));
if ( i != hash.end() )
{
free(i->second);
@@ -140,6 +140,8 @@ static inline void DeleteStringFromConversionCache(T& hash, const wxString *s)
}
#if wxUSE_UNICODE
// NB: non-STL implementation doesn't compile with "const wxString*" key type,
// so we have to use wxString* here and const-cast when used
WX_DECLARE_HASH_MAP(wxString*, char*, wxPointerHash, wxPointerEqual,
wxStringCharConversionCache);
static wxStringCharConversionCache gs_stringsCharCache;
@@ -150,7 +152,8 @@ const char* wxCStrData::AsChar() const
DeleteStringFromConversionCache(gs_stringsCharCache, m_str);
// convert the string and keep it:
const char *s = gs_stringsCharCache[m_str] = m_str->mb_str().release();
const char *s = gs_stringsCharCache[wxConstCast(m_str, wxString)] =
m_str->mb_str().release();
return s + m_offset;
}
@@ -167,7 +170,8 @@ const wchar_t* wxCStrData::AsWChar() const
DeleteStringFromConversionCache(gs_stringsWCharCache, m_str);
// convert the string and keep it:
const wchar_t *s = gs_stringsWCharCache[m_str] = m_str->wc_str().release();
const wchar_t *s = gs_stringsWCharCache[wxConstCast(m_str, wxString)] =
m_str->wc_str().release();
return s + m_offset;
}