always remember to test IsOk() after using wxFileInputStream
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57917 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -23,6 +23,8 @@ class wxTempFileOutputStream : public wxOutputStream
|
|||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
Associates wxTempFileOutputStream with the file to be replaced and opens it.
|
Associates wxTempFileOutputStream with the file to be replaced and opens it.
|
||||||
|
|
||||||
|
@warning
|
||||||
You should use wxStreamBase::IsOk() to verify if the constructor succeeded.
|
You should use wxStreamBase::IsOk() to verify if the constructor succeeded.
|
||||||
|
|
||||||
Call Commit() or wxOutputStream::Close() to replace the old file and close
|
Call Commit() or wxOutputStream::Close() to replace the old file and close
|
||||||
@@ -69,7 +71,10 @@ class wxFFileOutputStream : public wxOutputStream
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
Initializes a file stream in write-only mode using the file descriptor @e fp.
|
Open the given file @a filename with mode @a mode.
|
||||||
|
|
||||||
|
@warning
|
||||||
|
You should use wxStreamBase::IsOk() to verify if the constructor succeeded.
|
||||||
*/
|
*/
|
||||||
wxFFileOutputStream(const wxString& filename,
|
wxFFileOutputStream(const wxString& filename,
|
||||||
const wxString& mode = "wb");
|
const wxString& mode = "wb");
|
||||||
@@ -116,7 +121,10 @@ class wxFileOutputStream : public wxOutputStream
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
Creates a new file with ofilename name and initializes the stream in write-only mode.
|
Creates a new file with @a ofileName name and initializes the stream in write-only mode.
|
||||||
|
|
||||||
|
@warning
|
||||||
|
You should use wxStreamBase::IsOk() to verify if the constructor succeeded.
|
||||||
*/
|
*/
|
||||||
wxFileOutputStream(const wxString& ofileName);
|
wxFileOutputStream(const wxString& ofileName);
|
||||||
|
|
||||||
@@ -162,7 +170,10 @@ class wxFileInputStream : public wxInputStream
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
Opens the specified file using its ifilename name in read-only mode.
|
Opens the specified file using its @a ifileName name in read-only mode.
|
||||||
|
|
||||||
|
@warning
|
||||||
|
You should use wxStreamBase::IsOk() to verify if the constructor succeeded.
|
||||||
*/
|
*/
|
||||||
wxFileInputStream(const wxString& ifileName);
|
wxFileInputStream(const wxString& ifileName);
|
||||||
|
|
||||||
@@ -208,7 +219,10 @@ class wxFFileInputStream : public wxInputStream
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
Opens the specified file using its filename name using the specified mode.
|
Opens the specified file using its @a filename name using the specified @a mode.
|
||||||
|
|
||||||
|
@warning
|
||||||
|
You should use wxStreamBase::IsOk() to verify if the constructor succeeded.
|
||||||
*/
|
*/
|
||||||
wxFFileInputStream(const wxString& filename,
|
wxFFileInputStream(const wxString& filename,
|
||||||
const wxString& mode = "rb");
|
const wxString& mode = "rb");
|
||||||
@@ -250,8 +264,11 @@ class wxFFileStream : public wxFFileOutputStream
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
Initializes a new file stream in read-write mode using the specified
|
Initializes a new file stream in the given @a mode using the specified
|
||||||
@a iofilename name.
|
@a iofileName name.
|
||||||
|
|
||||||
|
@warning
|
||||||
|
You should use wxStreamBase::IsOk() to verify if the constructor succeeded.
|
||||||
*/
|
*/
|
||||||
wxFFileStream(const wxString& iofileName, const wxString& mode = "w+b");
|
wxFFileStream(const wxString& iofileName, const wxString& mode = "w+b");
|
||||||
};
|
};
|
||||||
@@ -273,7 +290,10 @@ class wxFileStream : public wxFileOutputStream
|
|||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
Initializes a new file stream in read-write mode using the specified
|
Initializes a new file stream in read-write mode using the specified
|
||||||
@a iofilename name.
|
@a iofileName name.
|
||||||
|
|
||||||
|
@warning
|
||||||
|
You should use wxStreamBase::IsOk() to verify if the constructor succeeded.
|
||||||
*/
|
*/
|
||||||
wxFileStream(const wxString& iofileName);
|
wxFileStream(const wxString& iofileName);
|
||||||
};
|
};
|
||||||
|
@@ -609,7 +609,7 @@ bool wxDocument::DoOpenDocument(const wxString& file)
|
|||||||
if ( !store )
|
if ( !store )
|
||||||
#else
|
#else
|
||||||
wxFileInputStream store(file);
|
wxFileInputStream store(file);
|
||||||
if (store.GetLastError() != wxSTREAM_NO_ERROR)
|
if (store.GetLastError() != wxSTREAM_NO_ERROR || !store.IsOk())
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
wxLogError(_("File \"%s\" could not be opened for reading."), file);
|
wxLogError(_("File \"%s\" could not be opened for reading."), file);
|
||||||
|
@@ -138,7 +138,6 @@ bool wxAnimation::Load(wxInputStream &stream, wxAnimationType type)
|
|||||||
m_refData = handler->Clone();
|
m_refData = handler->Clone();
|
||||||
return M_ANIMDATA->Load(stream);
|
return M_ANIMDATA->Load(stream);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
wxLogWarning( _("No handler found for animation type.") );
|
wxLogWarning( _("No handler found for animation type.") );
|
||||||
@@ -309,6 +308,8 @@ wxAnimationCtrl::~wxAnimationCtrl()
|
|||||||
bool wxAnimationCtrl::LoadFile(const wxString& filename, wxAnimationType type)
|
bool wxAnimationCtrl::LoadFile(const wxString& filename, wxAnimationType type)
|
||||||
{
|
{
|
||||||
wxFileInputStream fis(filename);
|
wxFileInputStream fis(filename);
|
||||||
|
if (!fis.Ok())
|
||||||
|
return false;
|
||||||
return Load(fis, type);
|
return Load(fis, type);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -238,6 +238,8 @@ wxAnimationCtrl::~wxAnimationCtrl()
|
|||||||
bool wxAnimationCtrl::LoadFile(const wxString &filename, wxAnimationType type)
|
bool wxAnimationCtrl::LoadFile(const wxString &filename, wxAnimationType type)
|
||||||
{
|
{
|
||||||
wxFileInputStream fis(filename);
|
wxFileInputStream fis(filename);
|
||||||
|
if (!fis.IsOk())
|
||||||
|
return false;
|
||||||
return Load(fis, type);
|
return Load(fis, type);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -717,6 +717,9 @@ bool wxChmInputStream::CreateFileStream(const wxString& pattern)
|
|||||||
{
|
{
|
||||||
// Open a filestream to extracted file
|
// Open a filestream to extracted file
|
||||||
fin = new wxFileInputStream(tmpfile);
|
fin = new wxFileInputStream(tmpfile);
|
||||||
|
if (!fin->IsOk())
|
||||||
|
return false;
|
||||||
|
|
||||||
m_size = fin->GetSize();
|
m_size = fin->GetSize();
|
||||||
m_content = (char *) malloc(m_size+1);
|
m_content = (char *) malloc(m_size+1);
|
||||||
fin->Read(m_content, m_size);
|
fin->Read(m_content, m_size);
|
||||||
|
@@ -1386,10 +1386,10 @@ bool wxXPMFileHandler::LoadFile(wxBitmap *bitmap, const wxString& name,
|
|||||||
#elif wxUSE_STREAMS
|
#elif wxUSE_STREAMS
|
||||||
wxXPMDecoder decoder;
|
wxXPMDecoder decoder;
|
||||||
wxFileInputStream stream(name);
|
wxFileInputStream stream(name);
|
||||||
if (stream.Ok())
|
if (stream.IsOk())
|
||||||
{
|
{
|
||||||
wxImage image(decoder.ReadFile(stream));
|
wxImage image(decoder.ReadFile(stream));
|
||||||
return image.Ok() && bitmap->CreateFromImage(image);
|
return image.IsOk() && bitmap->CreateFromImage(image);
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
@@ -497,7 +497,7 @@ bool wxXmlResource::UpdateResources()
|
|||||||
delete rec->Doc;
|
delete rec->Doc;
|
||||||
rec->Doc = new wxXmlDocument;
|
rec->Doc = new wxXmlDocument;
|
||||||
}
|
}
|
||||||
if (!stream || !rec->Doc->Load(*stream, encoding))
|
if (!stream || !stream->IsOk() || !rec->Doc->Load(*stream, encoding))
|
||||||
{
|
{
|
||||||
wxLogError(_("Cannot load resources from file '%s'."),
|
wxLogError(_("Cannot load resources from file '%s'."),
|
||||||
rec->File);
|
rec->File);
|
||||||
|
Reference in New Issue
Block a user