git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32580
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
}
if (diff < 0 || diff > last_access)
return wxInvalidOffset;
}
if (diff < 0 || diff > last_access)
return wxInvalidOffset;
+ size_t int_diff = (size_t)diff;
+ wxCHECK_MSG( (wxFileOffset)int_diff == diff, wxInvalidOffset, wxT("huge file not supported") );
+ SetIntPosition(int_diff);
+ size_t int_diff = (size_t)diff;
+ wxCHECK_MSG( (wxFileOffset)int_diff == diff, wxInvalidOffset, wxT("huge file not supported") );
+ SetIntPosition(int_diff);
wxFileOffset wxCountingOutputStream::OnSysSeek(wxFileOffset pos, wxSeekMode mode)
{
wxFileOffset wxCountingOutputStream::OnSysSeek(wxFileOffset pos, wxSeekMode mode)
{
+ ssize_t new_pos = (ssize_t)pos;
+
switch ( mode )
{
case wxFromStart:
switch ( mode )
{
case wxFromStart:
+ wxCHECK_MSG( (wxFileOffset)new_pos == pos, wxInvalidOffset, wxT("huge position not supported") );
- 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:
break;
case wxFromCurrent:
+ new_pos = m_currentPos + new_pos;
+ wxCHECK_MSG( (wxFileOffset)new_pos == (wxFileOffset)(m_currentPos + pos), wxInvalidOffset, wxT("huge position not supported") );
return wxInvalidOffset;
}
return wxInvalidOffset;
}
+ m_currentPos = new_pos;
+
if (m_currentPos > m_lastcount)
m_lastcount = m_currentPos;
if (m_currentPos > m_lastcount)
m_lastcount = m_currentPos;