don't use implicit wxString->char*/wchar_t* conversion, it will not be available in wxUSE_STL build in the future

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46391 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík
2007-06-10 17:42:41 +00:00
parent 52de37c78f
commit 8650108199
51 changed files with 330 additions and 304 deletions

View File

@@ -38,27 +38,20 @@
// TODO: Do we want to include the null char in the stream? If so then
// just add +1 to m_len in the ctor
wxStringInputStream::wxStringInputStream(const wxString& s)
wxStringInputStream::wxStringInputStream(const wxString& s)
#if wxUSE_UNICODE
: m_str(s), m_buf(wxMBConvUTF8().cWX2MB(s).release()), m_len(strlen(m_buf))
// FIXME-UTF8: use wxCharBufferWithLength if we have it
: m_str(s), m_buf(s.utf8_str()), m_len(strlen(m_buf))
#else
: m_str(s), m_buf((char*)(const char*)s.c_str()), m_len(s.length())
: m_str(s), m_buf(s.mb_str()), m_len(s.length())
#endif
{
#if wxUSE_UNICODE
wxASSERT_MSG(m_buf != NULL, _T("Could not convert string to UTF8!"));
wxASSERT_MSG(m_buf.data() != NULL, _T("Could not convert string to UTF8!"));
#endif
m_pos = 0;
}
wxStringInputStream::~wxStringInputStream()
{
#if wxUSE_UNICODE
// Note: wx[W]CharBuffer uses malloc()/free()
free(m_buf);
#endif
}
// ----------------------------------------------------------------------------
// getlength
// ----------------------------------------------------------------------------
@@ -126,7 +119,7 @@ size_t wxStringInputStream::OnSysRead(void *buffer, size_t size)
size = sizeMax;
}
memcpy(buffer, m_buf + m_pos, size);
memcpy(buffer, m_buf.data() + m_pos, size);
m_pos += size;
return size;