]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/wfstream.cpp
A bit of confusion over what is RGB stands for blue...
[wxWidgets.git] / src / common / wfstream.cpp
index 970f92c2961f830c386a99a405818d287879379b..af90722dd08a861976ba447d718f07e95b059f09 100644 (file)
@@ -62,17 +62,17 @@ wxFileInputStream::~wxFileInputStream()
         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 )
     {
@@ -176,7 +176,7 @@ void wxFileOutputStream::Sync()
     m_file->Flush();
 }
 
-size_t wxFileOutputStream::GetSize() const
+wxFileOffset wxFileOutputStream::GetLength() const
 {
     return m_file->Length();
 }
@@ -227,16 +227,17 @@ wxFFileInputStream::~wxFFileInputStream()
         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)
     {
@@ -252,7 +253,8 @@ wxFileOffset wxFFileInputStream::OnSysSeek(wxFileOffset pos, wxSeekMode mode)
 #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
@@ -314,7 +316,8 @@ wxFFileOutputStream::~wxFFileOutputStream()
 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;
@@ -331,7 +334,8 @@ wxFileOffset wxFFileOutputStream::OnSysSeek(wxFileOffset pos, wxSeekMode mode)
 #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
@@ -343,7 +347,7 @@ void wxFFileOutputStream::Sync()
     m_file->Flush();
 }
 
-size_t wxFFileOutputStream::GetSize() const
+wxFileOffset wxFFileOutputStream::GetLength() const
 {
     return m_file->Length();
 }