X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1fb454751dc73befe13142c56778a3dcfcaed561..fd85b0640ea48f66a27e5908930e9f004de698b6:/src/common/stream.cpp diff --git a/src/common/stream.cpp b/src/common/stream.cpp index 189916814b..9763842c4a 100644 --- a/src/common/stream.cpp +++ b/src/common/stream.cpp @@ -165,7 +165,7 @@ void wxStreamBuffer::SetBufferIO(void *start, m_buffer_size = len; // if we own it, we free it - m_destroybuf = !takeOwnership; + m_destroybuf = takeOwnership; ResetBuffer(); } @@ -669,7 +669,12 @@ bool wxInputStream::Eof() const char c; self->Read(&c, 1); - if ( GetLastError() == wxSTREAM_EOF ) + + // some streams can know that they're at EOF before actually trying to + // read beyond the end of stream (e.g. files) while others have no way of + // knowing it, so to provide the same behaviour in all cases we only + // return TRUE from here if the character really couldn't be read + if ( !self->LastRead() && GetLastError() == wxSTREAM_EOF ) { return TRUE; }