]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/datstrm.cpp
Added pango_context_get_language to speed up pango_context_get_metrics
[wxWidgets.git] / src / common / datstrm.cpp
index a1961c3f021af8ce810f9b1f1efd78bb08574006..50e4eb4b2e6dc2b81e1d0d76c54523258481e726 100644 (file)
 #if wxUSE_STREAMS
 
 #include "wx/datstrm.h"
-#include "wx/math.h"
+
+#ifndef WX_PRECOMP
+    #include "wx/math.h"
+#endif //WX_PRECOMP
 
 // ---------------------------------------------------------------------------
 // wxDataInputStream
 // ---------------------------------------------------------------------------
 
 #if wxUSE_UNICODE
-wxDataInputStream::wxDataInputStream(wxInputStream& s, wxMBConv& conv)
-  : m_input(&s), m_be_order(false), m_conv(conv)
+wxDataInputStream::wxDataInputStream(wxInputStream& s, const wxMBConv& 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);
@@ -445,8 +455,8 @@ wxDataInputStream& wxDataInputStream::operator>>(float& f)
 // ---------------------------------------------------------------------------
 
 #if wxUSE_UNICODE
-wxDataOutputStream::wxDataOutputStream(wxOutputStream& s, wxMBConv& conv)
-  : m_output(&s), m_be_order(false), m_conv(conv)
+wxDataOutputStream::wxDataOutputStream(wxOutputStream& s, const wxMBConv& 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