]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/stream.cpp
made wxTextFile work in Unicode; also made it possible to use it with non seekable...
[wxWidgets.git] / src / common / stream.cpp
index 2f26e6a3303c6022fb4f807d6e53960dea7a70c6..73dde47896f15a1c358f7d203881d98ec6d6ffe2 100644 (file)
@@ -117,7 +117,10 @@ wxStreamBuffer::wxStreamBuffer(const wxStreamBuffer& buffer)
 void wxStreamBuffer::FreeBuffer()
 {
     if ( m_destroybuf )
+    {
         free(m_buffer_start);
+        m_buffer_start = NULL;
+    }
 }
 
 wxStreamBuffer::~wxStreamBuffer()
@@ -163,15 +166,15 @@ void wxStreamBuffer::SetBufferIO(void *start,
 
 void wxStreamBuffer::SetBufferIO(size_t bufsize)
 {
-    // start by freeing the old buffer
-    FreeBuffer();
-
     if ( bufsize )
     {
+        // this will free the old buffer and allocate the new one
         SetBufferIO(malloc(bufsize), bufsize, true /* take ownership */);
     }
     else // no buffer size => no buffer
     {
+        // still free the old one
+        FreeBuffer();
         InitBuffer();
     }
 }
@@ -664,7 +667,7 @@ size_t wxStreamBase::GetSize() const
         return 0;
 
     const size_t len = wx_truncate_cast(size_t, length);
-    wxASSERT_MSG( len == length, _T("large files not supported") );
+    wxASSERT_MSG( len == length + size_t(0), _T("large files not supported") );
 
     return len;
 }
@@ -679,20 +682,6 @@ wxFileOffset wxStreamBase::OnSysTell() const
     return wxInvalidOffset;
 }
 
-#if WXWIN_COMPATIBILITY_2_2
-
-wxStreamError wxStreamBase::LastError() const
-{
-    return m_lasterror;
-}
-
-size_t wxStreamBase::StreamSize() const
-{
-    return GetSize();
-}
-
-#endif // WXWIN_COMPATIBILITY_2_2
-
 // ----------------------------------------------------------------------------
 // wxInputStream
 // ----------------------------------------------------------------------------