X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/830f8f11bca5c0892ae767ba14790c8b5b59011f..d94de683a60b20153591cc3f8f52a97cf9ce9453:/src/common/datstrm.cpp diff --git a/src/common/datstrm.cpp b/src/common/datstrm.cpp index 67a2e45805..99e9051c03 100644 --- a/src/common/datstrm.cpp +++ b/src/common/datstrm.cpp @@ -19,7 +19,10 @@ #if wxUSE_STREAMS #include "wx/datstrm.h" -#include "wx/math.h" + +#ifndef WX_PRECOMP + #include "wx/math.h" +#endif //WX_PRECOMP // --------------------------------------------------------------------------- // wxDataInputStream @@ -27,7 +30,7 @@ #if wxUSE_UNICODE wxDataInputStream::wxDataInputStream(wxInputStream& s, const wxMBConv& conv) - : m_input(&s), m_be_order(false), m_conv(conv) + : m_input(&s), m_be_order(false), m_conv(conv.Clone()) #else wxDataInputStream::wxDataInputStream(wxInputStream& s) : m_input(&s), m_be_order(false) @@ -35,6 +38,13 @@ wxDataInputStream::wxDataInputStream(wxInputStream& s) { } +wxDataInputStream::~wxDataInputStream() +{ +#if wxUSE_UNICODE + delete m_conv; +#endif // wxUSE_UNICODE +} + #if wxHAS_INT64 wxUint64 wxDataInputStream::Read64() { @@ -100,7 +110,7 @@ wxString wxDataInputStream::ReadString() wxCharBuffer tmp(len + 1); m_input->Read(tmp.data(), len); tmp.data()[len] = '\0'; - wxString ret(m_conv.cMB2WX(tmp.data())); + wxString ret(m_conv->cMB2WX(tmp.data())); #else wxString ret; m_input->Read( wxStringBuffer(ret, len), len); @@ -446,7 +456,7 @@ wxDataInputStream& wxDataInputStream::operator>>(float& f) #if wxUSE_UNICODE wxDataOutputStream::wxDataOutputStream(wxOutputStream& s, const wxMBConv& conv) - : m_output(&s), m_be_order(false), m_conv(conv) + : m_output(&s), m_be_order(false), m_conv(conv.Clone()) #else wxDataOutputStream::wxDataOutputStream(wxOutputStream& s) : m_output(&s), m_be_order(false) @@ -454,6 +464,13 @@ wxDataOutputStream::wxDataOutputStream(wxOutputStream& s) { } +wxDataOutputStream::~wxDataOutputStream() +{ +#if wxUSE_UNICODE + delete m_conv; +#endif // wxUSE_UNICODE +} + #if wxHAS_INT64 void wxDataOutputStream::Write64(wxUint64 i) { @@ -497,7 +514,7 @@ void wxDataOutputStream::Write8(wxUint8 i) void wxDataOutputStream::WriteString(const wxString& string) { #if wxUSE_UNICODE - const wxWX2MBbuf buf = string.mb_str(m_conv); + const wxWX2MBbuf buf = string.mb_str(*m_conv); #else const wxWX2MBbuf buf = string.mb_str(); #endif @@ -633,13 +650,6 @@ void wxDataOutputStream::WriteDouble(const double *buffer, size_t size) } } -wxDataOutputStream& wxDataOutputStream::operator<<(const wxChar *string) -{ - Write32(wxStrlen(string)); - m_output->Write((const char *)string, wxStrlen(string)*sizeof(wxChar)); - return *this; -} - wxDataOutputStream& wxDataOutputStream::operator<<(const wxString& string) { WriteString(string);