]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/datstrm.cpp
wxUSE_LOG fixes.
[wxWidgets.git] / src / common / datstrm.cpp
index a2c2aa55da11a219451039603fe6c325e2ac6050..1580055ca70174dfbe62b15d9ef733032bdbb6a0 100644 (file)
@@ -9,7 +9,7 @@
 // Licence:    wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
 #pragma implementation "datstrm.h"
 #endif
 
@@ -110,15 +110,13 @@ wxString wxDataInputStream::ReadString()
   if (len > 0)
   {
 #if wxUSE_UNICODE
-    char *tmp = new char[len + 1];
-    m_input->Read(tmp, len);
-    tmp[len] = 0;
-    wxString ret( (const wxChar*) m_conv.cMB2WX(tmp) );
-    delete[] tmp;
+    wxCharBuffer tmp(len + 1);
+    m_input->Read(tmp.data(), len);
+    tmp.data()[len] = '\0';
+    wxString ret(m_conv.cMB2WX(tmp.data()));
 #else
     wxString ret;
-    m_input->Read( ret.GetWriteBuf(len), len);
-    ret.UngetWriteBuf();
+    m_input->Read( wxStringBuffer(ret, len), len);
 #endif
     return ret;
   }