delete m_file;
}
-size_t wxFileInputStream::GetSize() const
+wxFileOffset wxFileInputStream::GetLength() const
{
return m_file->Length();
}
size_t wxFileInputStream::OnSysRead(void *buffer, size_t size)
{
- wxFileSize_t ret = m_file->Read(buffer, size);
+ ssize_t ret = m_file->Read(buffer, size);
// NB: we can't use a switch here because HP-UX CC doesn't allow
- // switching over long long (which off_t is in 64bit mode)
+ // switching over long long (which size_t is in 64bit mode)
if ( !ret )
{
m_file->Flush();
}
-size_t wxFileOutputStream::GetSize() const
+wxFileOffset wxFileOutputStream::GetLength() const
{
return m_file->Length();
}
delete m_file;
}
-size_t wxFFileInputStream::GetSize() const
+wxFileOffset wxFFileInputStream::GetLength() const
{
return m_file->Length();
}
size_t wxFFileInputStream::OnSysRead(void *buffer, size_t size)
{
- wxFileSize_t ret = m_file->Read(buffer, size);
+ ssize_t ret = m_file->Read(buffer, size);
- if (m_file->Eof())
+ // It is not safe to call Eof() if the file is not opened.
+ if (!m_file->IsOpened() || m_file->Eof())
m_lasterror = wxSTREAM_EOF;
if (ret == wxInvalidOffset)
{
#ifdef __VMS
#pragma message disable intsignchange
#endif
- return ( m_file->Seek(pos, mode) ? m_file->Tell() : wxInvalidOffset );
+ wxASSERT_MSG( pos >= LONG_MIN && pos <= LONG_MAX, _T("no huge wxFFile support") );
+ return ( m_file->Seek((long)pos, mode) ? (wxFileOffset)m_file->Tell() : wxInvalidOffset );
#ifdef __VMS
#pragma message enable intsignchange
#endif
size_t wxFFileOutputStream::OnSysWrite(const void *buffer, size_t size)
{
size_t ret = m_file->Write(buffer, size);
- if (m_file->Error())
+ // It is not safe to call Error() if the file is not opened.
+ if (!m_file->IsOpened() || m_file->Error())
m_lasterror = wxSTREAM_WRITE_ERROR;
else
m_lasterror = wxSTREAM_NO_ERROR;
#ifdef __VMS
#pragma message disable intsignchange
#endif
- return ( m_file->Seek(pos, mode) ? m_file->Tell() : wxInvalidOffset );
+ wxASSERT_MSG( pos >= LONG_MIN && pos <= LONG_MAX, _T("no huge wxFFile support") );
+ return ( m_file->Seek((long)pos, mode) ? (wxFileOffset)m_file->Tell() : wxInvalidOffset );
#ifdef __VMS
#pragma message enable intsignchange
#endif
m_file->Flush();
}
-size_t wxFFileOutputStream::GetSize() const
+wxFileOffset wxFFileOutputStream::GetLength() const
{
return m_file->Length();
}