Allow passing the error value to wxStreamBase::Reset().
It can be useful to induce an error on the stream explicitly, e.g. because an incorrect value was read from it and we want to indicate it to the caller by setting stream error to wxSTREAM_READ_ERROR. Allow to do this by passing an optional error value to wxStreamBase::Reset(). Add an example of using the new functionality to the docview sample which needs it to be able to signal errors while reading the files. Also document this method that previously wasn't documented at all. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68331 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -79,6 +79,16 @@ DocumentIstream& DrawingDocument::LoadObject(DocumentIstream& istream)
|
||||
|
||||
wxInt32 count = 0;
|
||||
stream >> count;
|
||||
if ( count < 0 )
|
||||
{
|
||||
wxLogWarning("Drawing document corrupted: invalid segments count.");
|
||||
#if wxUSE_STD_IOSTREAM
|
||||
istream.clear(std::ios::badbit);
|
||||
#else
|
||||
istream.Reset(wxSTREAM_READ_ERROR);
|
||||
#endif
|
||||
return istream;
|
||||
}
|
||||
|
||||
for ( int n = 0; n < count; n++ )
|
||||
{
|
||||
|
Reference in New Issue
Block a user