//
bool wxIFFDecoder::CanRead()
{
- unsigned char buf[12] = "";
+ unsigned char buf[12];
- m_f->Read(buf, 12);
- m_f->SeekI(-12, wxFromCurrent);
+ if ( !m_f->Read(buf, WXSIZEOF(buf)) )
+ return FALSE;
+
+ m_f->SeekI(-(off_t)WXSIZEOF(buf), wxFromCurrent);
- return (memcmp(buf, "FORM", 4) == 0 && memcmp(buf+8, "ILBM", 4) == 0);
+ return (memcmp(buf, "FORM", 4) == 0) && (memcmp(buf+8, "ILBM", 4) == 0);
}
bool wxIFFHandler::DoCanRead(wxInputStream& stream)
{
- wxIFFDecoder *decod;
- bool ok;
+ wxIFFDecoder decod(&stream);
- decod = new wxIFFDecoder(&stream);
- ok = decod->CanRead();
- delete decod;
-
- return ok;
+ return decod.CanRead();
}
#endif // wxUSE_STREAMS