Huge streams checking and warning fixes.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32580 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
2a9c090515
commit
287d71d992
@ -580,7 +580,9 @@ wxFileOffset wxStreamBuffer::Seek(wxFileOffset pos, wxSeekMode mode)
|
||||
}
|
||||
if (diff < 0 || diff > last_access)
|
||||
return wxInvalidOffset;
|
||||
SetIntPosition(diff);
|
||||
size_t int_diff = (size_t)diff;
|
||||
wxCHECK_MSG( (wxFileOffset)int_diff == diff, wxInvalidOffset, wxT("huge file not supported") );
|
||||
SetIntPosition(int_diff);
|
||||
return diff;
|
||||
}
|
||||
|
||||
@ -605,7 +607,9 @@ wxFileOffset wxStreamBuffer::Seek(wxFileOffset pos, wxSeekMode mode)
|
||||
}
|
||||
else
|
||||
{
|
||||
SetIntPosition(diff);
|
||||
size_t int_diff = (size_t)diff;
|
||||
wxCHECK_MSG( (wxFileOffset)int_diff == diff, wxInvalidOffset, wxT("huge file not supported") );
|
||||
SetIntPosition(int_diff);
|
||||
return pos;
|
||||
}
|
||||
|
||||
@ -994,18 +998,22 @@ size_t wxCountingOutputStream::OnSysWrite(const void *WXUNUSED(buffer),
|
||||
|
||||
wxFileOffset wxCountingOutputStream::OnSysSeek(wxFileOffset pos, wxSeekMode mode)
|
||||
{
|
||||
ssize_t new_pos = (ssize_t)pos;
|
||||
|
||||
switch ( mode )
|
||||
{
|
||||
case wxFromStart:
|
||||
m_currentPos = pos;
|
||||
wxCHECK_MSG( (wxFileOffset)new_pos == pos, wxInvalidOffset, wxT("huge position not supported") );
|
||||
break;
|
||||
|
||||
case wxFromEnd:
|
||||
m_currentPos = m_lastcount + pos;
|
||||
new_pos = m_lastcount + new_pos;
|
||||
wxCHECK_MSG( (wxFileOffset)new_pos == (wxFileOffset)(m_lastcount + pos), wxInvalidOffset, wxT("huge position not supported") );
|
||||
break;
|
||||
|
||||
case wxFromCurrent:
|
||||
m_currentPos += pos;
|
||||
new_pos = m_currentPos + new_pos;
|
||||
wxCHECK_MSG( (wxFileOffset)new_pos == (wxFileOffset)(m_currentPos + pos), wxInvalidOffset, wxT("huge position not supported") );
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -1013,6 +1021,8 @@ wxFileOffset wxCountingOutputStream::OnSysSeek(wxFileOffset pos, wxSeekMode mode
|
||||
return wxInvalidOffset;
|
||||
}
|
||||
|
||||
m_currentPos = new_pos;
|
||||
|
||||
if (m_currentPos > m_lastcount)
|
||||
m_lastcount = m_currentPos;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user